随笔分类 -  java

摘要:Java 采用的是管程技术,synchronized 关键字及 wait()、notify()、notifyAll() 这三个方法都是管程的组成部分。而管程和信号量是等价的,所谓等价指的是用管程能够实现信号量,也能用信号量实现管程。但是管程利用OOP的封装特性解决了信号量在工程实践上的复杂性问题,因 阅读全文
posted @ 2022-04-26 16:25 zzfx 阅读(1418) 评论(0) 推荐(0) 编辑
摘要:所以总结一下c++,java,c#的泛型。c++的泛型在编译时完全展开,类型精度高,共享代码差。java的泛型使用类型擦出,仅在编译时做类型检查,在运行时擦出,共享代码好,但是类型精度不行。c#的泛型使用混合实现方式,在运行时展开,类型精度高,代码共享不错。 很长一段时间我只知道java的泛型使用了 阅读全文
posted @ 2019-12-03 11:56 zzfx 阅读(635) 评论(0) 推荐(0) 编辑
摘要:类型是一个数据符号,代表着数据的内存布局和访问规则。 default public <T> T xxxxx(Class<T> xclass) throws Exception { T obj = xclass.newInstance(); return null; } 获得一个Class类对象 第一 阅读全文
posted @ 2019-11-12 15:26 zzfx 阅读(1070) 评论(0) 推荐(0) 编辑
摘要:单一函数接口,可以使用拉姆达表达式的形式具体化和实例化。 本质是将接口函数签名化。 如定义了一个函数式接口如下: @FunctionalInterface interface GreetingService { void sayMessage(String message); } 那么就可以使用La 阅读全文
posted @ 2019-11-12 14:41 zzfx 阅读(278) 评论(0) 推荐(0) 编辑
摘要:Class<T> transform T:作为类型,用于定义变量; transform:作为具体类的类;用于创建实例。 类型信息是脱敏的具体类; 可以使用class的具体功能; 不能使用具体类的功能; 阅读全文
posted @ 2019-08-30 17:50 zzfx 阅读(641) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/u014532901/article/details/78820124 阅读全文
posted @ 2019-08-07 20:09 zzfx 阅读(227) 评论(0) 推荐(0) 编辑
摘要:Java把所有的非正常情况分为两种:异常(Exception)和错误(Error),它们都继承Throwable父类。 Java的异常(Exception和Error)分为检查异常和非检查的异常。 其中根据Exception异常进行分类,可分为运行时异常和非运行时异常。 检查异常: 就是编译器要求你 阅读全文
posted @ 2019-08-07 17:34 zzfx 阅读(3990) 评论(0) 推荐(1) 编辑
摘要:public enum ResultEnum { SUCCESS("200","成功"), FAILURE("500","发生异常"); private String code; private String value; ResultEnum(String code, String value) 阅读全文
posted @ 2019-08-07 16:55 zzfx 阅读(1600) 评论(0) 推荐(0) 编辑
摘要:HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。 HashMap 非线程安全 TreeMap 非线程安全 阅读全文
posted @ 2018-11-21 17:00 zzfx 阅读(505) 评论(0) 推荐(0) 编辑
摘要:所谓反射(Refection),其实就是程序自己能够检查自身信息,就像程序会通过镜子反光来看自己本身一样。反射使得 Java语言具有了“动态性”,即程序首先会检查某个类中的方法、属性等信息,然后再动态地调用或创建该类或该类的对象 一、反射的基石——Class类 Class类用来描述Java中的一切事 阅读全文
posted @ 2018-11-14 17:20 zzfx 阅读(135) 评论(0) 推荐(0) 编辑
摘要:Java泛型中的协变和逆变 一般我们看Java泛型好像是不支持协变或逆变的,比如前面提到的List<Object>和List<String>之间是不可变的。但当我们在Java泛型中引入通配符这个概念的时候,Java 其实是支持协变和逆变的。 看下面几行代码: 可见在Java泛型中通过extends关 阅读全文
posted @ 2018-10-09 14:39 zzfx 阅读(194) 评论(0) 推荐(0) 编辑
摘要:1).ArrayList  ArrayList维护着一个对象数组。如果调用new ArrayList()后,它会默认初始一个size=10的数组。  每次add操作都要检查数组容量,如果不够,重新设置一个初始容量1.5倍大小的新数组,然后再把每个元素copy过去。  在数组中间插入或删除,都要 阅读全文
posted @ 2018-07-06 16:55 zzfx 阅读(273) 评论(0) 推荐(0) 编辑
摘要:对于Android开发者来说深入了解Java的集合类很有必要主要是从Collection和Map接口衍生出来的,目前主要提供了List、Set和 Map这三大类的集合 Collection接口主要有两种子类分别为List和Set,区别主要是List保存的对象可以重复 而Set不可以重复 而Map一般 阅读全文
posted @ 2018-07-06 16:17 zzfx 阅读(3217) 评论(0) 推荐(0) 编辑
摘要:throw new IllegalStateException(".");不用在函数头声明throws IllegalStateExceptionthrow new IOException(".");不声明throws编译不通过 阅读全文
posted @ 2018-07-02 15:44 zzfx 阅读(1213) 评论(0) 推荐(0) 编辑
摘要:简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。 Java提供了更加优秀的解决办法:异常处理机制。 异常处理机制能让程序在异常发生时,按照代码的预先 阅读全文
posted @ 2018-07-02 15:43 zzfx 阅读(180) 评论(0) 推荐(0) 编辑
摘要:类名为this的限定词。 相对于内部类:有多个this; 1、内部类本身的this; 2、内部类的环境类的this; 类名.this,就是为了对这些this指针的指向做出限定。 区别于类名.class:是为了获取类型信息。 阅读全文
posted @ 2018-06-29 17:11 zzfx 阅读(384) 评论(0) 推荐(0) 编辑
摘要:注解的本质是寄生信息,注解实例必须和具体代码单元关联才有意义。 1、定义注解(类型)--定义元(信息)(结构)。 2、实例化注解并关联到程序单元-- 3、根据程序单元关键字获取注解实例信息解读。 用配置信息来表示注解的 注解(类型)定义:xxx注解名称x = anotationDefine(注解变量 阅读全文
posted @ 2018-06-28 23:10 zzfx 阅读(188) 评论(0) 推荐(0) 编辑
摘要:反射机制是Java动态性之一,而说到动态性首先得了解动态语言。那么何为动态语言? 一、动态语言 动态语言,是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化。比如常见的JavaScript就是动态语言,除此之外Ruby,Python等也属于动态语言,而C、C++则不 阅读全文
posted @ 2018-06-28 23:07 zzfx 阅读(298) 评论(0) 推荐(0) 编辑
摘要:注解的本质是寄生在代码中的附加信息,是配置信息的升级形式 @是java注解,即annotation。 1可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件。 2Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。 阅读全文
posted @ 2018-06-28 19:45 zzfx 阅读(159) 评论(0) 推荐(0) 编辑
摘要:1.java的关键字(keyword)有多少个? 51+2个保留字=53个关键字(java的关键字都是小写的!!) 2.java的保留字(reserve word)有多少个?问题:分别是什么? 2个保留字 Java语言的的保留字是指预留的关键字 1).const 有道释义:n. 常量,常数 用于修改 阅读全文
posted @ 2018-06-25 15:23 zzfx 阅读(553) 评论(0) 推荐(1) 编辑