JAVA-SE
JAVA环境
JRE:Java Runtime Environment的简称,是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机(jvm)、Java核心类库和支持文件。它不包含开发工具(JDK)--编译器、调试器和其它工具
jvm: JVM是Java Virtual Machine(Java虚拟机)的缩写,Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。 JVM执行程序的过程 :
I.加载.class文件
II.管理并分配内存
III.执行垃圾收集
JRE(java运行时环境)包含JVM的java程序的运行环境 [1]
JVM是Java程序运行的容器,但是他同时也是操作系统的一个进程,因此他也有他自己的运行的生命周期,也有自己的代码和数据空间。
JVM在整个jdk中处于最底层,负责与操作系统的交互,用来屏蔽操作系统环境,提供一个完整的Java运行环境,因此也就虚拟计算机.操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境。
1.创建JVM装载环境和配置
2.装载JVM.dll
3.初始化JVM.dll并挂接到JNIENV(JNI调用接口)实例
4.调用JNIEnv实例装载并处理class类。
java核心类库,提供java运行时的语言基础支持和各种依赖的核心jar
JDK:Java Development Kit,
jre
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole: Java进行系统调试和监控的工具
jvm
基本数据类型
boolean 布尔型 1/8
byte 字节类型 1
char 字符型 2
short 短整型 2
int 整数类型 4
float 浮点类型(单精度) 4
long 长整形 8
double 双精度类型(双精度) 8
一个字节等于8位,一个字节等于256个数,就是-128到127一共256。
kB就是kBytes
Bytes就是“字节”的意思!
K就是千的意思,因为计算机是通过二进制来计算,10个1正好是1024
1111111111(二进制)=1024(十进制)
1Bytes(字节)=8bit(比特)
一个英文字母或一个阿拉伯数字就是一个字符,占用一个字节
一个汉字就是两个字符,占用两个字节。
一般讲大小是用Bytes,大写的“B”,讲网络速率是用bit,注意是小写的“b”。
引用数据类型
array[] 数组
.class 类
interface 接口
enmu 枚举
String 字符串
map list set 等集合
Java三大特性
封装
属性私有 使用权限修饰符private对属性访问权限进行封装,是外部访问及引用不能直接调用所请求的属性或资源
继承
使用extends 关键字+ 被继承的类名, 对父/超类的类的属性及函数进行全部继承,使子类可以直接调用和拥有父类的全部方法和属性,并可在父类的基础上进行扩展自己所需的方法和内容。。。。。super关键字用来指明当前的引用变量或方法是来源于父类,不能跟this关键字出现在一起,会出现冲突。
多态
1.有继承关系的两个类
2.父类的引用指向子类对象(向上转型) 使用instanceof关键字判定子类是否有向上转型的潜力
指子类的继承父类后,根据自身的需求对集成的方法进行重写,方法名一致但重写的方法权限修饰不能比父类更严格(访问权限相同或更大)
java基本运算符
赋值运算符
+=加等于 . -= 减等于. *= 乘等于. /=处等于 . %=磨等于
都是调用运算符的变量对自身的在相加/减/乘/除/磨
关系运算符
<小于 . >大于. <= 小于等于. >=大于等于. ==等等于. !=不等于
==相等: 判断引用类型时只能判断引用地址是否相同,不能比较内存中的对象或字符串是否相等,判断内存中的字符串是否相等时用equals
!=不等于: 判断引用类型时只能判断引用地址是否相同,不能比较内存中的对象或字符串是否相等
逻辑运算符
&与 |或 &&短路与 ||短路或 !非 ^异或
&与:true & true=true,一边为false则结果为false只有都为true结果为true
|或:ture|false=true符号两边只要有一边为true则结果都为true
&&短路与:用法与&相同效率更高,当左边为false时不再判断右边
||短路或:用法与|相同效率更高,当判断符号左边左边为true时不再判断右边
!非:去相反值!true=false,!false=true
^异或:true^false=true只有符号两边不同的情况下结果才为true
算数运算符
+加 -减 * 乘 /除 % 磨 ++自增 --自减
自增指在循环语句中使用 a++ 或++a时 a变量每次循环都会自己增加1
用法与自增相同每次循环自减1
%磨: 100%10=0,102%10=2 即取余数
连接运算符
+连接符 在程序中多用于连接字符串之间的拼接和组合
三目运算符
运算表达式 ?表达式结果为真执行的语句 : 为假执行
可以多重嵌套使用
集合框架
mep
HashMap
TreeMap
set
TreeSet
HashSet
list
ArrayList
LinkedList
java 基础语法
if条件语句
if(判断条件){结果为true时执行语句} 单条件语句
if...else..条件选择语句 类似三目运算符 。。? 。。 : 。。
if...else if...else if...else 多重选择结构处理复杂的逻辑判断必不可少的语法结构
if(){if(){}else...}else...多重嵌套 多复杂逻辑的多层次关系的判断
switch选择结构
switch...case ...是java中处理对精确的点的业务逻辑分析,case后只跟单一的精确结果
while循环结构
do...while...循环在于不管判断条件是否成立,它的执行方法体都会先执行一次,之后才会在满足循环条件的情况下循环执行方法体
while(){}循环则与for循环相似
for循环结构
for(初始化参数;循环条件;条件循环方式){循环内容(即方法体)}在for循环中参数只初始化一次,之后判断循环条件是否满足,满足时则方法体执行,之后初始化后的参数在循环过程中受循环条件方式影响
判断条件中的“;”不能省略但变量的声明和判断条件的变化方式可以再其他地方编写
类的划分和构成
java中通常用class+类名来注明某段编译代码是一个完整的类,类时java中oop思想的构成基础,Java中一切事物皆对象的思想集中体现在,java语言中用类来描述一类事物的通用属性和行为,将生活中的事物用类封装,用方法封装事物的行为,用属性封装事物的属性
类的划分interface,class及内部类
class
父类/超类
子类/基类 super。extends .instanceof
抽象类 abstract 不可被直接实例化,可以被继承,由抽象方法或非抽象方法构成。抽象方法一定包含于抽象类中但抽象类不一定有抽象方法
内部类
成员内部类
匿名内部类
没有类名的成员内部类
静态内部类
由static修饰的成员内部类
局域内部类
在方法中声明的类
内部类实例化语法:
成员内部类名 外部类.内部类 对象名=外部类名.new内部类名()
优点,可以直接调用外部类的属性和方法
interface
是一种编程的抽象规范,将同一种类的多个类中的相同方法和变量抽出,形成抽象的定义规范,有公开的静态常量和公开的抽象方法组成接口之间可以相互继承,但借口不可以直接被实例化,只能有被实现的非抽象类进行实例化
java源代码开发步骤
Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机(jvm)——>字节码文件(.class)就会在java虚拟机中执行。
其他
重构
重构是java代码的结构上的优化,有方法的重构也有类的重构,是对重复代码块的抽取继承,优化程序的代码结构,减少重复代码的出现
重载
指相同的方法名但参数列表不同的多个方法,多出现在构造方法中
重写
指继承或实现的超类或接口中的方法,不满足当前需要时,根据子类或实现类的需求对方法进行重写
类型转换
向上转换:小转大自动转
向下转换,从大转小或从父类转向子类,需要强转,会损失精度
JAVA-SE
JAVA环境
JRE:Java Runtime Environment的简称,是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机(jvm)、Java核心类库和支持文件。它不包含开发工具(JDK)--编译器、调试器和其它工具
jvm: JVM是Java Virtual Machine(Java虚拟机)的缩写,Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。 JVM执行程序的过程 :
I.加载.class文件
II.管理并分配内存
III.执行垃圾收集
JRE(java运行时环境)包含JVM的java程序的运行环境 [1]
JVM是Java程序运行的容器,但是他同时也是操作系统的一个进程,因此他也有他自己的运行的生命周期,也有自己的代码和数据空间。
JVM在整个jdk中处于最底层,负责与操作系统的交互,用来屏蔽操作系统环境,提供一个完整的Java运行环境,因此也就虚拟计算机.操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境。
1.创建JVM装载环境和配置
2.装载JVM.dll
3.初始化JVM.dll并挂接到JNIENV(JNI调用接口)实例
4.调用JNIEnv实例装载并处理class类。
java核心类库,提供java运行时的语言基础支持和各种依赖的核心jar
JDK:Java Development Kit,
jre
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole: Java进行系统调试和监控的工具
jvm
基本数据类型
boolean 布尔型 1/8
byte 字节类型 1
char 字符型 2
short 短整型 2
int 整数类型 4
float 浮点类型(单精度) 4
long 长整形 8
double 双精度类型(双精度) 8
一个字节等于8位,一个字节等于256个数,就是-128到127一共256。
kB就是kBytes
Bytes就是“字节”的意思!
K就是千的意思,因为计算机是通过二进制来计算,10个1正好是1024
1111111111(二进制)=1024(十进制)
1Bytes(字节)=8bit(比特)
一个英文字母或一个阿拉伯数字就是一个字符,占用一个字节
一个汉字就是两个字符,占用两个字节。
一般讲大小是用Bytes,大写的“B”,讲网络速率是用bit,注意是小写的“b”。
引用数据类型
array[] 数组
.class 类
interface 接口
enmu 枚举
String 字符串
map list set 等集合
Java三大特性
封装
属性私有 使用权限修饰符private对属性访问权限进行封装,是外部访问及引用不能直接调用所请求的属性或资源
继承
使用extends 关键字+ 被继承的类名, 对父/超类的类的属性及函数进行全部继承,使子类可以直接调用和拥有父类的全部方法和属性,并可在父类的基础上进行扩展自己所需的方法和内容。。。。。super关键字用来指明当前的引用变量或方法是来源于父类,不能跟this关键字出现在一起,会出现冲突。
多态
1.有继承关系的两个类
2.父类的引用指向子类对象(向上转型) 使用instanceof关键字判定子类是否有向上转型的潜力
指子类的继承父类后,根据自身的需求对集成的方法进行重写,方法名一致但重写的方法权限修饰不能比父类更严格(访问权限相同或更大)
java基本运算符
赋值运算符
+=加等于 . -= 减等于. *= 乘等于. /=处等于 . %=磨等于
都是调用运算符的变量对自身的在相加/减/乘/除/磨
关系运算符
<小于 . >大于. <= 小于等于. >=大于等于. ==等等于. !=不等于
==相等: 判断引用类型时只能判断引用地址是否相同,不能比较内存中的对象或字符串是否相等,判断内存中的字符串是否相等时用equals
!=不等于: 判断引用类型时只能判断引用地址是否相同,不能比较内存中的对象或字符串是否相等
逻辑运算符
&与 |或 &&短路与 ||短路或 !非 ^异或
&与:true & true=true,一边为false则结果为false只有都为true结果为true
|或:ture|false=true符号两边只要有一边为true则结果都为true
&&短路与:用法与&相同效率更高,当左边为false时不再判断右边
||短路或:用法与|相同效率更高,当判断符号左边左边为true时不再判断右边
!非:去相反值!true=false,!false=true
^异或:true^false=true只有符号两边不同的情况下结果才为true
算数运算符
+加 -减 * 乘 /除 % 磨 ++自增 --自减
自增指在循环语句中使用 a++ 或++a时 a变量每次循环都会自己增加1
用法与自增相同每次循环自减1
%磨: 100%10=0,102%10=2 即取余数
连接运算符
+连接符 在程序中多用于连接字符串之间的拼接和组合
三目运算符
运算表达式 ?表达式结果为真执行的语句 : 为假执行
可以多重嵌套使用
集合框架
mep
HashMap
TreeMap
set
TreeSet
HashSet
list
ArrayList
LinkedList
java 基础语法
if条件语句
if(判断条件){结果为true时执行语句} 单条件语句
if...else..条件选择语句 类似三目运算符 。。? 。。 : 。。
if...else if...else if...else 多重选择结构处理复杂的逻辑判断必不可少的语法结构
if(){if(){}else...}else...多重嵌套 多复杂逻辑的多层次关系的判断
switch选择结构
switch...case ...是java中处理对精确的点的业务逻辑分析,case后只跟单一的精确结果
while循环结构
do...while...循环在于不管判断条件是否成立,它的执行方法体都会先执行一次,之后才会在满足循环条件的情况下循环执行方法体
while(){}循环则与for循环相似
for循环结构
for(初始化参数;循环条件;条件循环方式){循环内容(即方法体)}在for循环中参数只初始化一次,之后判断循环条件是否满足,满足时则方法体执行,之后初始化后的参数在循环过程中受循环条件方式影响
判断条件中的“;”不能省略但变量的声明和判断条件的变化方式可以再其他地方编写
类的划分和构成
java中通常用class+类名来注明某段编译代码是一个完整的类,类时java中oop思想的构成基础,Java中一切事物皆对象的思想集中体现在,java语言中用类来描述一类事物的通用属性和行为,将生活中的事物用类封装,用方法封装事物的行为,用属性封装事物的属性
类的划分interface,class及内部类
class
父类/超类
子类/基类 super。extends .instanceof
抽象类 abstract 不可被直接实例化,可以被继承,由抽象方法或非抽象方法构成。抽象方法一定包含于抽象类中但抽象类不一定有抽象方法
内部类
成员内部类
匿名内部类
没有类名的成员内部类
静态内部类
由static修饰的成员内部类
局域内部类
在方法中声明的类
内部类实例化语法:
成员内部类名 外部类.内部类 对象名=外部类名.new内部类名()
优点,可以直接调用外部类的属性和方法
interface
是一种编程的抽象规范,将同一种类的多个类中的相同方法和变量抽出,形成抽象的定义规范,有公开的静态常量和公开的抽象方法组成接口之间可以相互继承,但借口不可以直接被实例化,只能有被实现的非抽象类进行实例化
java源代码开发步骤
Java源程序(.java文件)——>java字节码文件(.class文件)——>由解释执行器(java.exe)将字节码文件加载到java虚拟机(jvm)——>字节码文件(.class)就会在java虚拟机中执行。
其他
重构
重构是java代码的结构上的优化,有方法的重构也有类的重构,是对重复代码块的抽取继承,优化程序的代码结构,减少重复代码的出现
重载
指相同的方法名但参数列表不同的多个方法,多出现在构造方法中
重写
指继承或实现的超类或接口中的方法,不满足当前需要时,根据子类或实现类的需求对方法进行重写
类型转换
向上转换:小转大自动转
向下转换,从大转小或从父类转向子类,需要强转,会损失精度