随笔分类 - java回顾
1
摘要:CountDownLatch同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待 countDown()当前线程调此方法,则计数减一(建议放在finally里执行) await() 调用此方法一直阻塞当前线程 直到计数器的值为0;
阅读全文
摘要:一 概念 内部类,顾名思义,就是一个类的内部有其他的类,比如下面这种,一个最简单的内部类示例,内部类又分为 静态内部类和非静态内部类,非静态内部类又分为 1.普通内部类(也称为成员内部类) 在一个类(外部类中直接定义的内部类),这个外部类是相对于内部类来说的,2. 匿名内部类 3.方法内部类(在一个
阅读全文
摘要:转自 http://www.cnblogs.com/metoy/p/3915990.html
阅读全文
摘要:类加载机制 - JVM把class文件加载到内存中 并对数据进行 校验,解析,初始化,最终形成JVM可以直接使用的java类型的过程 详细过程 加载→ 验证→ 准备→ 解析 → 初始化→ 使用 → 卸载 这是一个完整的类加载过程 (验证,准备,解析)三步可以统称为链接 统称后就变为步骤变为 加载→链
阅读全文
摘要:Java动态性的两种常见方式:-字节码操作 - 反射;字节码操作比反射开销小,性能高,JAVAasist性能高于反射,低于ASM 运行时操作字节码可是实现 : 动态生成新的类;动态的改变某个类的结构(添加,删除,修改 ,新的属性/方法)
阅读全文
摘要:Java从jdk6.0开始引入了动态编译机制 动态编译引用场景: - 可以做一个浏览器端编写java代码,上传服务器和运行的在线评测系统 - 服务器动态加载某些类文件进行编译 动态编译做法: - 通过 Runtime调用javac 启动新的进程去操作 - 通过JavaCompiler进行动态编译 -
阅读全文
摘要:在使用反射机制时,我们经常需要知道方法的参数和返回值类型,很简单 ,下面上示例,示例中的两个方法非常相似
阅读全文
摘要:一 概念 java反射机制属于 java动态性之一 ,指的是可以运行时加载,探知,使用编译期间完全未知的类,程序在运行状态中,可以动态的加载一个只有, 名称的类,对于任意一个已加载的类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法和属性,典型的动态语言有 Python
阅读全文
摘要:sleep()方法是让线程休眠 可以指定时间 其实就是让线程进入阻塞状态 指定的时间过后 进入就绪状态 不释锁 相当于抱着锁睡觉 wait() 让线程进入等待状态 被唤醒后才会继续执行 释放锁 yield() 线程让步 使当前线程让出cpu资源 该线程进入就绪状态 给同等级的其他线程执行的机会 但也
阅读全文
摘要:io流用于输入和输出,就是将数据从程序输出到本地硬盘,从本地硬盘读取数据到程序。废话不多说,直接上关系图 一 字节流的输入 使用 FileInputSteam 字节流的输出 使用FileOutputStream 二 字符流的输入 (字符流只能处理纯文本,而字节流可以处理一切数据) 使用FileRea
阅读全文
摘要:Collections类提供了一些操作集合的方法 下面介绍几个方法 1.将集合变为线程安全的 三个方法分别对应了ArrayList,HashMap,HashSet; Collections.synchronizedList(); Collections.synchronizedMap(); Coll
阅读全文
摘要:一、Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。像P
阅读全文
摘要:一、简单介绍Map在讲解Map排序之前,我们先来稍微了解下map。map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。其中这四者的区别如下(简单介绍): HashMap:我们最常用的Map,它根据key的HashCode
阅读全文
摘要:建一个实体类并实现Comparable接口重写compareTo方法 TrreSet演示 排序是根据pojo类中的age属性进行的,直接上了main方法,注意:如果不在类中重写 compareTo方法在使用set添加时会报类型转换错误,或者写一个工具类实现Comparator<T>接口也可以。 Tr
阅读全文
摘要:SunnyAmy SunnyAmy SunnyAmy comparator接口与Comparable接口的区别 1. Comparator 和 Comparable 相同的地方他们都是java的一个接口, 并且是用来对自定义的class比较大小的,什么是自定义class: 如 public clas
阅读全文
摘要:ArrayList底层实现数组,这是ArrayList get()方法的源码,底层是数组 根据下标返回在数组中对应的位置 ,查询快,插入慢 LinkList的底层实现是双向链表,插入块,查询慢 ,下面是其add()方法的源码 可以看出是一双向链表的方式实现的 HahsMap的底层实现是数组加链表 比
阅读全文
摘要:java中提供了多个集合框架 其中就有ArrayList 下面简单的实现一下 只写了添加,获取长度和根据下标获取元素的方法
阅读全文
摘要:一 多态的基础是继承,重写,父类的引用指向子类对象,接口是多态最常见的实现方式。 概念性的东西,先说这么多,以上的都是重点, 继承 ,重写 ,父类的引用指向子类对象。 下面贴上代码 ,一步步来看到底什么是多态。 父类 动物类,然后会有Dog和Cat类继承此类 Dog类 Cat类 如果平时,我们调用c
阅读全文
摘要:this是指当前对象的引用,super是指直接父类的引用 比如 我建造一个类 public class Person(){ private String name; private int age; public void showage(){ System.out.println(age);//输
阅读全文
摘要:java内存 分为 栈内存(先进出,存放局部变量)和 堆内存(存放对象) 又有方法区(存放类的代码信息,常量池,和能被所有线程共享的static变量) 他们之间的关系都是通过内存地址来指向
阅读全文
1