1 JDK,JRE,JVM
JVM:一个虚拟的,用来执行字节码的 ‘虚拟计算机’
JRE:包含Java虚拟机,库函数,运行Java应用的程序所必须的文件
JDK:包含JRE,以及增加编译器和调试器等用于程序开发的文件
2 第一个Java程序及详解
(1),java对大小写敏感,如出现了大小写拼写错误,则程序无法运行
(2),关键字public被称为访问修饰符,用于控制程序的其它部分对这段代码的访问级别
(3),关键字class的意思是类,java是面向对象的语言,所有代码必须位于类里面
(4),一个源文件至多只能声明一个public类,其它类个数不限,如果源文件中包含了一个public类,源文件名必须和其中定义的public的类名相同,且以.java为扩展名
(5),一个源文件可以包含多个类class
(6),正确编译后的源文件,会得到相应的字节码文件,编译器为每个类生成独立的字节码文件,且将字节码文件自动命名为类的名字且以.class为扩展名
(7),main方法是java应用程序的入口方法,它有固定的书写格式
(8),public static void main(String[] args){ }
(9),在java中,用花括号划分程序的各个部分,任何方法的代码必须以 { 开始,以 } 结束
(10),java中每个语句必须以分号结束
3 常用DOS命令
(1),cd 目录路径 进入一个目录
(2),cd… 进入父目录
(3),dir 查看当前目录下的文件和子目录列表
(4),cls 清屏
(5),上下键 查找敲过的命令
(6),Tab键 自动补齐命令
4 使用Eclipse创建一个java程序
步骤:
(1),创建一个新的java程序并命名 file,new,Java project
src是存放源码的文件,编译好后生成的class文件存储在bin文件中
(2),右键src,new,class,创建一个新的类,并命名
5 注释
(1),单行注释,以 // 开头,//后均为注释
(2),多行注释,以“/” 开头, 以 “/”结尾,中间的是注释,多行注释不能嵌套使用
(3),文档注释,以“/**”开头, 以“*/”结尾,注释中包含一些说明性的文字
6 标识符规则
标识符:用来给变量,类,方法以及包进行命名的
标识符使用规范一:
(1),标识符必须以字母,下划线,$ 开头
(2),标识符其它部分可以是字母,下划线,$和数字的任意组合
(3),java标识符大小写敏感,且长度无限制
(4),标识符不可以是java的关键字
标识符使用规范二:
(1),表示类名的标识符,每个单词的首字母大写 如 GoodMan
(2),表示方法和变量的标识符,第一个单词小写,从第二个单词开始首字母大写,即驼峰原则,如 eatFood()
注:java中不采用ASCII字符集,而采用Unicode这样标准的国际字符集,字母的含义不仅仅是英文,还可以是汉字等,不建议使用汉字来定义标识符
7 java中的关键字/保留字
java关键字是java语言供内部使用的,如class定义类
关键字也称保留字,java中不可以使用关键字作为变量名或方法
8 变量
变量本质上就是一个 ‘可操作的存储空间’,使用前必须声明和初始化
变量分类:局部变量,成员变量,静态变量
局部变量:方法或语句块内定义的变量,生命周期是从声明位置开始到方法或语句块执行完毕为止
成员变量(实例变量):方法外部,类的内部定义的变量。从属于对象,生命周期伴随对象始终
静态变量:使用static定义,从属于类,生命周期伴随类始终,从类加载到卸载
9 常量
java中,常用final来定义一个常量,常量被初始化后不能更改
常量命名规范:全部使用大写字母和下划线,如,MAX_VALUE
如
final double PI = 3.14; //定义了圆周率
// PI = 3.15 这条语句会报错
变量和常量命名规范:
1,所有变量,方法,类名要做到 见名知意
2,类成员变量:首字母小写和驼峰原则
3,局部变量:首字母小写和驼峰原则
4,常量:大写字母和下划线,MAX_VALUE
5,类名:首字母大写和驼峰原则,Man
6,方法名:首字母小写和驼峰原则,runRun()
10 基本数据类型
注:java中 char为2字节,引用数据类型均为4字节,用来代表对象的地址
11 整型常量/变量
java中整型常量的4中表示形式:
1,十进制整数,99,-100,0
2,八进制整数,要求以0开头,015
3,十六进制数,要求以 0x 或 0X开头,0x15
4,二进制数,要求以0b或0B开头,0b01110011
整型常量默认为int类型,后面加l或L表示这是一个长整型
12 浮点型变量/常量
float类型尾数可以精确到7位有效数字,double精确度为float的两倍,浮点型默认均为double类型,声明是float类型时,数值最后需要加f或F
浮点数是不精确的,不能直接用于比较
如果想用浮点数比较,在java.math包下面的两个有用的类:BigInteger和BigDecimal,这两个类可以处理任意长度的数值
BigInteger实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点运算
13 字符型变量/常量
char类型用来表示在Unicode编码表中的字符,占2个字节,可允许有65535个字符,通常用 ’ \u0000’ 到 ’ \uFFFF '之间的十六进制值表示,使用 ’ ’ 表示
14 boolean类型变量/常量
boolean类型有两个常量值,true和false,在内存中占1位,boolean类型用来判断逻辑条件,一般用于程序流程控制
15 运算符
二元运算符(+,-,*,/,%)运算规则:
整数运算:
1,如果两个操作数有一个long,则结果也为long
2,没有long时,结果为int。即使操作数全为short,byte,结果也为int
浮点运算:
1,只有两个操作数有一个为double,则结果为double
2,只有两个操作数为float,则结果才为float
取模运算:
其操作数可以为浮点数,结果是余数,余数符号和左边操作数相同,如 7%3=1,-7%3=-1
一元运算符++,- -:
a++在运算时,先运算再自增,++a在运算时,先自增再运算
扩展赋值运算符+=,-=:
a+=b 即 a = a + b
关系运算符:
!=,==,>,<,>=,<=
两个等于号表判断其结果为boolean类型,一个等于号表赋值
逻辑运算符:
用来操作boolean值 &(与),|(或),!(非),^(异或)
&&(短路与),||(短路或)可用来提高效率
&取交集,|取并集,!取反,^异或 相同为假,相异为真
位运算符:
~(按位取反),&(按位与),|(按位或),^(按位异或),
<<(左移 ,左移1位相当于乘2),>>(右移,右移1位相当于除2)
字符串连接符:
+:当+左右两边出现了" "字符串时,+作为字符串连接符
String a = “3”; int b = 4; int c = 5;
a+b+c = 345,a+b的结果作为字符串继续连接c
b+c+a = 93,b+c的结果为数值连接字符串a
条件运算符:
x ?y:z,如果x为true,返回y,如果x为false,返回z
16 类型转换
自动类型转换:自动类型转换指的是容量(指表示的范围而不是字节大小)小的数据类型可以自动转换成大容量的数据类型,如从int转换成long,但有些自动类型转换可能存在精度的损失如从long转换成double
强制类型转换:语法格式 (type)var,但有可能造成精度降低或溢出
操作比较大的数时,要留意是否溢出
不要命名名字为l的变量,l容易和1混淆
long类型末尾使用L,float类型末尾使用F最好
17 用Scanner获得键盘输入
18 流程控制语句
三类结构:顺序结构,选择结构,循环结构
任何一个软件,小到一个练习,大到一个操作系统,本质上都是由“变量,选择语句,循环语句”组成的
Math类的使用:
1,java.lang包中的Math类提供了一些用于数学计算的方法
2,Math.random()该方法用于产生一个0到1之间的double类型的随机数,但不包括1。 int i = (int)(6 *Math.random());产生[0, 5]之间的随机整数
switch的使用:
break用于强行退出循环,continue用于结束本次循环
goto关键字很早就出现在设计语言中,尽管goto仍是java的一个保留字,但是并未在java中正式使用,即java没有共同语句
带标签的break,continue:
标签指的是后面跟一个冒号的标识符,如 lable:
在循环中设置标签的理由是,我们希望在其中嵌套另一个循环,由于break和continue关键字只中断当前循环,但若随着标签的使用,它们就会中断到存在标签的地方