Java的语言特点一般描述如下:简单、面向对象(抽象、继承、封装、多态)、跨平台、安全以及多线程支持。
java中JDK、JRE、JVM与Java SE API的关系:
JDK是java开发工具包(开发+运行时环境)
JRE是java运行时环境
JVM是java虚拟机
Java SE API,就是Java系统核心类库(拿来即用,包括网络、IO、GUI等等)
在JDK中JVM是不跨平台的,其余都是跨平台的(即所有.class文件都是跨平台的),如果仅运行java程序,仅需要JRE环境。如果需要开发就需要安装完整的JDK。
Java注释有三种:单行注释(//)、多行注释(/* */)、文档注释(/** */)
java环境变的设置:
右击[我的电脑] - - - [属性] - - - [高级] - - - [环境变量]:
JAVA_HOME环境变量的设置:选择[新建系统变量] - - - 弹出“新建系统变量”对话框,在“变量名”文本输入“JAVA_HOME”,在“变量值”文本框输入JDK的安装路径(即JDK文件的路径)。
path环境变量的设置:在path环境变量的起始位置添加:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;或%JAVA_HOME%\bin;
classpath环境变量的设置:在classpath环境变量的起始位置添加:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
JAVA变量:在JAVA中,每一个变量属于一种类型,声明变量时,变量所属的类型位于变量名之前,以分号结束。
如:int age, i; long num; String str;
JAVA是强制类型语言,JAVA在使用变量时有如下特点:
1、变量必须声明,并且初始化后才能使用。
2、变量必须有明确的类型。
3、变量不能在作用域内重复定义。
4、变量必须在作用域内使用。
Java内部数据存储有如下规则:
1、Java内部只有二进制补码,计算机内部数据以二迚制补码表示。
2、 Java内部采用补码运算, 自动収送上溢出(乘法为上溢出)和下溢出(除法为下溢出)。
3、 Java内部没有10迚制! 但是Java尽量按照人类习惯输入输出。
4、 补码的负数,最高位是 1,也称作符号位。
JAVA的数据类型:Java中的数据类型,分为引用类型和基本数据类型。基本类型有8种。
基本类型的数据存放在JAVA的栈中,引用类型是变量及堆中的地址存放在栈中,数据存放在堆中。
8中基本类型:整型: byte, short, int, long 浮点型: float, double 字符型: char Boolean型: boolean
数据类型转换:
正方向:小类型到大类型的转换会自动完成。自动类型转换也叫"隐式类型转换", 是自动収生的, 一般丌需要处理。觃则是:符号位会自动扩展, 负数补1, 正数补0, 保证补码数值丌变,注意:整数到浮点数转换会损失精确度。
反方向:大类型到小类型的转换是强制类型转换,也叫显示类型转换, 这种转换会溢出, 戒者损失精度,要注意数据的范围。
强制类型转换时,尽量注意觃避边界数的风险。
JAVA运算:
1、数学运算符: + - * / %
2、自增(自减)运算符: ++ --
3、逻辑运算:与(并且) && 或(或者) || 非(否则) !
4、条件运算符(3元运算符、三目运算符) *:条件表达式的语法:[条件表达式 ? 表达式1 : 表达式2],
分支流程控制:
1、if-else语句
2、switch-case语句:switch、case、break、default
循环控制:
1、while
2、do - while
3、for
流程跳转语句:
1、break:从switch语句,循环语句或标号标识的代码块中退出,跳出循环体
2、continue:跳出本次循环,执行下次循环,或执行标号标识的循环体;
3、return:退出本方法,跳到上层调用方法。
JAVA数组:
JAVA数组声明:String[] strArray 或 String strArray[], 建议使用第一种方式声明数组。
JAVA数组初始化: int[] ary = new int[8];(自动初始化)或 int[] ary = new int[]{1,2,3};静态初始化
JAVA的关键字:
JAVA中的true,false,null不是关键字,是字面量。
goto和const是JAVA保留关键字。
JAVA数组拷贝的两种方式,比for循环快很多:更便于数组的扩展。
System.arraycopy(src , srcPos, dest , destPos , length)
Arrays.copyOf(src , length)JDK版本是1.6以以上,他的底层是System.arraycopy(src , srcPos, dest , destPos , length)