Java基础
文章平均质量分 90
Java基础详解
张茂祯
嗯,随缘了
展开
-
【Java基础】类加载机制
类加载机制类加载的基本机制和过程类加载器ClassLoader就是加载其他类的类,负责将字节码文件加载到内存,创建Class对象。可以通过自定义ClassLoader实现一些强大灵活的功能:热部署不重启Java程序的情况下,动态替换类的实现,比如JavaWeb开发中的JSP技术就利用自定义的ClassLoader实现修改JSP代码即生效。应用的模块化和相互隔离不同的ClassLoader可以加载相同的类但互相隔离、互不影响。Tomcat利用这点在一个程序中管理多个Web应用,每个Web应用使用原创 2020-11-27 10:44:27 · 109 阅读 · 0 评论 -
【Java基础】并发容器
并发容器写时复制的List和SetCopyOnwriteArrayListCopyOnWriteArraySetConcurrentHashMap并发安全原子复合操作高并发的基本机制写时复制的List和SetCopy-On-Write,即写时复制CopyOnWriteArrayListCopyOnWriteArraySetCopyOnwriteArrayList实现了List接口,它的用法与其他List(如ArrayList)基本是一样的。特点:线程安全,可以被多线程并发访问它的迭代原创 2020-11-24 10:41:02 · 98 阅读 · 0 评论 -
【Java基础】并发基础知识
并发基础知识线程的基本协作机制协作场景wait/notify生产者/消费者模式同时开始等待结束异步结果集合点小结线程的基本协作机制Java多线程协作的基本机制wait/notify,有多种典型的协作场景。协作场景生产者/消费者模式同时开始等待结束异步结果集合点wait/notifywait方法:public final void wait() throws InterruptedException//参数为0表示无限期等待public final native void wai原创 2020-11-23 10:32:46 · 98 阅读 · 0 评论 -
【源码剖析】HashMap的1.7与1.8的细节
HashMap版本细节1.8和1.7的变化1.8和1.7的变化1.8主要优化减少了哈希冲突,提高哈希表的存、取效率底层:JDK1.7:数组+链表JDK1.8:数组+链表+红黑树(节点长度大于8)扩容:JDK1.7:resize()方法负责扩容,inflateTable()负责创建表JDK1.8:resize()方法在表为空时,创建表;在表不为空时,扩容;对null值:JDK1.7:对于键为null的情况调用putForNullKey()方法。JDK1.8:没有区分键为null原创 2020-11-21 17:07:03 · 157 阅读 · 0 评论 -
【Java基础】并发包的基石
并发synchronized对各种类型的保护相关事项原子变量和CASAtomicInteger构造方法常用方法基本原理和思维实现锁ABA问题总结显式锁接口Lock可重入锁ReentrantLock基本用法使用tryLock避免死锁synchronized对各种类型的保护synchronized,隐式锁。(每个对象都有一个锁和一个等待队列,类对象也不例外)实例变量,synchronized加在实例方法上,实际保护的是同一个对象的方法调用(一般在保护变量时,需要在所有访问该变量的方法上加synchro原创 2020-11-19 12:55:02 · 405 阅读 · 1 评论 -
【JavaSE】泛型
泛型8 基本概念和原理一个简单泛型类基本概念基本原理泛型的好处容器类泛型方法泛型接口类型参数的限定上界为某个具体的类上界为某个接口上界为其他类型参数小结解析通配符更简洁的参数类型限定理解通配符超类型通配符。通配符比较8 基本概念和原理一个简单泛型类基本概念泛型就是类型参数化,处理的数据类型是不固定的,而是可以作为参数传入Object<T>其中的T就是传递的实际参数类型。参数类型可以有多个,如Object<U,V>多个类型之间用逗号分隔基本原理Java有Java原创 2020-11-11 15:02:51 · 111 阅读 · 0 评论 -
【Java基础】常用基础类
常用基础类包装类基本用法包装类的共同点重写Object方法Comparable包装类和String包装类基本类型byteshortintlongdoublefloatbooleanchar包装类ByteShortIntegerLongDoubleFloatBooleanCharacter字节数12488421基本用法装箱:Xxx.valueOf(xxx);拆箱:xxxValueOf(Xxx);Java 5 以后引入了自原创 2020-11-08 14:26:06 · 220 阅读 · 0 评论 -
【Java基础】异常
异常常见异常NullPointerException(空指针异常)NumberFormatException(数字格式异常)异常类Throwable异常类体系:常见异常NullPointerException(空指针异常)当发现异常如s的值为null,启动异常处理机制,首先创建一个异常对象,查找看谁能处理这个异常,如果没有,则java启动默认处理机制,即打印异常栈信息到屏幕,并退出程序。异常栈信息包括了从异常发生点到最上层调用者的轨迹,还包括行号。NumberFormatException(数原创 2020-11-06 09:29:12 · 129 阅读 · 0 评论 -
【Java基础】类的拓展,接口、抽象类、内部类
接口与抽象类接口接口特性接口细节抽象类抽象方法和抽象类内部类接口针对接口编程,复用代码,降低耦合,提高灵活性。接口特性Java8前:接口内不能实现方法。接口方法不需要加修饰符,加与不加相当于都是public abstract。所有方法都是抽象方法,没有实现体Java8及后:对接口做了增强。允许在接口中定义两类新方法:静态(static)方法和默认(default)方法引入默认方法主要是函数式数据处理需求,为了便于给接口增加新功能。Java9:Java8中静态方法和默认方法都原创 2020-11-05 10:45:15 · 144 阅读 · 0 评论 -
【Java基础】类的继承,父类与子类关系
多态父类 p = new 子类(); 向上转型变量shape可以引用任何Shape子类类型的对象,这叫多态,即一种类型的变量,可以一用多种实际类型对象。对于变量shape,它就有两个类型,Shape,称之为shape的静态类型;类型Circle、Line、ArrowLine,称之为shape的动态类型。在ShapeManager的fraw方法中,shapes[i].draw()调用的是其对应动态类型的draw方法,这称之为方法的动态绑定。...原创 2020-11-03 13:58:51 · 1585 阅读 · 0 评论 -
【Java基础】类的基础
类类是函数的容器,是自定义数据类型。类型本身具有的属性,类变量类型本身可以进行的操作,类方法类型实例具有的属性,实例变量类型实例可以进行的操作,实例方法类变量和实例变量都叫做成员变量,类变量也叫作静态变量或静态成员变量类方法和实例方法都叫做成员方法,类方法也叫静态方法。类方法和实例方法的部分区别:类方法只能访问类变量,不能访问实例变量,可以调用其他的类方法,不能调用实例方法。实例方法技能访问实例变量,又能访问类变量,既可以调用实例方法,又可以调用类方法。声明和赋值:Point原创 2020-11-03 10:38:38 · 140 阅读 · 0 评论 -
【Java基础】编码问题
编码与乱码非Unicode编码ASCLLISO 8859-1 && Windows-1251GB2312GBKGB18030非Unicode编码ASCLL美国规定了128个字符的二进制表示方法。计算机最小存储单位是byte,即8位。ASCII码最高位设置为0,其余7位表示字符,可看作0~127ISO 8859-1 && Windows-1251ISO 8859-1标准更早,使用更为广泛的是Windows-1521,基本相同,区别在于数字128~159中增加了可原创 2020-10-30 13:25:29 · 189 阅读 · 0 评论 -
【Java基础】函数的调用时的内存关系
main函数调用sum函数没计算1、2的和,从栈的角度分析Public Class Sum{ public static int sum(int a. int b){ int c = a + b; return c; } public static void main(String[] args){ int d = Sum.sum(1, 2);原创 2020-10-29 14:30:46 · 230 阅读 · 0 评论