随笔分类 - Java基础遇到的问题
摘要:共享锁,排它锁,偏向锁,轻量级锁,重量级锁 间隙锁,林键锁,意向锁,读写锁,乐观锁,悲观锁,表锁,行锁 1.Synchronized 在jdk1.6版本以前,是通过重量锁的方式来实现线程之间锁的竞争,称它为重量级锁,是因为它的底层依赖操作系统的Mutex Lock来实现互斥功能 MuTex是系统方法
阅读全文
摘要:递归的分类:1.递归分为两种,直接递归和间接递归 2.直接递归成为方法自身调用自己。 3.间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。 递归的使用前提:当调用方法的时候,方法的主题不变,每次调用方法的参数不同,可以使用递归 递归一定要有条件限定,保证递归能够停止下来,否则会发生
阅读全文
摘要:.HashSet是由一个Hash表来实现的,因此他的元素是无序的,add,remove,contains方法的时间复杂度是0(1) TreeSet是由一个一个树形的结构来实现的,里面的元素是有序的。因此add,remove,contains的时间复杂度为0(logn)
阅读全文
摘要:Super:用来访问父类内容 this用于访问本类的内容 Super关键字的用法有3种: 1.在子类的成员方法中,访问父类的成员变量 2.在子类的成员方法中,访问父类的成员方法 3.在子类的方法构造中,访问父类的构造方法 this的用法也有3种: 1.在本类的成员方法中,访问本类的成员变量 2.在本
阅读全文
摘要:collection是list,set集合的接口 Collections是工具类 Collections工具类常用方法:排序,查找替换操作,同步控制
阅读全文
摘要:1.底层数据结构:ConcurrentHashMap jdk1.7:分段的数组+链表,jdk1.8以后,数组+链表+红黑树。 Hashtable:数组+链表 (主体是数组,链表是为了解决哈希冲突而存在的) 2.实现线程安全的方式(重要):ConcurrentHashMap 在jdk1.7是分段锁对整
阅读全文
摘要:TreeMap多了对集合中的元素根据键排序的能力以及对集合内元素的搜索能力
阅读全文
摘要:HashSet底层就是基于HashMap实现的 1.Hashmap实现了map接口,HashSet实现了set接口 2.HashMap存储键值对,HashSet仅存储对象 3.HashMap调用Put()存储元素,HashSet调用add()方法添加元素。
阅读全文
摘要:1.hashMap是线程不安全的Hashtable是线程安全。如果考虑线程安全使用ConcruuenthashMap 2.hashMap效率高 3.HashMap底层是由数组,链表,红黑树组成的。jdk1.8以后,hashMap在解决哈希冲突有了变化,当链表长度大于阈值,将链表转化为红黑树,减少搜索
阅读全文
摘要:异常原理的一个解析: Throwable-->exception >Checked Exception 和 Unchecked Exception -->error 在Java中异常都有一个共同的祖先throwable,Throwable有两个重要的子类(Exception,error) Excep
阅读全文
摘要:注解 概念:说明程序的,给计算机看的 作用分类:编写文档,代码分析(使用反射),编译检查 JDK中预定义的一些注解: @Override:检测被该注解标注的方法是否使继承自父类的 @Deprecated:该注解标注的内容,表示已经过时 @SuppressWarnings:压制警告 一般传递参数 @S
阅读全文
摘要:反射:将类的各个组成部分封装为其他对象 通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性。 优点:让代码更加灵活,为各种框架提供开箱即用的功能,可以解耦,提高程序的可扩展性 缺点:增加了安全问题。 反射的应用场合:编译时类型和运行时类型 编译时的类型由声明对象时实用的类型来决
阅读全文
摘要:首先,方法的定义会用到参数,参数在程序设计语言中分为: 实参(实际参数):传递给方法的参数,有确定的值 形参(形式参数):用于定义方法,接收实参,不需要有确定的值 紧接着值传递和引用传递(将实参传递给方法的方式) 值传递:方法接收的是实参值的拷贝,会创建副本。 引用传递:方法接收的直接是实参所引用的
阅读全文
摘要:字符串常量池是JVM为了提升性能和减少内存消耗针对字符串专门开辟的一块区域。 字符串常量池的作用:为了避免字符串的重复创建。
阅读全文
摘要:Java Object类是所有类的父类,也就是java的所有类都继承了Object。 Object类可以显示继承,也可以隐式继承 Java Object类的方法: protected Object clone() 创建并返回一个对象的拷贝 boolean equals(Object obj) 比较两
阅读全文
摘要:深拷贝:会完全复制整个对象,包括这个对象所包含的内部对象 浅拷贝:会在堆上创建一个新的对象。 引用拷贝:就是两个不同的引用指向同一个对象
阅读全文
摘要:1.接口默认只能存在public,不能用别的修饰符修饰 2.接口的成员变量只能是public static final类型 3.接口中不能含有静态代码块以及静态方法 4.一个类只能继承一个抽象类,而一个类可以实现多个接口 5.抽象类是对一种事物的抽象,即对类抽象;而接口是对行为的抽象 一.接口可以多
阅读全文
摘要:1.静态方法属于类的,非静态成员属于实例对象。 2.在类中,非静态成员不在的时候静态成员已经存在了,此时调用内存中还不存在的非静态成员,属于非法操作 静态方法和实例方法有什么不同? 1.调用静态方法无需创建对象 2.访问类成员是否存在限制
阅读全文
摘要:什么是方法的返回值?作用? 某个方法体中的代码执行后产生的结果。接收出结果。 方法有哪几种类型? 1.无参数无返回值的方法 2.有参数无返回值的方法 3.有返回值无参数的方法 4.有返回值有参数的方法
阅读全文