Java基础总结

这些Java知识来源于很早以前的看书总结(应该属于大学基础知识部分),现在从简书上移动到CDSN上,写的不好,有些知识还很陈旧,会存在许多问题,只是把它作为知识的记录过程,后来学习的JAVA知识会紧随更新。

1.JAVA数据类型总结
Java基本数据类型:

整型:byte short int long

浮点型:float double

字符型:char

布尔型:boolean

类型转换:

自动转换

byte-short-int-long-float-double

char-int

强制转换

(targetType)value

基本类型 字符串型 null型

运算符 :算术 赋值 比较 逻辑 位 类型

运算符优先级别
2.JAVA集合
Java集合分为三类:

List Map Set

collection和Iterator接口

collection是List和Set的父接口

Iterator对象被称为迭代器

foreach遍历集合元素

set分为 hashset treeset enumset Llinkedhashset SortedSet

hashset特点:

1.不保证元素排序

2.线程不同步,如果多条线程访问,需要代码保证线程安全。

3.集合元素可以为NULL

Hashcode

List分为ArrayList和Vector,LinkedList

Vector线程安全,内部数组实现

ArrayList线程不安全,内部数组实现

LinkedList内部链表实现,插入,删除,迭代操作,最优。

map

常用hashmap 和hashtable,hashmap子类Linkedhashmap,sortedmap及其子类实现Treemap

hashmap 和hashtable区别:

Hashtable是线程安全,hashmap是线程不安全。

hashmap可以用NULL作为key和value值。
3.JAVA面向对象
类和对象关系:

类是对象的抽象。

对象是类的具体实现。

具体格式;

[修饰符] class类名

{

构造器

属性(字段filed)

方法

}

修饰符:final public 或者省略

1.构造器:构造器是创建类的根本途径,如果没有构造器系统会创建默认构造器。

[构造器] 构造器名 (形参列表)

{

}

public protect private

构造器名必须与类名相同

2.[修饰符] 属性类型属性名[=属性值]

public protect private

static final

3.定义方法:

[修饰符] 方法返回值类型方法名(形参列表)

{

}

public protected private 三选一

final abstract

static

方法的值传递为形参传递,将实际参数的副本传入方法类,参数本身不受影响。
4.JAVA流程控制
顺序结构:指程序总是从上到下执行。

分支结构:

if和swich结构

if结构:需要把小范围放在前面。

swich结构:数据类型BYTE SHORT CHAR INT类型

CASE后面需要添加break

循环结构:由4部分构成:初始化条件循环条件循环体迭代语句

while:

[init_ statements]

while(test_expression)

{

statement;

[iteration_statement]

}

do{

statement;

[iteration_statement]

}while(test_expression)

for([init_statement];[test_expresssion];[ statement;

[iteration_statement]]){

}

嵌套循环:

循环控制结构:

break 结束循环

continue 跳过循环

break和continue可以添加标签来指定结束或者跳过循环。

return:结束方法

数组:

数组初始化:

1.静态初始化指在定义数组时同时为初始化值。 type

[] ARRAYNAME=NEW TYPE{ “”,""}

2.动态初始化指在定义数组时指定数组长度。 type [] ARRAYNAME=NEW TYPE

FOREACH循环:

for(type arrayname:array|collection)

{

}

数组由两部分构成:数组变量和实际数组,数组变量存在栈内存中,实际数组存在堆内存中,使用数组时实际上是数组的引用变量访问数组,当堆内存中的数组没用变量引用时,将变成垃圾。

多维数组

本质上还是一维数组,因为栈和堆的分部和一维数组一样,只是在堆中扩展了数组。
5.JAVA接口
接口概念:公共的行为规范。

定义:

[修饰符] interface 接口名 extends 父接口1,父接口2

{

零到多个常量定义

零到多个抽象方法定义

}

注意:

修饰符可以为public和省略,省略为包访问权限。

接口名遵守类命名规则

接口可以多继承接口,不能继承类

接口里无论变量是否用public static final修饰,系统默认总是public static final修饰

方法无论是否用public abstract修饰,系统默认总是public abstract修饰

内部类和枚举是否用public static修饰,系统默认总是public static修饰

接口使用:

一个类继承一个接口或者多个接口,必须实现接口内所有的方法,否则盖类为抽象类。

接口和抽象类区别:

主要在用途上,接口是一种规范,抽象类是一种模板。

接口里只能有抽象方法,抽象类可以存在普通方法。

接口不能定义静态方法,抽象类可以定义静态方法。

接口定义静态常量属性,不能定义普通属性。

抽象类可以定义静态常量属性,也可以定义普通属性。

接口不含构造器和初始化块。
6.JAVA数组
数组:

数组初始化:

1.静态初始化指在定义数组时同时为初始化值。 type

[] ARRAYNAME=NEW TYPE{ “”,""}

2.动态初始化指在定义数组时指定数组长度。 type [] ARRAYNAME=NEW TYPE

FOREACH循环:

for(type arrayname:array|collection)

{

}

数组由两部分构成:数组变量和实际数组,数组变量存在栈内存中,实际数组存在堆内存中,使用数组时实际上是数组的引用变量访问数组,当堆内存中的数组没用变量引用时,将变成垃圾。

多维数组

本质上还是一维数组,因为栈和堆的分部和一维数组一样,只是在堆中扩展了数组。
7.类的加载连接初始化
根类加载器

扩展类加载器

系统类加载器

连接:类的二进制数据加载到JRE环境中,分为验证,准备和 解析三个阶段。

初始化:类的初始化,虚拟机负责对类的静态属性惊醒初始化。

反射作用:

当程序主动需要某个类的时候,该类需要加载,连接,初始化过程,

Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。

获得CLASS对象

JAVA获取类的三种方式:

类的forname()静态方法,传入字符串参数,该参数是某个类的全限定类名

调用某个类的CLASS属性来获取对应类的CLASS对象,ex:Person.class将返回对应的CLASS对象

调用某个对象的getclass()方法,返回该对象的所属的CLASS对象,所有对象
8.JAVA垃圾回收
垃圾回收:

当这块内存不再被任何引用变量引用时,这块内存变成垃圾,等待垃圾回收机制回收。

对象存在状态;

激活状态

去活状态

死亡状态

强制垃圾回收:

System.gc()

Runtime.getRuntime().gc()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值