1.书写格式
1.1Java区分大小写
1.1类名以大写字母开头 Test
1.2方法和变量以小写字母开头,遵循驼峰原则。eat eatFood
1.3必须以字母(包括中文),下划线,美元符$开头。
1.4后面由字母(包括中文),下划线,$,数字组成。不能为关键字
1.5标识符不能是,true,false,null,但他们不是关键字。
2.Java是强类型语言,每个变量都必须声明类型。
3.变量声明是语句,都必须以”;“结尾。
4.变量作用域
4.1实例对象生命—随—对象
4.2静态变量生命—随—类
4.3局部变量生命从声明——“}”结束,使用前必须初始化,在方法体内定义的变量都是局部变量
4.3常量生命—随—程序,初始化化后,值不可变
5Java定义了3类8种基本数据类型
5.1 3类
逻辑型 boolean
文本型 char
数值型 byte,short,int,long,float,double
5.2 8种数据类型
6.引用数据类型大小统一为4个字节,引用对象地址
7.Java没有无符号类型
8.Java整型的范围与代码机器无关(c/c++需要针对不同处理器选择最有效的整数)
类型 | 占用存储空间 | 表数范围 |
Byte | 1字节 | -128~127 |
Short | 2字节 | -2^15 ~ 2^15-1 (-32768~32767) |
Int | 4字节 | -2^31 ~ 2^31-1 (-2147483648~2147483647) 约21亿 |
Long | 8字节 | -2^63 ~ 2^63-1 |
float | 4字节 | -3.403E38~3.403E38精度7位 |
double | 8字节 | -1.798E308~1.798E308精度24位 |
9.变量系统默认值
逻辑型 boolean false
文本型 char null
数值型 byte,short,int,long,float,double 0
10.类型自动转换规律(boolean型变量不能转换)
10.0byte型不能自动类型提升到char,char和short直接也不会发生自动类型提升
10.1容量小数据—自动转换—容量大数据
10.2 不超过byte,char,short范围的int—自动转换—(byte,char,short)
10.3数值型类型数据默认为 int型 超过int范围的long型数据后要加L/l(不要用小写)
10.4浮点类型数据默认为double型 float型数据必须加F/f7
10.6char 类型用来表示在Unicode编码表中的字符, Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符
11.类型强行转换规律
11.1容量大数据—强转—容量小数据 double a=3.14;int b=(int)a;
11.2赋值语句右边运算时参与变量类型相同,结果相同 int a/int b=int
11.3运算结果为整型数据,自动转int,结果赋值可能要强转
11.4 满足10.2条件时,但变量(需要运行期间才确定的)—强转—变量 int a=3;byte c=(byte)a;
11.5 运算时,数据会自动提升到容量较大者,结果赋值可能要强转
11.6 运算结果也遵循11.4条件
12.单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。
13.转义字符
转义符 | 含义 | Unicode值 |
\b | 退格(backspace) | \u0008 |
\n | 换行 | \u000a |
\r | 回(enter) | \u000d |
\t | 制表符(tab) | \u0009 |
\“ | 双引号 | \u0022 |
\‘ | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
14.Java中boolean型变量 true/false与c语言不同,不可以为0或非0的整数
15.i++ 右++先运算,后自增。 ++i 左++先自增,后运算。
16.&与&&区别
16.1&(可以做位运算符)是逻辑与 &&是简洁与或短路与,两边为true时,结果为true
16.2但&&左边为false时,不计算右边结果,直接输出false boolean c = 1>2&&2>(3/0);(不能用&)
16.|与||区别
16.1 | 是逻辑或 || 是 简洁或/短路或,两边为false时,结果为false
16.2但||左边为true时,不计算右边结果,直接输出true boolean c = 3>2&&2>(3/0);(不能用&)
17.+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会将另一个操作数转换成字符串再连接。
17.0(扩展知识)String类的并置问题https://blog.youkuaiyun.com/q418030645/article/details/79266362
17.1 符合17,另一个为整型变量时,直接输出整型值
17.2 符合17,另一个为非字符串引用时,输出引用地址
18. 变量<<左移 i为=变量*2^i; 变量>>右移i位=变量/2^i。
19. switch语句会根据表达式的值从匹配的case标签中开始执行,一直执行到break语句或者switch语句的末位(末位包括defalut语句)。与任意语句不匹配则进入default语句。
20静态方法使用公共空间,所有对象都可以引用。
21.(扩展知识)JAVA中只有值传递https://blog.youkuaiyun.com/bjweimengshu/article/details/79799485
22.递归
22.1递归头:什么时候不再递归调用自身方法。
22.2递归体:什么时候需要递归调用自身方法。
22.3(扩展知识)递归函数运行时,系统最大同时有的线程数为,函数调用次数。
23.在void函数中,可以用return;语句返回空,跳出该函数。
24.package包的使用方法
作用
24.1解决类名重复问题
24.2为了便于管理类:合适的类位于合适的包
用法
24.3通常是类的第一句非注释性语句
24.4包名:域名倒着写即可,再加上模块名,并与内部管理类
注意
24.4写项目时都要加包,不要使用默认包
24.5com.gao和com.gao.car,这两个包没有包含关系,是两个完全独立的包,只是逻辑上看起来后者是前者
的一部分。
25.6包名不区分大小写,创类时要注意不能重名。
25.import在一个类中使用了其他包中的类,需要使用 import 来引入
25.1如import java.awt.*,只引用 java.awt 下的类,而不引用 java.awt 下的子包里面的类。
25.2. import 只告诉编译器及解释器哪里可以找到类、变量、方法的定义,而并没有将这些定义 引入代码中。
25.3使用的类是属于 java.lang 包的,那么可以直接使用类名来引用指定的类
25.4使用的类在其它包(java.lang 除外)中,那么可以通过包名加上类名来引用该类, 如java.awt.Font。对于经常要使用的类(该类在其它包中),那么最好使用 import 引用指定的包,如java.awt.*
25.5如果import引入的不同的包中包含有相同的类名,那么这些类的使用必须加上包名。
25.6引用一个包中的多个类,如 import java.awt.*。 *号代替类名,但不能代替包名
26.静态变量
26.1