1.java跨平台运行的原理
在须要运行在java的操做系统上,先安装一个JVM(Java Virtual Machine)便可
由JVM负责java程序的运行,实现跨平台,使其具备良好的可移植性html
2.怎么实现让经常使用的java,javac在任何路径下均可以被执行
设置环境变量java
系统变量→新建 JAVA_HOME 变量 。变量值填写jdk的安装目录小程序
系统变量→寻找 Path 变量→编辑在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意若是是win7系统,则原来Path的变量值末尾有没有;号,若是没有,先输入;号再输入上面的代码;若是是win10系统,那么直接新建就能够)数组
系统变量→新建 CLASSPATH 变量,变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)服务器
注:设置path环境时:%JAVA_HOME%\bin(%%取路径)oracle
新建:JAVA_HOME (java的bin目录;是我为了java相关的软件使用java,java的服务器软件)函数
3.JDK包括了JRE,JRE(java运行环境)包括JVM优化
4.JVM只识别字节码,不能直接识别java源代码 先编译后执行.class文件
.class(字节码文件)
5.若是类名有Public,则文件名必须与类名相同
若是没有public,则文件名和类名能够不同编码
6.标识符:程序中凡是本身起的名字
规则:1.由英文字母,数字,下划线,$组成
2.不能以数字开头,不能和关键字同名
3.严格区分大小写spa
7.常量类型及举例
888//整数常量
88.88//小数常量
"hello world"//字符串常量
'K'//字符常量
true,false//布尔值
null//引用类型的常量
8.java的进制
十进制
八进制:二进制每三位转成一位,二进制三位数最大的是111,等于7,是八进制中最大的数
十六进制:二进制每四位转成一位,二进制四位数最大的是1111,等于15,是十六进制中最大的数
位权:从0开始,从低位到高位
9.负数的二进制:其正数的二进制按位取反再加1(注:有符号二进制数最小为10000000,不是11111111,能够根据含义验证其正确性)
10.变量:内存中的一个存储区域
该区域有本身的名称(变量名)和类型(数据类型)
该区域的数据能够在同一类型范围内不断变化
为何要定义变量:用来不断的存放同一类型的常量,并加以重复利用
11.java的变量类型
数据类型的做用:
1.决定变量占多大的内存
2.内部存储的数据
数据类型:基本数据类型:数值型(整数类型(byte,short,int,long),浮点类型(float,double))
字符型(char)
布尔型(boolean)
引用数据类型:类(class)
接口(interface)
数组
整型默认:int 浮点型默认:doubles
long型后若是不加L则默认为int型,浮点型若是不加F则默认为double型
一个字节表示的范围(考虑正负):-(2^(8*字节数-1))到2^(8*字节数-1)-1
八大基本数值类型:
整型:
byte:字节型,占一个字节,-128~127
short:短整型,2个字节,-32768~32767
int:整型,4个字节
long:长整型,8个字节
浮点型:
float:单精度浮点型,精确到小数后第7位,4个字节
double:双精度浮点型,精确到小数点后16位,8个字节
布尔类型:
boolean(true,false):一个字节
字符串:char,unicode:2个字节
经常使用的unicode编码:a:97 A:65 0:48
12.类型转换:
自动类型转换(隐式类型转换)
强制类型转换(显示类型转换)
数据类型级别高低:byte,short,char-->int-->long-->float-->double
13.全部的byte、short、char的值将被提高到int型
byte ss=8;//右边是int,编译没报错,说明内部作了转换,内部砍掉了前3个字节,高级别到低级别,十分少
14.运算符:用以表示数据的运算、赋值和比较
分为:算术运算符,赋值运算符,比较运算符,逻辑运算符,位移运算符
15."+"除了字符串相加的功能外,还能把非字符串转换成字符串
如:"x"+123==>"x123"
若是对负数取模,能够把模数负号忽略不记,如:5%-2=1
但被模数是负数就另当别论
对于除号"/",它的整数除和小数除是有区别的:整数之间只保留整数部分而舍弃小数部分
16."&"和"&&"的区别:单与时,左边的不管真假,右边的都进行运算:
双与时,若是左边为真,右边参与运算,若是左边为假,那么右边不会参与运算
17."|"和"||"的区别同理:双或时,左边为真右边不运算
18."^"异或与"|"或的不一样之处:当左右都为true时,结果为false
19.if语句的第二种格式的简写格式。格式是固定的,要求记住。
变量=(条件表示式)?表达式1:表达式2;
注:a,每一种格式都是单条语句。
b,第二种格式与简写格式的区别:简写格式运算完要有值出现。好处是 能够写在其余表达式中。
c,条件表达式不管写成什么样子,只看最终的结构是不是true 或者 false;
20.switch特色:
注:a,switch语句选择的类型只有四种:byte,short,int , char。
b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
c,结束switch语句的两种状况:遇到break,执行到switch语句结束。
d,若是匹配的case或者default没有对应的break,那么程序会继续向下执行,运行能够执行的语句,直到遇到break或者switch结尾结束。
21.什么是函数?
函数就是程序中一段独立的小程序。
Java中函数的格式:
返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,……)
{
执行语句;
return 返回值;
}
22.函数特色
它是程序中一段独立的小程序。
它能够实现独立的功能。
它只有被调用才会执行。
它能够被重复使用。
23.函数的重载
在同一个类中,容许存在一个以上的同名函数,只要它们的参数个数或者参数类型不一样便可。
存在的缘由:
方便于阅读,优化了程序设计。
特色:
与返回值类型无关,只看参数列表。
24.开辟不一样内存空间是为了对每一片内存中的数据都有不一样的处理方式,提升效率。
栈内存的特色:
存储局部变量,空间不用时自动释放内存。
堆内存的特色:
存储数组和对象,经过new关键字创建的实体都存放在堆内存当中。
实体都有一个内存地址值。
对内存中的变量都有默认初始化值。
垃圾回收机制,Java特有的内存管理机制,在不定时的时间内将垃圾清除释放空间。
25.引用
强引用(StrongReference)
咱们使用的大部分引用实际上都是强引用,这是使用最广泛的引用。若是一个对象具备强引用,那就相似于必不可少的生活用品,垃圾回收器毫不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具备强引用的对象来解决内存不足问题。
软引用(SoftReference)
若是内存空间足够,垃圾回收器就不会回收它,若是内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就能够被程序使用。
弱引用(WeakReference)
在垃圾回收器线程扫描它 所管辖的内存区域的过程当中,一旦发现了只具备弱引用的对象,无论当前内存空间足够与否,都会回收它的内存。不过,因为垃圾回收器是一个优先级很低的线程, 所以不必定会很快发现那些只具备弱引用的对象。
虚引用(PhantomReference)
若是一个对象仅持有虚引用,那么它就和没有任何引用同样,在任什么时候候均可能被垃圾回收。