一、基础导入:
1.java采用Unicode编码,16进制编码,支持世界上所有语言(GBK,gb2312,Unicode,UTF-8,ISO-8859-1)。
多线程---> c-编译型语言
Test.java--源文件,源文件必须与主类名(public class Test)保持一致。
- 一个源文件只有一个主类。
- 主方法存在于主类中。
2.java程序编译-执行流程:
编译:javac Test.java -> Test.class (若程序中出现中文,编译时加上-encoding UTF-8)
执行:java Test
- 命令行向主方法传参:java Test 参数1 参数2 ……
3.
- JDK:JDK开发程序包,包含JRE,多了编译器javac以及调试工具JConsole、jstack,针对java程序员。
- JRE:是运行java程序的环境,包含JVM以及java核心类库,针对使用java程序的用户。
- JVM:java虚拟机(java移植性的关键)
二、java数据类型与运算符
1.java注释
- ①单行注释://
- ②多行注释:/* */
- ③文档注释:/* * */
2.java标识符
驼峰命名法:
①小驼峰:用于方法名、普通变量名称
- 若标识符室友单个单词组成,则全小写:int age = 5;
- 若标识符是由多个单词组成,除了第一个单词全小写外,第二个单词以及之后的单词首字母大写:int myAge = 10;
②大驼峰:用于类命名
类名是以大写字母开头的单词。
- 若类名由多个单词组成,则每个单词首字母大写。
如:
class Test{
...
}
class MyTest{
...
}
③常量:单词全大写,多个单词间以_间隔
如:
final int MY_AGE = 10;
3.java数据类型划分:
(1)八大基本数据类型:数据类型默认值需要结合类来观察,主方法变量必须先赋值再使用,不存在默认值。
①数值型
Ⅰ.整型(默认值为0):
byte(-128---127)-->1字节、short、int(-2^31---2^31)-->4字节、long(-2^63---2^63)
注意:
- 在java中,任何一个整型变量均为int类型!!
- 整型常量如果要声明为long类型,需要在数字后加上l或L(推荐)。
- 类型提升:小的数据类型与大的数据类型进行数值运算时,小的数据类型会自动提升为大的数据类型。eg:10+1L;
- 大的数据类型转为小的数据类型,必须强转。但是强转可能会丢失数据。
byte与int之间的关系:
- 整型常量在byte类型的保存范围内,可以直接赋值给byte变量,无需强转;
- 整型常量值超出byte范围,必须强转;
- 整型变量无论值是否在byte范围内,都要强转。
Ⅱ.浮点型(默认值为0.0):float、double
注意:
- 小数常量默认是double类型。
- 要定义float类型的常量,在小数后加 f/F。eg:float age = 1.1f;
小结:描述整型用int、小数用double,long一般用于描述日期、时间、内存、文件大小,IO处理用byte。
②字符型:用' '表示。
Ⅰ.char与int可以相互转换。
- char转int直接赋值,int转char需要强转。
- 字符型数字与整型数字绝对不相等。
- char一般用于描述中文(基本忽略),默认值为\u0000。
Ⅱ.String类初步认识:用" "表示。
- 只要出现字符串,其他任何类型与字符串“+”,都会先转为字符串再进行字符串的拼接操作。
小结:描述单个字符用char、多个字符用String类。
③布尔型:boolean(默认值为false)。
(2)三大引用类型:数组、类、接口(默认值为null)。
4、运算符
(1)自增自减运算符 ++ 、-- ,如a++、++a;a--、--a。
(2)三目运算符(*****):
布尔表达式?数值1:数值2;
如:'哈'>10; //true,字符型与整型数字可以直接比较。
(3)比较运算符:> 、 <、>=、<=
(4)逻辑运算符:
①逻辑或:|、||
在if语句中使用 | 时,表示多个条件都要判断,即便有表达式返回true,剩余条件还要继续判断。使用 || (短路非) 时,只要有条件返回true,剩余条件不再判断。
②逻辑与:&、&&
注意:java逻辑运算就使用短路与、短路非。
(5)位运算符:&、|、^、~、>>(除2)、<<(乘2)
5、java程序结构
(1)分支结构
①if...else if...else if..
②switch(数字|枚举|字符|字符串)
不带break的case语句会将满足条件的分支统统走一遍。
③for(1初始化条件;2循环结束判断;3修改循环条件){
//4循环体代码
} //执行顺序为1、2、4、3
循环控制条件:
- continue:跳出本次循环直接进入下一次循环。
- break:跳出整个循环。
(2)方法的定义:直接在主方法中调用的方法
public static 方法返回值 方法名([参数类型 变量...]){
方法体代码;
...
[return 返回值;]
}
注:void关键字声明的方法没有返回值,可以用return;结束函数的调用
(3)方法的重载(********)
定义:方法名称相同,参数的个数、类型、顺序不同,与方法返回值无关!
编码规范:重载函数的返回值类型一定保持相同!
(4)方法的递归