1, Java程序都是以类的形式存在的,所以需要告诉虚拟机需要加载类的位置,那么可以设置classpath变量。classpath变量如果有;,则表示还会在当前目录查找,没有;则不会在当前目录查找。
当然如果没有classpath也会在当前目录查找。
2, rd删除目录,加/S可以删整个目录,Windows从里向外删除。
3, 一个文件只有一个public类,文件名必须和类名相同,如果不是友好类,则不需要同名。
4, JAVA一共有50个关键字
关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名。
java关键字描述列表
abstract //抽象方法,抽象类的修饰符
assert //断言条件是否满足
boolean //布尔数据类型
break //跳出循环或者label代码段
byte //8-bit 有符号数据类型
case //switch语句的一个条件
catch //和try搭配捕捉异常信息
char //16-bit Unicode字符数据类型
class //定义类
const //未使用
continue //不执行循环体剩余部分
default //switch语句中的默认分支
do //循环语句,循环体至少会执行一次
double //64-bit双精度浮点数
else //if条件不成立时执行的分支
enum //枚举类型
extends //表示一个类是另一个类的子类
final //表示一个值在初始化之后就不能再改变了
//表示方法不能被重写,或者一个类不能有子类
finally //try 语句不管是否发生异常都要执行的语句块
float //32-bit单精度浮点数
for //for循环语句
goto //未使用
if //条件语句
implements //表示一个类实现了接口
import //导入类
instanceof //测试一个对象是否是某个类的实例
int //32位整型数
interface //接口,一种抽象的类型,仅有方法和常量的定义
long //64位整型数
native //表示方法用非java代码实现
new //分配新的类实例
package //一系列相关类组成一个包
private //表示私有字段,或者方法等,只能从类内部访问
protected //表示字段只能通过类或者其子类访问
//子类或者在同一个包内的其他类
public //表示共有属性或者方法
return //方法返回值
short //16位数字
static //表示在类级别定义,所有实例共享的
strictfp //浮点数比较使用严格的规则
super //表示基类
switch //选择语句
synchronized //表示同一时间只能由一个线程访问的代码块
this //表示调用当前实例
//或者调用另一个构造函数
throw //抛出异常
throws //定义方法可能抛出的异常
transient //修饰不要序列化的字段
try //表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码
void //标记方法不返回任何值
volatile //标记字段可能会被多个线程同时访问,而不做同步
while //while循环
5, 标示符,Java标识符由数字,字母(中文也可以,因为UNICODE编码)和下划线(_),美元符号($)组成。在Java中是区分大小写的,而且还要求首位不能是数字。下划线主要用在常量中,$用在内部类中,在方法,变量名中少用他们,用驼峰命名方式。
6, 注释,单行注释,多行注释,文档注释。文档注释/**开头,*/结尾。多行注释不可以嵌套,所以单行注释方便。注释不会被编译到类文件中,会擦出掉。注释不是越多越好。
7, 写代码,不必先着急写代码,首先需要分析。1需求 ,2思路,3步骤。
8, 字面值常量,小数,整数,boolean,字符,字符串,null,常量。
9, 变量时内存空间中的一块区域,该区域有自己的名称和类型,该区域的数据可以变化。变量的作用域只在{}中有效。
10, 基本数据类型 和 引用数据类型
整型:byte(8bits -128 ~127) short(16bits -2^16 ~2^16) int(32bits -2^32 ~2^32) long(64bits -2^64 ~2^64),还有一个类(BigInteger类会代替范围不够大),JAVA7前可以加上0b表示二进制。还可以为数字字面值加上下划线,如1_0000_0000 ,JAVA编译器会去除这些下划线。
浮点类型: float(32bits 6~7位有效数字) double(64bits 15位有效数字) ,三个特殊的浮点数职:正无穷大Double(Float).POSITIVE_INFINITY、负无穷大Double(Float).NEGATIVE_INFINITY、Double(Float).NaN(不能检测一个特定值是否等于==它,判断两个浮点数是否相等要小心),因为误差大,所有有一个类(BigDecimal)会代替。Math.random()返回一个随机浮点数(0~1)。
如果追求性能用Math库(sqrt,pow(x,a),tan,sin,cos,exp,log, log10 PI,E),否则用StrictMath库。
字符类型:char (16bits )
布尔类型:boolean(大小不确定)
整数默认是:int 小数默认是:double
接口类型:interface
类类型:calss
枚举类型:enum
数组类型:[]
默认初始化:int 0,小数,0.0 ,布尔 false,字符:‘\U0000’,String: null;
11, 类型转换: 自动类型转换,两个数值进行二元操作时,首先需要将两个操作数转换成同一种类型再计算。
1,如果有一个操作数double,另一个操作数自动转化为double.
2,如果有一个操作数float,另一个操作数自动转化为float.
3,如果有一个操作long,另一个操作数自动转化为long.
4,否则,两个操作数都转化为int.
强制类型转换,可能会丢失精度,强制类型转换通过截断小数部分将浮点值转化为整型。如果需要四舍五入用MATH.round(x).
12, 运算符优先级别,1,[]. ()(方法调用) 2,一元操作符 3,二元操作符 (instanceof) 3,移位运算符 4,逻辑运算符 5,位运算符 (对移位运算符的右侧的参数需要进行模32的运算(除非左边是long,右边则对64求模))6,逻辑运算符 7,条件运算符 8,赋值运算符 9,逗号操作符
13,
switch语句特点:
1、switch语句选择的类型只有四种:byte,short,int,char。JAVA7支持String。
2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。
14, 循环控制语句,for while.可以有标签操作,但是必须放在要跳出循环外面,跳出指定最外层循环,for()中可以用逗号操作表达式。for each只需要实现Itreable接口即可。
15, 函数:函数是传值调用,函数重载:
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。与返回值类型无关,方法名以及参数类型叫做方法的签名。
16, 数组:数组分配在堆上,可以分配大小为0的数组,数组支持for each,int[] buf = {1,2,3}只能出现在定义时初始化。数组工具类:Arrays.toString(T[])或者Arrays.deepToString打印数组. Arrays.fill() ,Arrays.copyof(),Arrays.sort(). Arrays.binarySearch();