JAVA学习笔记 时间复杂度 对于n>16时,时间复杂度的优劣结果为:
O(1)<O(log2n)<O(n)<O(nlog2n)<O(n^2^)<O(n^3^)<O(2)
CMD 1981 MS-DOS
1981-4-27 xerox 图形化界面
操作 说明 盘符名称: 盘符切换。E:回车,表示切换到E盘。 dir 查看当前路径下的内容。 cd 目录 进入单级目录。cd itheima cd .. 回退到上一级目录。 cd 目录1\目录2… 进入多级目录。cd itheima\JavaSE cd \ 回退到盘符目录。 cls 清屏。 exit 退出命令提示符窗口。
ctrl+滚轮 放大 缩小
win+E 打开我的电脑
1.5 环境变量 作用: 如果我想要在CMD的任意目录下,都可以启动某一个软件,那么就可以把这个软件的路径配置到环境变量中的 PATH里面。 在启动软件的时候,操作系统会先在当前路径下找,如果在当前录课没有再到环境变量的路径中去找。如果都找不 到就提示无法启动。
1&2 安装、下载与调试JDK与eclipse JAVA EE可以直接调用 JAVA SE代码
JAVA EE 面向互联网网页,企业级别
JAVA SE 面向个人编程
JAVA ME面向嵌入式编程
API文档 应用程序编程接口
Application Programming Interface
方法,变量,结构
查看 http://docs.oracle.com/javase/8/docs/api/index.html
下载 http://www.oracle.com/index.html
CMD下编译与运行 大括号,小括号需要成对先书写,在中间双回车写内容
hello world.java
javac.exe 用于编译(需要后缀)
javac hello world.java
java.exe 用于运行(无需后缀)
java hello world
汉化包安装,放在eclipse目录里的drops里
环境配置方式 以前下载的老版本的JDK是没有自动配置的,而且自动配置的也只包含了4个工具而已,所以我们需要删掉已经配置 完毕的,再次重新配置Path环境变量。 ①JAVA_HOME:告诉操作系统JDK安装在了哪个位置(未来其他技术要通过这个找JDK) ②Path:告诉操作系统JDK提供的javac(编译)、java(执行)命令安装到了哪个位置 1.5.3win10的bug 当电脑重启之后,环境变量失效了。表示操作系统不支持自定义的环境变量。 步骤: 还是要配置JAVA_HOME给以后的相关软件去使用 我们可以把java和javac的完整路径配置到PATH
notepad++设置 右键点击java文件,选择edit with notepad++。 点击设置,再点击首选项。在弹出的页面当中,左侧选择新建,中间选择Java,右侧选择ANSI。
IDEA详述 快捷键
psvm
1 public static void main(String[] args)
sout
改界面主题,字体及大小conslos
更改注释颜色 settings editor languages default
自动导包(比如输入的时候)
修改类名
必须修改类的文件名,不能再调试窗口改
新建模块
再file structure中加modle,并命名
新建项目
new project-empty project
关闭项目
file- close project
IDE分类
JAVA 用IDEA
C语言 用Clion
Python 用Pycharm
大数据用(大象)hadoop
企业应用开发(针对大访问量,仅同go语言具有此功能)
JAVA可以跨平台
C语言不能跨平台
JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具 总结:我们只需安装JDK即可,它包含了java的运行环境和虚拟机。
JDK包含JRE
常见BUG 必须使用英文的标点符号
System 必须使用S大写的
创建包、类、接口
文件夹下创建包
包的名称(com.XX)
包下创建类(XX.java)
包下创建接口(XX.java)
public class Demo{
1 2 3 4 5 6 7 public static void Demo () { public static void main (string[]args) { System.out.printIn("你好Java" ); } }
保存后再运行
syso
//alt +”/“ 自动填补
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 package com.new20221009;public class xwv { public static String xb = " University" ; public static String xa = xb.toUpperCase(); public static void main (String[] args) { System.out.println("Lanzhou" + xb + " is locatted in beautifiul city called the coast of Lanzhou." ); System.out.println("Lanzhou" + xa + " is locatted in beautifiul city called the coast of Lanzhou." ); long xc; xc = 123456789L * 987654321L ; System.out.println(xc); double za=4.35 *100 ; System.out.println(za); System.out.println(Math.round(za)); double ra=0.1 ; double rb=2.0 -1.9 ; System.out.println(ra); System.out.println(rb); System.out.println(ra==rb); System.out.println('8' *2 ); System.out.println(8 *2 ); char sa ='a' ; char sb ='汉' ; char sc ='2' ; char ha =97 ; char hb =27721 ; char hc =50 ; System.out.println(sa); System.out.println(ha); System.out.println("[\\]" ); System.out.println("[\\']" ); System.out.println("[\101]" ); System.out.println("[\t]" ); } }
属于方法,必须要跟再变量之后,中间以.隔开
1 2 3 str.toLowerCase() str.toUpperCase()
3.2 基本数据类型 3.2.1 整数 byte 1字节=8位 -128-127
short 2字节
int 4字节
long 8字节
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 byte a = 12 ;byte a = 12 , b = -13 ;short a = 12 ;short a = 12 , b = -13 ;int a = 12 ;int a = 12 , b = -13 ;int c = a + b;long a = 978612L ;long a = 123L , b = -413L ;long c = 123L + 413L ; int za = 34 int zb = 098 int zc = 0X65
long 型赋值时必须尾部加L
public class Demo{ public static void main(string[] args){ long a=123456789 * 987654321;
long b=123456789L * 987654321L;
// 超出了int值的取值范围,溢出,出现错误值
System. out. println(a);
System. out. println(b);
}
int 是 整形的默认类型
double 是 浮点型的默认类型
3.2.2 浮点型(近似值,不准确) float 4字节
double 8字节
1 2 3 4 5 6 7 8 9 float a = 1.1F float a = 1.1F , b = -2.4F ;double a = 1.1D double a = 1.1D , b = -2.4d ;double a = 1.1 , b = -2.4 ;
float 尾部加F
double 尾部可加D ,d ,不加。
近似值,不准确
1 2 3 4 5 6 7 8 9 10 11 12 double a=4.35 *100 ; System.out.println(a); System.out.println(Math.round(a)); double ra=0.1 ; double rb=2.0 -1.9 ; System.out.println(ra); System.out.println(rb); System.out.println(ra==rb); System.out.println(Math.abs(ra-rb)<1e-6 );
使用Java提供取绝对值方法 Math.abs() 与最小数”1e-6”相比较
3.2.3 字符 用==单引号==包含的可打印的==单个==符号
双引号括起来的是字符串,而非字符
字符串需要用双引号引起来
‘8’所指示的是其unicode码
1 2 3 System.out.println('8' *2 ); System.out.println(8 *2 );
char c语言所记录为ASCII,Java语言所记录为unicode
取值范围为0-65536
1 2 3 4 5 6 7 8 9 char sa ='a' ;char sb ='汉' ;char sc ='2' ;char ha =97 ;char hb =27721 ;char hc =50 ; System.out.println(sa); System.out.println(ha);
两种赋值方法的结果是相同的
转义字符 //解决‘’‘ 需要现实 ’ 单引号 的问题
转义字符|含义
1 2 3 4 5 6 7 8 9 10 11 12 13 \‘单引号字符 \\反斜杠 \t垂直制表符,将光标移到下一个制表符的位置 \r回车 \n换行 \b退格 \f换页
1 2 3 4 5 6 7 System.out.println("[\\]" ); System.out.println("[\\']" ); System.out.println("[\101]" ); System.out.println("[\t]" );
3.2.4 布尔类型 boolean
true false
1 2 3 4 5 boolean a; boolean a=true ; boolean a=true ,b=false ;
3.3 运算符 3.3.1 赋值运算符 量 = 值
量被写,
值被读,可为常量、公式
·int i=1,j=2,k=3;
定义整型变量i、j、k ·final int val=5;
定义整型常量val ·i=6;
变量=常数 ·k=i+i;
变量=表达式
·a=b=c=5;
变量=变量=变量=常量
3.3.2 算术运算符 运算符说明实例结果
1 2 3 4 5 +加12.45f+15 27.45 -减4.56-0.16 4.4 *乘 5L*12.45f 62.25 /除7/2 3 %取余12%10 2
1 2 3 (+)一元正号 + 100 (-)一元负号 - 100 (+)加法运算符 x+y (-)减法运算符 x-y (+)拼接字符串 “hello"+"world"
1 2 3 4 5 6 (*)乘法运算符(/)除法运算符 ·int a=3*4;·int b=16/8;|2==5/2 (%)取余运算符 ·double c=12.4%5.2;|1==5%2 使用除法运算符与取余运算符,0不能做除数! 房
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package com.new20221009;public class STUDY20221010 { public static void main (String[]args) { float num1=45.2f ; int num2=120 ; int num3=17 ; int num4=10 ; System.out.println("num1+num2的和为:" +(num1+num2)); System.out.println("num1-num的差为:" +(num1-num2)); System.out.println("num1*num2的积为:" +(num1*num2)); System.out.println("num1/num2的商为:" +(num1/num2)); System.out.println("num3/num4的余数为:" +(num3%num4)); } }
字面量 (literal):表达的信息如字面所示,再通俗点就是表达的信息就是它自己。 常量和字面量 之间几乎没有区别,用良好的定义规范来命名常量可以起到替代字面量
3.3.3 自增和自减运算符 自增运算符|自减运算符 前置形式++a –a 后置形式〉a++ a– 计算的结果a+1|a-1 是单目运算符,不能++(a+b)
前置与后置的区别
1 2 3 4 5 int a=1 ,b=1 ; System.out.println(a++); System.out.println(a); System.out.println(++b); System.out.println(b);
1 2 2 2
3.3.4 关系运算符 1 2 3 4 5 运算符说明实例结果 ==|等于|2 ==3 |false <|小于|2 <3 |true >|大于2 >3 |false <=|小于等于5 <=6 |true >=大于等于|7 >=7 |true !=不等于2 !=3true
1 2 3 4 5 6 int c=20 ,d=21 ,e=22 ; System.out.println(c+"是偶数码" +(c%2 ==0 )); System.out.println(c+"是奇数码" +(c%2 ==1 )); System.out.println(c<d); System.out.println(d<e);
3.3.5 短路运算符 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 运算符含义举例结果 &&逻辑与A&&B(真)与(假)=假 ||逻辑或A||B(真)或(假)=真 !逻辑非!A不(真)=假 int c=20 ,d=21 ,e=22 ; System.out.println(c+"是偶数码" +(c%2 ==0 )); System.out.println(c+"是奇数码" +(c%2 ==1 )); System.out.println(c<d); System.out.println(d<e); System.out.println(c<d&&d<e); int f=20 ,g=1 ,h=22 ; System.out.println(f<g&&g<h); System.out.println(f<g||g<h); System.out.println(!(f<g)); true true true false true true 逻辑运算的结果 true &&true ==true true ll true ==true Itrue ==false true &&false ==false true false ==true false &&false ==false falsel false ==false Ifalse ==true
逻辑与,只要有false,就是false
逻辑或,只要有true,就是true
3.3.6 位运算符 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 位逻辑运算符 运算符含义|举例 &|与|a&b ||或|a|b ~取反|~a A ^异或a^b 位移运算符 运算符含义举例 <<|左移位|a<<2 >> 右移位 b >> 4 >>> 无符号右移位 x>>>2
位逻辑运算符 位移运算符 右移1位与右移2位(0.5倍关系),右移符号不变
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package com.new20221009;public class STUDY2022101002 { public static void main (String[]args) { int a=24 ; System.out.println(a+"右移两位结果:" +(a>>2 )); int b=-16 ; System.out.println(b+"左移三位结果:" +(b<<3 )); int c=-256 ; System.out.println(c+"无符号右移结果:" +(c>>>2 )); byte d=(byte )(-32 >>>1 ); System.out.println(d); short e=(short )(-128 >>>4 ); System.out.println(e); } }
3.3.7 三元运算法 int f=1;
int g=f<3?2:3;
System.out.println(g);
System.out.println(f<3?2:3);
f<3 为true 返回2
f<3 为false 返回3
3.3.8 运算符的优先级列表 3.5 数据的类型转换 小物进大物 两种方式
大物进小物 只有一种 还可能溢出
低精度向高精度转换 char与int互相兼容
将int类型的a转换为byte类型
显示转换(强制转换),高精度转换为底精度,不仅适用于基本类型,还适用于引用类型
显示转换导致精度损失
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 float f =(float )3.1415926 int i =(int )3.1415926 byte b=(byte )129 ; System.out.println(b); 结果为3.14159 3 -127 public class Practice { public static void main (String[] args) { long mylong = 45789 ; byte mybyte = 123 ; short myshort = 32564 ; int myint1 = (int ) mylong; int myint2 = (int ) myshort; int myint3 = (int ) mybyte; System.out.println(myint1); System.out.println(myint2); System.out.println(myint3); } }
3.6.1 代码的注释 注释就是对代码的解释和说明。
注释范围内的任何内容都不会被计算机编译执行
输入代码必须使用半角+英文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class Demo {public static void main (String[] args) {
在类下的jiava文件右击export,java,javadoc,选择默认的包和输出路径,finish.
打开路径中的index就可以发现api样的文档.
4 语法 4.2.1 if语句 决策分支:拿主意,做选择。
1 2 3 4 5 6 7 if 语句if ……else 语句if ……else if 语句
一分支语句 1 2 3 4 5 if (布尔表达式){语句;} if (布尔表达式)语句;
1 2 3 4 5 6 自动补全 alt + / 自动调整格式 ctrl + shift + f 自动保存 crtl + f 单行注释 crtl + /
1 2 3 4 5 6 7 8 9 10 11 package com.new20221009;public class STUDY20221012 { public static void main (String[] args) { int num=4 ; if (num%2 ==0 ){ System.out.println("num是偶数" ); } System.out.println("num值是" +num); } }
二分支语句 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 int balance=500 ; if (balance==500 ){ System.out.println("买豪车" ); }else { System.out.println("买自行车" ); } int balance=500 ; if (balance==500 ) System.out.println("买豪车" ); else System.out.println("买自行车" ); int num2=4 ; if (num2%2 ==0 ){ System.out.println("num2是偶数" ); }else { System.out.println("num2是奇数" ); } System.out.println("num值是" +num); int balance=500 ; if (balance==500 ){ System.out.println("账户有500W" ); if (true ) System.out.println("买豪车" ); }else System.out.println("买自行车" );
1 2 3 else 会匹配离他最近的if 语句else 不能单独使用,必须和if 一起出现
多分支语句 1 2 3 4 5 6 7 8 9 10 11 if (balance2>=500 ){ System.out.println("兰博基尼" ); }else if (balance2>=200 && balance2<500 ){ System.out.println("卡宴" ); }else if (balance2>=50 && balance2<200 ){ System.out.println("奔驰" ); }else if (balance>0 && balance2<50 ){ System.out.println("奥迪" ); }else { System.out.println("再接再厉" ); }
1 2 3 4 5 6 7 8 9 boolean flag=false ;if (flag=true ){Systed.out.println("表达式是true" ); }else { System.out.println("表达式是false" ) boolean flag=false ;if (!flag){ Systed.out.println("表达式是true" ); }else { System.out.println("表达式是false" )
4.2.2 switch 多分支语句 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 int grade=10 ;switch (grade){case 10 :System.out.println("成绩为优" );break ;case 9 :System.out.println("成绩为优" );break ;case 8 :System.out.println("成绩为良" );break ;case 7 :System.out.println("成绩为中" );break ;case 6 :System.out.println("成绩为中" );break ;case 5 :System.out.println("成绩为差" );break ;case 4 :System.out.println("成绩为差" );break ;case 3 :System.out.println("成绩为差" );break ;case 2 :System.out.println("成绩为差" );break ;case 1 :System.out.println("成绩为差" );break ;case 0 :System.out.println("成绩为差" );break ;default :System.out.println("成绩无效" );} int grade=10 ;switch (grade){case 10 :case 9 :System.out.println("成绩为优" );break ;case 8 :System.out.println("成绩为良" );break ;case 7 :case 6 :System.out.println("成绩为中" );break ;case 5 :case 4 :case 3 :case 2 :case 1 :case 0 :System.out.println("成绩为差" );break ;default :System.out.println("成绩无效" );}
4.3.1 while循环语句 1 2 3 4 5 6 7 8 9 1+2+3+……+100= 1+100 2+99 3+98 5050
1到100累加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 i=1 ; sum=0 ; i<=100 sum =sum+i; i++; int i=1 ;int sum=0 ;while (i<=100 ){ sum =sum+i; System.out.println("sum=" +sum+" i=" +i); i++; } System.out.println(sum);
4.4.3 do……while循环语句 1 2 3 4 5 6 7 8 9 10 11 12 13 int a1=0 ,a2=0 ;System.out.println("befor while a2=" +a2); while (a1>1 ){ a2++; } System.out.println("after while a2=" +a2); int a1=0 ,a2=0 ;System.out.println("befor while a2=" +a2); do { a2++; }while (a1>1 ); System.out.println("after while a2=" +a2);
do while更容易实现两次密码的校验
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package com.new20221009;import java.util.Scanner;public class STUDY20221012 {…………………… Scanner sc=new Scanner(System.in); String pwd1="0" ; String pwd2="-1" ; do { System.out.println("请输入密码:" ); pwd1=sc.nextLine(); System.out.println("请再次输入密码:" ); pwd2=sc.nextLine(); if (!pwd1.equals(pwd2)){ System.out.println("您输入的密码不一致,请重新输入!" ); } }while (!pwd1.equals(pwd2)); System.out.println("密码设置成功!" );
4.3.3 for循环语句 1 2 3 4 5 6 int sum2=0 ; for (int i3=1 ;i3<=100 ;i3++){ sum2+=i3; } System.out.println("sum=" +sum); }
1 2 3 4 int arr[]={7 ,10 ,56 ,75 ,68 };for (int x:arr){ System.out.println(x); }
1 2 3 4 5 6 7 8 9 10 11 12 int cock,hen,chick; for (cock=1 ;cock<=20 ;cock++) { for (hen=1 ;hen<=33 ;hen++) { for (chick=3 ;chick<=99 ;chick+=3 ) { if (cock*5 +hen*3 +chick/3 ==100 ) { if (cock+hen+chick==100 ) { System.out.println("公鸡:" +cock+"母鸡:" +hen+"小鸡:" +chick); } } } } }
4.4 循环控制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 int i4=1 ;while (i4>0 ){i4++; System.out.println(i4); if (i4==10 ){break ;} } System.out.println("循环停止" );
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 for (int i5=0 ;i5<3 ;i5++){ System.out.println("i5=" +i5); for (int j2=0 ;j2<6 ;j2++){ System.out.println("j2=" +j2); if (j2==4 ){ break ; } } } out: for (int i5=0 ;i5<3 ;i5++){ System.out.println("i5=" +i5); for (int j2=0 ;j2<6 ;j2++){ System.out.println("j2=" +j2); if (j2==4 ){ break out; } } }
1 2 3 4 5 6 7 8 9 for (int s=1 ;s<=10 ;s++){ if (s%2 ==0 ) continue ; System.out.println("s=" +s); }
5.1 String类 Char只能保存一个字符
只要有+,就会拼接
如”abc”+true abctrue
“abc”+123 abc123
1 2 3 4 5 6 7 8 9 10 11 12 13 14 package com.new20221009;public class STUDY20221014 { public static void main (String[] args) { String a="时间就是金钱,我的朋友。" ; String b="锄禾日当午" ,c="小鸡炖蘑菇" ; String str1,str2; str1="We are students" ;str2="We are students" ; System.out.println(a); System.out.println(b); System.out.println(str1+str2); } }
main alt +/ 自动补全
1 2 3 char [] charArray= {'t' ,'i' ,'m' ,'e' }; String a2=new String(charArray); System.out.println(a2);
1 2 3 char [] charArray2= {'時' ,'間' ,'就' ,'是' ,'金' ,'錢' }; String a3=new String(charArray2,4 ,2 ); System.out.println(a3);
4是從第五位開始
1 2 3 byte [] byteArray= {-60 ,-6 ,-70 ,-61 };String a4=new String(byteArray); System.out.println(a4);
顯示金錢
5.6 正则表达式 DAY 02 JAVA基础概念 键盘录入
int a = 123;
三元运算符
快捷键
ctrl+alt+l 自动化格式 对齐代码
()的运算优先级优于其他所有,凡是需要给定顺序,必要用()
Day 03 判断和循环
Eclipse 快捷键 HQ 标压
U:低压,
Y:超低压,
摩尔定律(英特尔 创始人 之一戈登·摩尔 ): 集成电路上可以容纳的晶体管数目在大约每经过18个月到24个月便会增加一倍。换言之,处理器的性能大约每两年翻一倍,同时价格下降为之前的一半
反摩尔定律 (Google 的前CEO埃里克·施密特):如果你反过来看摩尔定律,一个IT公司如果今天和18个月前卖掉同样多的、同样的产品,它的营业额就要降一半。IT界把它称为反摩尔定律。
安迪-比尔定理 (Andy and Bill’s Law)是对IT产业 中软件和硬件升级换代关系的一个概括。原话是 “Andy gives, Bill takes away.(安迪提供什么,比尔拿走什么。)” 安迪指英特尔 前CEO安迪·格鲁夫 ,比尔指微软 前任CEO比尔·盖茨 ,这句话的意思是,硬件提高的性能,很快被软件消耗掉了。
8 bit =1 byte
学习须知
建立学习目录
软件目录
电子笔记
不记详细笔记,要记概要笔记
软件
系统软件
应用软件
软件开发
图形化界面(GUI)
命令行方式(CLI)
程序=算法+数据结构
DOS命令
写入文字至doc
删除文件(通配符)
rm删除目录必须保证目录非空
rm -f/*为强制删除
del文件夹,会删除文件夹下所有文件
计算机语言历史
凡是和操作系统交互的都用C和C++(开发底层,面向过程)
开发效率:C/C++<java<Python
JAVA优点
可以与互联网用户交互
Java应用
与C的区别
运行机制与特性
一次编译,到处运行
JDK/JRE/JVM
安装
在系统变量和用户变量里设置是一样的
第一个Java程序(必须用ANSI编码)
字节码文件名对应类名
代码编辑记事本
EditPlus
NotePad++
注释(comment)
单行注释;
//单行注释:如下的main方法是程序的入口!
多行注释;
/*多行注释:
如下的main方法是程序的入口!
main的格式是固定的!
*/
文档注释;
1 2 3 4 5 6 7 8 9 10 11 12 class HelloJava { public static void main (String[] args) { System.out.println("Hello,World!" ); } }
中文乱码问题:
方案一(实测可用):用Editplus或Notepad++打开文件,将编码方式改为ANSI
方案二(实测不可用):乱码的同学在dos指令的最后加上javadoc -d myHello -author -version HelloWorld.java -encoding utf-8 -charset utf-8
多行注释不可嵌套使用
生成注释文件
1 javadoc -d myHello -author -version HelloWorld.java
API文档(字典)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ***对第一个Java程序进行总结 1. java程序编写-编译-运行的过程(javac java)2. javac进行编译 javac ---.java3. javac进行运行 java ---(类名)***一个java源文件中可以写多个class , 但只能有一个public 的class , 而且public 只能加在与源文件名相同的class 之前。 ***程序的入口是main ()方法,格式是固定的//args 可写作a ,arguments :参数 public static void main (String [] args )可写作 public static void main (String [] a ) 或public static void main (String a []) ***输出语句 System .out .println ("Hello ,World !") ;先输出数据,后换行System.out.print("Hello,World!" );只输出数据 ***每个执行语句都以“;"或“{”结束· ***编译的过程; 编译过程中会生产多个字节码文件,文件名与类名相同
常用的Java开发工具
文本编辑工具
集成开发环境
考试一 ①
Java 语言的软件开发工具包 ,简称JDK
Java运行环境(Java Runtime Environment,简称JRE
(JVM+Java系统类库)
JVM ,Java虚拟机
JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc,exe)
JRE = JVM + Java核心类库
②
定义JAVA_HOME变量,JAVA_HOME为bin的上一层目录
path变量内写%JAVA_HOME%\bin
③
rd 删除文件夹
md
cd
cd\
dir
del
④
创建 ChairMan.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public class ChairMan{ public static void main(String[] args){ System.out.println("姓名:张蔡斌\n"); //System.out.println(); System.out.println("性别:男"); System.out.println("家庭地址:四川省成都市高新区"); } }
编译
运行
生成注释文档
1 javadoc -d chairMan -author -version ChairMan.java
关键字
byte 拜特
bit比特
SQL 涩尔扣
Oracle 奥瑞扣
ASCII > Unicode > utf-8
java编译使用GBk编译(调整为ANSI即可)
String类型变量为引用类型,声明时使用一对“”
String可以和八种基本数据类型进行运算,前后有一个为String,即为连接符(仅连接后的一个变量)
char中不能为空,可为空格
String中可为空
char = ‘’ X
char = ‘ ’ 对
A=65, a=97
char和char相加为int
String转int
进制与进制间转换
int num1 =0b0101 5
int num1 = 0107
int num1 =0x010A
二进制转换为十进制
十进制转换为二进制
二进制转换为八进制或十六进制
三位一看,四位一看
八进制或十六进制转换为二进制
1.标识符的命名规则有哪些?
数字0-9,字母,$, _,
开头不能为数字
严格区分大小写
2.标识符的命名规范有哪些?
包 全小写 book
类,class,接口,interface 大驼峰法 StudentName
变量,方法 小驼峰法 railRoad
常数 全大写 CAR_ID_PRINCE
3.Java 变量按照数据类型怎么划分?并指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小
内存大小
byte 1byte -128-127
short 2byte
int 4byte
long 8byte
float
double
char
boolean
引用类型
类class—-字符串String
数组
接口
4.说明基本数据类型变量之间自动类型提升的运算规则。
char、byte、short—>int—>long—>float—>double
5.说明基本数据类型变量之间强制类型转换的使用规则和强转可能出现的问题。
int a =12
byte b=(byte)a+(byte)2
容量大—容量小,要用强转符()
精度丢失
开发中推荐使用双与与双或
O(1)级别
程序流程控制
\1. “&”和“&&”的异同
2.程序输出
1 2 3 class OperatorTest { public static void main (String[] args) { boolean ** x = **true **; **boolean ** y = **false **; **short ** z = 40 ; **if ** ((z++ == 40 ) && (y = **true **)) { z++; } **if ** ((x = **false **) || (++z == 43 )) { z++; } System.*out\***.println("z = " + z); } }
结果为:44
++a, 先运算后比较(比较)
a++,先比较(比较)后运算
\3. 定义三个int型变量并赋值,使用三元运算符或者if-else获取这三个数中的较大数的实现
int num1 = 10,num2 = 21,num3 = -21;
int max; if(num1 >= num2 && num1 >= num3){ max = num1; }else if(num2 >= num1 && num2 >= num3){ max = num2; }else{ max = num3; }
System.out.println(“三个数中的最大值为:” + max);
\4. 编写程序,声明2个double型变量并赋值。判断第一个数大于10.0,且第2个数小于20.0,打印两数之和。否则,打印两数的乘积。
double d1 = 12.3; double d2 = 32.1; if(d1 > 10 && d2 < 20){
}else{
}
\5. 交换两个变量值的代码的实现
String s1 = “北京”; String s2 = “南京”;
String temp = s1; s1 = s2; s2 = temp;
break在switch-case中的应用-去冗余
Day04 每日一练 1.switch后面使用的表达式可以是哪些数据类型的。 byte 、 short 、char 、int 、枚举类型变量、String类型。
使用switch语句改写下列if语句:
int a = 3; int x = 100; if(a==1)
x+=5;
else if(a==2)
x+=10;
else if(a==3)
x+=16;
else
x+=34;
int a = 3; int x = 100; switch(a){ case 1: x+=5; break; case 2: x+=10; break; case 3: x+=16; break; default: x+=34; //break; }
谈谈你对三元运算符、if-else和switch-case结构使用场景的理解 int c; if(a != b){ c = a; }else{ c = b; }
int c = (a != b)? a : b;
int c = a;
如何从控制台获取String和int型的变量,并输出?使用代码实现
import java.util.Scanner;
Scanner scan = new Scanner(System.in);
String info = scan.next(); int id = scan.nextInt();
使用for循环遍历100以内的奇数,并计算所有的奇数的和并输出。
int sum = 0; for(int i = 1;i <= 100;i++){ if(i % 2 != 0){ Sysout(i); sum += i; } } syout(sum);