摘要:1.什么是线程? 线程是程序内部的顺序控制流,线程有着独立的运行stock和程序计数器,因此线程是程序执行最小单位,java中线程是通过thread类来实现的。 2.创建线程的方式。 (1).通过继承Thread类来创建线程,重写run方法执行自己的逻辑,start()方法开始启动线程 class 
        
阅读全文
 
        
            
            
摘要:1.集合树状: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set │├HashSet │├TreeSet │├LinkedHashSet Map ├Hashtable ├HashMap └WeakHashMap 2.Co
        
阅读全文
 
        
            
            
摘要:1.<? extends E> <? extends E> 是 Upper Bound(上限) 的通配符,用来限制元素的类型的上限。 赋值 List<? extends Fruit> fruits; 表示集合中的元素类型上限为Fruit类型,即只能是Fruit或者Fruit的子类,因此对于下面的赋值
        
阅读全文
 
        
            
            
摘要:1.反射的描述 java的反射机制是在运行状态中,对于任意类,都能知道这个类的所有方法和属性,对于任意对象的都能调用他们的方法和属性。这种动态调用的机制被称为反射。 要想解析一个类,必须得到这个类的字节码文件对象,而要解析的就是Class类。所有得获取每个类的字节码的Class类型的对象。 java
        
阅读全文
 
        
            
            
摘要:1.泛型的作用 public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); try { Class<? extends List> aClass = list.getCla
        
阅读全文
 
        
            
            
摘要:程序不可能在任何环境中都不会出错,所以java引入了try-catch-finally 一般结构为: try{ // 编写的代码 }catch(Exception ex){ // 代码出现异常处理,如果代码没有异常是不会执行catch的 }finally{ // 一般用于关闭资源,清理数据,无论是否
        
阅读全文
 
        
            
            
摘要:正则在java开发中有着不小的地位,用于很多场景,校验用户名,邮箱号,手机号等等特殊的要求。 java提供了正则的Util类Pattern 和Mather类 查看源码发现Pattern类的构造函数是private的不能初始化,只能通过静态方法compile方法获取实例。Pattern只是创建一个匹配
        
阅读全文
 
        
            
            
摘要:1.静态变量 2.静态代码块 3.局部代码块 4.构造函数 5.普通代码块 6.静态方法 7.普通方法 8.普通属性 for example: package com.JavaTest2; public class Test extends Test2 { public String j = "子类
        
阅读全文
 
        
            
            
摘要:1.abstract 解释:抽象,抽象的 用法: .类修饰符的一种,可以用来修饰类,方法,被修饰的类不能够实例化 .被修饰的方法不能够实现。一个抽象类中不一定要有抽象方法,但是一个类里面有抽象方法就一定是抽象类。如果由类要继承抽象类的话,必须要实现里面的抽象方法。 .构造方法和静态方法不可以修饰为抽
        
阅读全文
 
        
            
            
摘要:抽象类: 1.抽象类必须是包含abstract关键字 2.抽象类可以用抽象方法或者没有。抽象方法必须是abstract关键字,表示只有声明没有实现。 3.抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public
        
阅读全文
 
        
            
            
摘要:为什么要使用内部类? 为什么要使用内部类?在《Think in java》中有这样一句话:使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。 作用: 接口只是解决了部分问题,而内部类使得多重继承的解决方案更完
        
阅读全文
 
        
            
            
摘要:首先看一下他们的继承关系 <!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tUeXBlIjoiaW1hZ2UiLCJzdHlsZXMiOnsiaGVpZ2h0IjozNzYsImFsaWduIjoibGVmdCIsIndpZHRoIjpudWxs
        
阅读全文
 
        
            
            
摘要:== 和 equals的区别 基本类型:== 比较的是两个变量的面值大小 对象对象: 比较的是内存地址 特例: String a = "abc" String b = "abc" a==b //true 都是取常量池的内存地址。 String a = new String("abc"); Strin
        
阅读全文
 
        
            
            
摘要:String 常用方法 字符串操作在开发中占了很大的比重,所以掌控字符串的一些常用的方法是对程序员的基础是一个很好的检验。 1.length() 字符串的长度。 String a = "abc"; System.out.println(a.length()); // 结果为3 2.charAt() 
        
阅读全文
 
        
            
            
摘要:For Example: Person person = new Person(); 通常我们把这段代码称为创建一个对象,其实,它包含了4个动作。 1.new Persion(); 在heap中创建一个Person对象。 2。末尾的()意味着,在对象创建后,立即执行默认的构造函数。对应初始化的对象如
        
阅读全文
 
        
            
            
摘要:String 和 new String()的区别 For Example String str1 = "ABC" String str2 = new String("ABC"); String str1 = "ABC"; 可能创建一个对象或者不创建对象。 如果"ABC" 这个字符串z在java St
        
阅读全文
 
        
            
            
摘要:基本类型: int long byte float double char boolean short 对象类型: Integer Long Byte Float Double Character Boolean Short 包装类: java中有时候运算时两个对象之间进行的,不允许对象和数字之间进
        
阅读全文
 
        
            
            
摘要:在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁等待。这里整理了Java中的各种锁,若有不足之处希望大家在下方留言探讨。 WARNING:本文适合有一定JAVA基础的同学阅读。 公平锁和非公平锁 公平锁是指多个
        
阅读全文
 
        
            
            
摘要:多线程下,在单线程下使用的HashMap 和ArrayList 就会出现一定的问题,他们并不能支持多并发,但是sun也提供了下面两种多线程结合,这是多线程下常用的集合,重点讲述这两个集合。 1、ConcurrentHashMap (1) 对HashTable来说,每个方法上都加上了synchroni
        
阅读全文
 
        
            
            
摘要:1.线程安全问题。 ArrayList 和 linkedList 线程是不安全的,而vecator是线程安全的。 因为ArrayList 和 linkedList 是线程不同步的,vecator是同步的 取决于方法加上了关键字synchronized,主要是java程序会涉及锁的概念,而synchr
        
阅读全文