Java基础
攻城晓狮子
这个作者很懒,什么都没留下…
展开
-
设计模式的六大原则
一、单一职责原则思想:一个方法只负责一件事情。描述:一个类或者一个方法只负责一个职责,各个职责的程序改动,不影响其他程序。优点:降低类和类的耦合,提高可读性,增加可维护性和可扩展性,降低可变性的风险。二、里氏替换原则思想:可以在任何使用基类的地方使用其子类,完美的替换基类。描述:子类可以扩展父类的功能,但不能改变父类原有的功能;子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法;子类中可以增加自己特有的方法。优点:增加程序的健壮性,即使增加了子类,原有的子类还可以继续运行,互不影响。三.原创 2020-07-08 11:29:48 · 799 阅读 · 0 评论 -
Java反射机制及其应用
反射机制是Java语言中的一个非常重要的特性,它允许程序在运行时进行自我检查,同时也允许对其内部的成员进行操作。由于反射机制能够实现在运行时对类进行装载,因此能够增加程序的灵活性,但是不恰当地使用反射机制,也会严重影响系统的性能。具体而言,反射机制提供的功能主要有:得到一个对象所属的类;获取一个类的所有成员变量和方法;在运行时创建对象;在运行时调用对象的方法。一、什么是反射?在运行时,对于任意一个类,都能够获取到这个类的所有成员属性和方法;对于任意一个对象,都能够调用这个对象的任意属性和方法(包括pu原创 2020-05-24 17:00:49 · 287 阅读 · 0 评论 -
Java中的StringBuffer和StringBuilder类
Java中的StringBuffer和StringBuilder类StringBuffer和StringBuilder类都是字符串缓冲区,当需要对字符串进行修改时,可以使用StringBuffer和StringBuilder类。与String不同的是,StringBuffer和StringBuilder类需要创建对象来使用并且该对象能够被多次修改而不会产生新的未使用的对象。StringBuf...原创 2020-04-10 17:16:07 · 108 阅读 · 0 评论 -
Map集合的常用方法
Map集合的常用方法:返回值类型方法Vput(K key,V value):向Map集合中添加键值对Vget(K key):通过键获取对应的值booleanisEmpty():判断集合是否为空Vremove(K key):通过键将键值对删除voidclear():清空Map集合中所有的键值对Vput(K key,V value):向M...原创 2020-04-07 17:13:09 · 419 阅读 · 0 评论 -
你不可不知道的String类的常用方法
String类位于java.lang包中,Java使用String类来创建一个字符串变量,字符串变量属于对象。String对象一旦创建后不能被修改。即使我们给该String变量s重新赋值后,也是生成了一个新的String对象来保存了新的内容,原来旧的String对象依然存在于内存中,只是此时s已经不再指向它了,由于已经没有引用指向它了,那么这个旧对象就会成为垃圾对象,在某一个特定时刻由Java虚拟...原创 2020-04-05 15:59:37 · 176 阅读 · 0 评论 -
Java的反射机制
Java的反射机制基本定义:(1)对于任意一个类,都能知道该类的任意属性和方法;(2)对于任意一个对象,都能调用该对象的任意属性和方法。常用方式:(1)获取Class对象;(2)实例化一个对象;(3)获取一个类的父类或者接口(单继承,多实现);(4)获取类中的所有属性;(5)获取类中的所有方法;(6)调用类中的任意一个方法。更进一步理解,可参看下面的Java代码:在这里插入...原创 2020-03-26 19:58:09 · 91 阅读 · 0 评论 -
Hashtable,HashMap,ConcurrentHashMap的原理和区别
(1)HashMap不是线程安全的,不支持并发操作,没有同步方法。ConcurrentHashMap是线程安全的,支持并发操作,通过继承 ReentrantLock(JDK1.7的重入锁)/CAS和synchronized(JDK1.8的内置锁)来进行加锁(分段锁),每次需要加锁的操作锁住的是一个 segment,这样只要保证每个 segment 是线程安全的,也就实现了全局的线程安全。(2)J...原创 2020-03-26 11:11:17 · 592 阅读 · 0 评论 -
String,StringBuffer,StringBuilder的区别
1. String:String对象一旦创建,其值是不能修改的(因为String类是被final关键字修饰的类),如果要修改,则会重新开辟内存空间来存储修改后的对象,即修改了String类的引用(生成一个新的String对象,但是原String对象是没有被改变的)。这是因为String类的底层是通过数组来存值的,数组长度不可变这一特性导致了上述问题。如果我们在实际开发中需要对某个字符串进行频繁地...原创 2020-03-18 09:00:41 · 77 阅读 · 0 评论