java补充
with_dream
这个作者很懒,什么都没留下…
展开
-
javax.annotation.processing.FilerException: Attempt to recreate a file for type
重写AbstractProcessor 使用注解重写文件时报错原因是createSourceFile时 会记录每次创建的文件名 并记录在Set<String> aggregateGeneratedSourceNames中如果重复创建 会报错JavacFiler filter = (JavacFiler) processingEnv.getFiler();JavaFileObject f = filter.createSourceFile(className);//调用流程creat原创 2021-02-07 22:46:54 · 3958 阅读 · 0 评论 -
netty整理
一、Reactor模式1、传统BIO的服务端模式为:while(true){ //监听到一个连接 则将socket放到一个子线程中处理 socket = accept(); handle(socket)}2、基于nio的Reactor模式Reactor模式是将连接、读、写步骤分离连接放在一个单独的线程中 读写放在子线程中 可以提高响应的速度 具体的读写操作放在线程池中 即是主从Reactor模式传统BIO的服务端也可以将读、写、连接的步骤进行多线程的分离但是基于ni原创 2020-05-09 20:12:25 · 183 阅读 · 0 评论 -
JAVA动态代理
1、简单的demopublic interface HelloService { /** * 目标方法 */ public abstract void add(String str);}public class HelloServiceImpl implements HelloService { /* * @see dynamic.proxy.原创 2017-11-03 18:29:01 · 278 阅读 · 0 评论 -
Unsafe
Unsafe是一个提供底层操作的不安全类,主要为java核心包提供服务。用户不能直接使用,如果想使用,可以使用反射。jdk9将隐藏此类,最好不要用。主要方法有://获取f在堆内存的偏移地址public native long objectFieldOffset(Field f);//获取静态f在堆内存的偏移地址public native long staticFieldOffset(Field原创 2017-09-01 18:48:29 · 403 阅读 · 0 评论 -
java String
1.1 String继承自Object,本身是final修饰。1.2 存储 String str = “abc”; jvm会检查方法区中的字符串常量区是否存在”abc”,若存在使str直接指向abc的地址,否则在常量区创建。 若再定义String p=”abc”,p和str都指向常量区中”abc”的地址String str1 = new String(“def”); 先在堆中创建String原创 2017-09-09 11:59:54 · 255 阅读 · 0 评论 -
java 时间类
1.1 DateDate主要提供时间戳和Data类间的转换及两个Date类的比较 主要方法://构造函数Date(long date)//两个时间的比较boolean after(Date when)boolean before(Date when)//设置时间戳void setTime(long time)其他大多数都是过时的方法。1.2 CalendarCalendar是个抽象类,原创 2017-09-09 00:38:32 · 273 阅读 · 0 评论 -
java类加载器
1.1 简介jvm执行的字节码是由类加载器加载,class文件经过加载、验证、准备、解析、初始化,被转化为实例对象,供jvm使用。 java的类加载器为动态加载,jvm启动时,将保证程序运行的基础类一次加载,其他的类只在用到时才被加载进内存。1.2 标准类加载器系统提供了三种标准类加载器:1.2.1 BootstrapClassLoader 最顶层的类加载器,有c++编写,集成在jvm内部,主要原创 2017-09-09 00:18:37 · 154 阅读 · 0 评论 -
java 泛型体系
1.1 AnnotatedElement表示目前正在此 VM 中运行的程序的一个已注释元素。该接口允许反射性地读取注释。由此接口中的方法返回的所有注释都是不可变并且可序列化的。1.2 AccessibleObject在反射时,控制类中属性的访问权限。默认反射是不能访问类的私有方法,但是可以使用AccessibleObject.setAccessible(fields, true); 指定访问权限以访原创 2017-09-08 19:28:27 · 247 阅读 · 0 评论 -
java8 函数式编程
1、简单的lamda表达式如果一个接口中有多个方法,lamda不支持interface A { void testA();}interface B { void testB(int x);}public class Test{ public static void main(String[] args) { //不带参数的lamda表达式 A原创 2017-09-25 11:45:44 · 316 阅读 · 0 评论 -
java 反射
1、简介反射机制就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性1.2 功能在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法; 生成动态代理1.3 Class在运行时,Class的实例代表类和接口。枚举是一种类(继承自Enum原创 2017-09-07 21:36:00 · 181 阅读 · 0 评论 -
java 注解
1、简介注解(也叫元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们在稍后的某个时刻可以方便的使用它们。1.2 标准注解java内部提供了三种内置注解 @Override :保证重写方法时的正确性 @Deprecated:对不应该使用的方法添加的标记 @SuppressWarnings:关闭不当的编译器警告。1.3 基本语法元注解是注解的注解,有四类 @Target 标记注解使用原创 2017-09-08 00:35:37 · 248 阅读 · 0 评论 -
java 枚举
1、简介1.1 概述jdk1.5引入枚举,与类相似,只是类使用class修饰,枚举使用enum修饰,且不能被继承 定义为: enum Data {A, B, C}主要的方法有: values() 返回enum实例数组 ordinal() 返回元素声明时的顺序 name() 返回元素的名字 valueOf() 根据名字,返回枚举实例1.2 特性1.2.1 enum除原创 2017-09-06 21:48:39 · 160 阅读 · 0 评论 -
java异常及处理
1、简介1.1 概述java的异常类都继承自Throwable。分为Error、Exception。 Error描述了运行时系统的内部错误,内存耗尽等。应用程序不应该抛出这类异常,也无法处理。 Exception则有分为两类,一类是RuntimeException为应用错误导致的异常。另一类是程序没有问题,但是由于其他原因导致的异常,如I/O这类异常。 一般应用需要处理的是RuntimeExc原创 2017-09-06 17:19:24 · 217 阅读 · 0 评论 -
javamail发送邮件
Java 官方也提供了对电子邮件协议封装的 Java 类库,就是JavaMail,但并没有包含到标准的 JDK 中,需要我们自己去官方下载。 需要用到两个jar包 mail.jar:http://www.oracle.com/technetwork/java/javamail/index-138643.html activation.jar :http://www.oracle.com/tec原创 2017-09-14 10:26:52 · 1523 阅读 · 0 评论