java相关知识

~~~~~持续增加中~~~~~





Java语言的跨平台特性:
Java的跨平台特性也被称为可移植性、平台无关性,或者一次编写处处运行。就是如果用Java语言编写一个应用,那么就可以在不同平台上运行,而不需要为不同平台单独
运行开发。之所以能实现跨平台的特性。主要得益于Java虚拟机(JVM),JVM解释器在运行Java应用时根据当前平台进行解释,解释成符合当前平台规范的机器码,
所以可以实现同样的应用在不同平台上都能运行。
Java程序的执行过程必须经过先编译,后解释两个步骤;
JAVA语言的主要特点:
JAVA语言有很多特点,主要包括:
①跨平台性:一个应用可以不经过修改直接运行到不同的平台上。
②面向对象:JAVA语言是一门面向对面的语言,可以使用对象的属性和行为,可以使用面向对象的思想进行分析设计,并实现整个应用。
③解释执行JAVA应用时,JVM中的解释器将解释类文件,生成符合当前平台的字节码。
④自动回收:JAVA应用中的垃圾回收是自动进行的,JVM中的后台线程将监视内存中数据的使用,当内存中的数据不再被引用时,将被作为垃圾回收,而不需要程序员动手回收。
Java语言的八种基本数据类型有:
byte: 字节型,8位长度
short:短整型,16位长度
int:整型,32位长度
long:长整型,64位长度
float:单精度浮点型,32位长度
double:双精度浮点型,64位长度
char:字符型,16位长度
boolean:表示逻辑值,有true和false两个值,分别表示真和假
定义一个类:[修饰符] class 类名{类体};
定义Field:  [修饰符] Field类型 Field名 [= 默认值];
定义方法:     [修饰符] 方法返回值类型 方法名(形参列表){方法体} ;
构造方法 :         [修饰符] 类名(形参列表){方法体} ;
对象的产生通过new 来创建新对象:类  对象名 = new 构造方法;
构造方法的作用是用来创建对象,使用new关键字调用。构造方法的名字必须与类的名字相同,并且大小写敏感,同时构造方法不能声明返回值类型,
可以使用任意一种访问修饰符,但是不能使用其他修饰符进行修饰,如static、final、abstract等修饰符都可以修饰构造方法。
使用对象中的Field 及方法:对象.Filed|方法;
this总是指象调用该方法的对象;
静态成员不能访问非静态成员;
方法的对数传递:值传递,将实际参数的副本传入方法内,而参数本身不会受到任何影响;如果传递的是引用参数,则传递引用
参数的引用;
方法重载:同一个类中方法名相同,参数列表不同;
方法重载指的是在一个类中可以声明多个相同名字的方法,而方法的形式参数有区别。调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。
所有变量分为:成员变量,局部变量;
成员变量:实例Filed(不以staic修饰),类Filed(以static修饰);
局部变量:形参(方法签名中定义的变量),方法局部变量(在方法内定义),代码块局部变量(在代码块内定义) ;
封装:将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问;
Java语言中的权限访问修饰符:
private:当前类访问权限,只能在本类中访问;
default:包访问权限,默认,只有同包中可以访问;
protected:同包中可以访问,同包中的子类可以访问;
pulbic:公共访问权限,任何包中都可以访问;
包:package ,import,import static。一个java文件只能有一条package语句,可以有多条import;
继承:子类可以继承父类的Field和方法,通过extends关键字实现。
继承主要为了能够重复使用父类中的成员。Java语言中的继承是单继承,也就是说一个类最多只能继承一个父类。
方法重写:方法名相同,形参列表相同
instanceof运算符:判断对象是否是后面的类或者其子类,实现类的实例;
多态:
如果想将基本类型转化成包装类对象,方法:使用构造器new 包装类(基本类型值);
如果想获取包装类的基本类型变量,方法:使用对象.基本类型Value
自动装箱,自动拆箱
将包装类型转换为字符串类型,方法:1对象.parseXxx(String s)2.包装类构造器 Xxx(String s) 3.基本类型 +""
将字符串类型转换成基本类型String.valueOf();
toString方法,类的自我描述,返回"类名@hascode"
==和equals方法:
==:当使用==来判断两个基本类型变量是否相等时,只要两个变量的值相等,返回true;
          当使用==来判断两个引用类型变量是否相等时,它们必须指向同一对象,
equals :String的equals方法判断两个字符串相等的标准是:只要两个字符串所包含的字符序列相同,通过equal()比较
将返回true,否则返回false;
单例类:如果一个类始终只能创建一个实例,则这个类就是单例类;
懒汉式:
class Singleton{
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
饿汉式:
class Singleton{
private static Singleton instance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return instance;
}
}
final修饰符:
final关键字可以用来饰类,变量和方法,用于表示它修饰的类,变量和方法不能改变。
final修饰变量,一旦获得初值就不可改变,必须显式初始化;
final修饰的方法不可被重写。可以被重载;
final修饰的类不可以有子类;
抽象类和抽象方法
抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽象方法没有方法体;
抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。
抽象类可以包含Field,方法,构造器,初始化块,内部类,枚举类;
含抽象方法的类只能被定义成抽象类;
final和abstract不能同时使用;
static和abstract不能同时修饰一个方法;
private和abstract不能同时修饰一个方法;
模板模式:
接口:使用interface定义接口,接口里的Field只能是常量,接口里的方法只能是抽象方法。
接口的访问修饰符只能是public 
接口只能继承接口,不能继承类
继承的两个接口中有相同名的Filed,出错,子类不知道实现的是那个接口的Field
System.arraycopy
arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

简单工厂模式:
命令模式:
内部类:非静态内部类,静态内部类,局部内部类
匿名内部类:匿名内部类创建时会立即创建一个该类的实例,这个类定义立即消失,匿名内部类不能重复使用。匿名内部类必须继承一个父类,或实现一个接口。
new 接口名(){}

闭包和回调
闭包:是一种能被调用的对象,它保存了创建它的作用域信息,非静态内部类;
回调:通过内部类引用来调用其外部类的方法;

java垃圾回收机制
finalize方法用于清理对象资源
System.gc();
Runtime.getRuntime().gc();
Runtime.getRuntime().runFinalization();
System.runFinalization();
WeakReference 弱引用

cd..
        Manifest-Version: 1.0
  Created-By: Apache Ant 1.5.1
  Extension-Name: Struts Framework
  Specification-Title: Struts Framework


Collection接口是List, Set, Map的父接口,定义一些操作集合元素的方法;
Iterator接口用于遍历集合中的元素;方法有:hasNext(),next(),remove();
iterator必须依附于Collection,使用iterator遍历集合,Collection中的元素不能被改变
集合:List Set Map 
set 集合是无序的,判断相等条件equals
HashSet 中集合元素可以是null;使用HashSet时,需重写equals和hashCode方法
LinkedHashSet是HashSet的子类, 是按添加顺序存储,双链表
TreeSet采用红黑树的数据结构来存储集合元素,添加对象时需要实现Comparable接口
排序有:自然排序和自定义排序
EnumSet 集是枚举类集合,没有构造器创建类,只能通过静态方法创建类。

List集合:元素有序,可重复,集合中每个元素都有其对应的顺序索引。操做List可以直接使用索引值。判断相等的标准,只要equals比较相等则相等。
List集合的set方法不会改变List集合的长度,提供listIterator()方法,遍历集合。
List插入元素,索引值自动向下+1。
ArrayList 和 Vetor:栈
Queue:队列先进先出
Deque接口和 ArrayDeque类
LinkedList类实现了Deque接口也实现了List接口,可以当作栈使用,可以当做双端对队使用

Map:保存key--value数据
LinkedHashMap 双向链表
Properties类是Hashtable类的子类,属性文件,可以通过FileOutputStream输出到文件,可以通过FileInputStream输入到文件
SortedMap接口的TreeMap 实现类:可排序
WeakHashMap :key值弱引用
IdentityHashMap 类:key严格相等
EnumMap 枚举类Map集合

Collections操作集合的工具类,创建线程同步集合
Collections.synchronizedCollection(new ArrayList());
Collections.synchronizedList(new ArrayList());
Collections.synchronizedSet(new HashSet());
Collections.synchronizedMap(new HashMap());

泛型:
List<String> books = new ArrayList<String>();
在集合books中只能存放字符串型数据

异常:
try:try{代码块}用于捕块代码块处的异常
catch:catch(){}异常处理,将捕获到的异常进行处理
finally:finally{}用于回收物理资源
throws:在方法签名是抛了异常
throw:自行抛出异常


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值