1.java基础

markdown格式还没调好。凑合看吧,后续会调整

##1.Java的工作方式、环境变量、编译、标识符 ###Java工作方式: 先编译(.class),再解释执行 编译命令:在放java文件的目录下 javac 文件名(.java) ----------> 将文件里的类生成.class文件 运行命令:在放.class文件目录下 java 类名 ---------> 运行这个类 ###重量级名词: JVM:java虚拟机,屏蔽操作系统差异,统一编程标准 JDK: JVM + 编译器 + 解释器 + 工具 + 类库 JRE: JVM + 解释器

###环境变量: JAVA_HOME : 是安装jdk的安装文件完整路径,例:C:Program FilesJavajdk1.8.0_181 Path:java工具的加载路径(C:Program FilesJavajdk1.8.0_181in) CLASSPATH:加载要运行时的类文件的目录,例:如果是当前目录就填入”.”; 一个java文件内最多有一个public修饰的公开类,且这个类的类名应与源文件名一致 带包编译:javac 包名(可以是多个包).源文件名 例如:javac p1.p2.p3.hello.java (包都存在) Javac -d 包名.源文件名 例如:javac –d p1.p2.p3.hello.java (包不全,-d自动补全包) ##Java程序基本结构: package 0 – 1 个 import 0 – n 个 class 1 – n 个 公开类只有一个

注释:被注释的字符串将不被编译运行

	//单行注释					快捷键:ctrl + /  再按一次取消注释

	/* */  多行注释				快捷键:Ctrl + shift + /   再按Ctrl + shift +  取消多行注释

	/**
	*	  多行注释配合javadoc工具生成文档   用法 --------> Javadoc  -d  doc  源文件.java
	*/

标识符:

保留字   (goto、const)、true、false、null
标识符没有长度限制  例如:int weruhsaiodufhpashdf…asdf = 123;	
标识符习惯:
类名标识符:单词首字母大写 (例如:class  Book)
变量标识符:单词首字母小写,后面的每个单词首字母大写 (例如:int priceOfBook)
包名标识符:全部小写 (例如:package  com.zzu.one)
常量名标识符:全部大写	(例如: final int A = 12; )

2.数据的基本类型、进制

byte		1B		-128 -- 127
short		2B		-32768 -- 32767
int		4B		-2147483648 – 2147483647  整数默认为int类型
    int i = 1;
    int j=0xA2234;//十六进制赋值 //可以赋值八进制、二进制(jdk7.0)
long		8B		-9223372036854775808 – 9223372036854775807  例如:long x =30_000L;分隔符”_”
float		4B		符号位1,指数位8,尾数位23      例如:1.3e7 = 1.3* 107 F;
double	8B		符号位1,指数位11,尾数为52	  例如:1.3e7 = 1.3* 107
char		2B		阿斯克码值:0 --- 65535
没有符号位
‘A’ ---->  65;
char c =’A’;  是’A’
char c =65;是’A’
char c=‘u0041’;是A  是十六进制的Unicode的编码方式

c++;   是c = ’B’
c+=1;  是c = ’B’
c = c + 1;  错误,1为int类型

Boolean 布尔类型 字面值true、false

进制:	八进制数	以0开头  例如:047
		二进制数	以0b开头 例如:0b1001
		十六进制	以0x开头 例如:ox4A34

位运算:
	&:按位求与
	|:按位求或
	^:按位求异或(10—>1 , 01—>1 , 11—>0 , 00-->0)
	~:按位求反
	<<:向左移一位						高位补0
	<<<:无符号向左移动一位  

4 -数据类型转换 首先,对一个表达式判断顺序(范围最高的那个类),以 a + b 为例: 如果a或b有double类型,则表达式的类型就为double 否则,a或b若有float类型,则表达式的类型为float 否则,a或b若有long类型,则表达式的类型为long 否则,表达式值为int

低级到高级赋值,自动转化:例如:short s =12; int I = s;
高级到低级赋值,需要考虑丢失精度,必须强制转
	byte ---> char & int ---> long ---> float ---> double  (char 可以看成是特殊的int类型)
	例如:int I =2; 则byte = (int) I;

例子:	byte a = 10;
		a++; (可以)
		a+=1; (可以)
		a = a +1; (不可以,1是一个int类型,必须强转)

5 -流程控制、for/switch for( 初始条件;条件范围; 控制条件的改变) 是正确的,在条件确定的循环中“;”不能省略,若省去条件则是死循环,条件始终为true;

除了continue和break,还有指定名称跳出指定循环
	例如:
		name: for(…;…;…){
		for(…;…;…){
			break name; //直接跳出第一个循环
		}

}

switch 接受参数的几种类型: switch(byte/short/int/char/(String是在jkd1.7版本后有的)) 例如:switch(1); (switch(12.2)不行) swhich(){ case 1:… case 2:… 如果执行case 1,则后面的全部执行;如若执行了2,其后都要执行 case 3:… 直到break结束,case 只是相当于执行代码块的一个入口 default: … } 6 -函数(方法) 函数作用: 减少代码冗余 方法用return 返回后,方法内其其后的所有代码将不会再执行 利用函数库,提高程序的可重用性 使程序更结构化、简单

定义方式:修饰符(public、static、private等,不分顺序)+ 返回值类型(无返回void、其他返回类型(如int)) + 方法名(参数表){ 代码实现部分 }

7 -数组 int a[] 可以 int[] a 可以 初始化(赋值): a = new int[3];

int [] a = {2,3,4,5}; //定义长度为4 的数组
String[] c= new String[2];//定义了长度为2的数组,默认值都为null

数组名a存的是数组的 地址,而a[0] 存的是第一个元素的值;

①数组拷贝:System.arraycopy(src, 0, dest, 0, length); System.arraycopy(原数组,原数组起始位置,目标数组,目标数组接受拷贝的起始位置,原数组要复制的 长度)

用法: int[] a = {2,4,5}; int[] b = new int[a.length * 2]; System.arraycopy(a, 0, b, 0, a.length);

②数组拷贝:Arrays.copyOf(src, newlength);
	Arrays.copyOf(源数组, 新数组的长度);

	用法:
		int a = {3,5,6};
		int b = Arrays.copyOf(a, a.length * 2);

8 -方法重载 重载条件:参数表不同(参数个数不同、参数类型不同、参数类型排列不同),对返回值不作要求,与形参的名字无关。 例如:public void f() Public void f(double d) Public void f(double d , int i) Public void f(int t , double d) 方法重载的好处:让对象方法有参数表的不同所造成的差异对用户屏蔽

由编译器根据实参来匹配相应的方法 9 -对象构造、构造方法 对象构造:类名 引用名 = new 类名(构造参数表) 引用名.属性 或 引用名.方法() ---> 访问对象的属性或方法

1、分配空间(根据成员属性)---> 属性被赋默认值 (不考虑继承,若有继承关系应先递归创建父类对象,注意静态代码块加载顺序) 2、初始化属性 ---> 属性被赋初始值 (声明过程) 3、调用构造方法 ---> 属性被再次赋值 注意:如果一个类中没有定义任何构造方法,则系统提供默认公开无参构造;如果类中写了一个构造方法,则系统不会调用默认构造方法

构造方法:是特殊的方法,不能被继承 1、 声明没有返回值类型,是区分其与普通方法的唯一标志 2、 方法名和类名相同 3、 不允许直接调用,在对象构造的过程中自动调用一次 注意:当程序员自己定义构造方法后,默认无参将不会被调用(最好把无参也写了,以便类继承) 10 -Java中的变量按照数据类型划分 主要有两类: 1、基本类型:byte(B)、short(2B)、int(4B)、long(8B)、float(4B)、double(8B)、char(2B)(char是特殊的int,字符以阿斯克码值存储)、boolean 储存值:存储的是数值,当传参时传递的实参

2、引用类型:例如,String(String存的变量是调用了其重载的方法)、以及其他自定义的类类型等
   储存值:存对象地址,当传参时传递的是对象地址
原文地址:https://www.cnblogs.com/linanana/p/12075111.html