![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 50
黑猫警长的怨念
这个作者很懒,什么都没留下…
展开
-
装箱与拆箱
什么是装箱和拆箱 装箱是将值类型转换为引用类型或者是值类型(如:结构)实现任一接口类型的过程。当 CLR 对值类型进行装箱时,会将该值包装到 System.Object 内部,再将后者存储在托管堆上。拆箱就是将从对象中提取值类型或者接口类型到实现该接口的值类型的显式转换。装箱时隐性的,拆箱是显式的。转载 2017-02-12 17:14:54 · 309 阅读 · 0 评论 -
解决空指针的正确姿势
一:参考使用optional的正确姿势一篇二:map 可以无线级联三:orElse 有则返回,无则取默认值String stationName = Optional.ofNullable(t.getRadioStation()) .map(m -> m.getStation()) .map(m -> m.getName()) .orElse("-");原创 2017-11-02 16:37:54 · 316 阅读 · 0 评论 -
java native方法及JNI实例
1.参考文献:http://blog.csdn.net/youjianbo_han_87/article/details/2586375http://blog.csdn.net/yangjiali014/article/details/1633017http://blog.chinaunix.net/space.php?uid=7437948&do=blog&id=20转载 2017-11-03 14:28:01 · 245 阅读 · 0 评论 -
java中的快速失败(fail-fast)与安全失败(fail-safe)
原文地址:http://javahungry.blogspot.com/2014/04/fail-fast-iterator-vs-fail-safe-iterator-difference-with-example-in-java.html在我们详细讨论这两种机制的区别之前,首先得先了解并发修改。1.什么是同步修改?当一个或多个线程正在遍历一个集合Collection,此转载 2017-11-19 12:20:40 · 370 阅读 · 0 评论 -
java 类集框架一些总结
1.Collection的接口和实现类: * List: * ArrayList 数组实现的索引列表 (在非同步情况下取代Vector) * LinkedList 在任何位置可以实现高效的插入和删除操作的有序列表 * Vector 可动态改变容量的数组 * Stack 堆栈 * * Set: * HashSet 无序的无重复的集 * TreeSet 有序的无重复的集 * ...原创 2017-11-19 23:04:10 · 179 阅读 · 0 评论 -
抽象类与接口
接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言转载 2017-02-23 09:17:20 · 181 阅读 · 0 评论 -
Java 泛型
1.类型通配符Box 定义类型通配符上线,(定义了顶级父类)Box 定义类型通配符下线;(定义了底层子类)2.泛型只在编译阶段有效3.泛型作用:(1)类型安全。 通过知道使用泛型定义的变量的类型限制,编译器可以更有效地提高Java程序的类型安全。 (2)消除强制类型转换。 消除源代码中的许多强制类型转换。这使得代码更加可读原创 2017-11-19 23:20:40 · 157 阅读 · 0 评论 -
java NIO(non-blocking I/O) 非阻塞式io
一:NIO (non-blocking i/o) 非阻塞式I/O1.为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。2.通道与流的不同之处在于通道是双向的。3.因为它们是双向的,所以通道可以比流更好地反映底层操作系统的真实情况。特别是在 UNIX 模型中,底层操作系统通道是双向的。4.flip():Buffer有两种模式,原创 2017-11-19 23:28:34 · 1001 阅读 · 0 评论 -
java 并发编程
一:java 并发编程演变a)1.volatile 轻量级锁,锁字段2.synchronized 无锁状态->偏向锁(经常使用同一个同步对象)->轻量锁->重量锁b) 1.ThreadPoolExecutor 或者 用Concurrent包中的Executors 中的四种java自带线程池2.ForkJoinPoolpublic ThreadPoolExecutor(int c...原创 2017-11-20 01:04:34 · 177 阅读 · 0 评论 -
CGLIB动态代理和JDK动态代理-Spring AOP的底层实现原理
简述:AOP是目前Spring框架中的核心之一,在应用中具有非常重要的作用,也是Spring其他组件的基础。它是一种面向切面编程的思想。关于AOP的基础知识,相信多数童鞋都已经了如指掌,我们就略过这部分,来讲解下AOP的核心功能的底层实现机制:如何用动态代理来实现切面拦截。 AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生转载 2017-11-20 13:42:43 · 808 阅读 · 0 评论 -
使用java 8 Optional 的正确姿势
我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了OptionalUser> user = ...... if (user.isPresent()) { return user.getOrders();} else转载 2017-08-31 17:25:23 · 332 阅读 · 0 评论 -
为什么Java byte类型的取值范围为-128~127
一:原码、反码和补码[原码]就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。[反码]表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。[补码]表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。二:Java使 用 补 码 来 表 示 二 进 制 数原创 2017-07-01 10:10:20 · 384 阅读 · 0 评论 -
堆与栈
java1. 栈(stack)与堆(heap)都是java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据在多个线程或者多个栈之间是不可以共享的,但是在栈内部多个值相等的变量是可以指向一个地址的。转载 2017-02-12 18:18:27 · 236 阅读 · 0 评论 -
动态绑定与静态绑定
1.方法绑定:一个方法被调用时该方法被关联到该方法体的过程。2.静态绑定:在程序执行前方法已经被绑定(也就是说在编译过程中就已经知道这个方法到底是哪个类中的方法),此时由编译器或其它连接程序实现。java当中的方法只有final,static,private和构造方法是前期绑定3.动态绑定:后期绑定:在运行时根据具体对象的类型进行绑定。若一种语言实现了后期绑定,同时必须提供一些机制,可原创 2017-03-17 22:56:49 · 431 阅读 · 0 评论 -
java 学习笔记1
一,eclipse快捷键ctrl+shift+l 查看快捷键ctrl+shift+X,Y 变换大小写ctrl+shift+f 格式化代码ctrl+alt+上,下 复制到上,下行alt+上,下 移动到上,下行alt+/ 注释原创 2017-03-20 22:55:16 · 267 阅读 · 0 评论 -
java 学习笔记3
一,基本数据类型与字符串之间的转换在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。其中,基本类型转换为字符串有三种方法:1. 使用包装类的 toString() 方法2. 使用String类的 valueOf() 方法3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串int c = 10;String str = Integer原创 2017-03-28 16:47:30 · 235 阅读 · 0 评论 -
java 学习笔记4
一,Date()与SimpleDateFormat()Date d = new Date();//输出当前系统时间SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss)//时间格式String date = sdf.format(d);//格式化时间原创 2017-03-28 16:58:09 · 181 阅读 · 0 评论 -
java 学习笔记2
一,反射加载类 1.class.forname();2.new Object().getclass();3.Object.class;并解剖出类的各个部分getField() 获取成员getConstruction()获取构造函数getMethod()获取方法private只能被内部访问,但是反射能够改变其权限。二,内省(i原创 2017-03-21 10:24:43 · 160 阅读 · 0 评论 -
xml文件的解析与jvm内存调整
一,xml文件的转换//将xml文件转换为map;需要dom4j.jarpublic static Map XMLToMap(HttpServletRequest request){ Map map = new HashMap; SAXReader reader = new SAXReader(); //取得输入流并用SAXReader读入到Document原创 2017-03-24 17:16:02 · 559 阅读 · 0 评论 -
反射
一,反射加载类 1.class.forname();2.new Object().getclass();3.Object.class;并解剖出类的各个部分getField() 获取成员getConstruction()获取构造函数getMethod()获取方法private只能被内部访问,但是反射能够改变其权限。原创 2017-03-21 09:52:59 · 177 阅读 · 0 评论 -
java 学习笔记6
//重载 (overload):方法的重载,方法名字相同时,根据参数的个数,类型不同,顺序不同,加载不同的方法。//this:正在调用该方法的对象,正在初始化该方法的对象。//super:直接父类对象的引用。通过super来访问父类中被子类覆盖的方法和属性。//java中只有单继承,c++是多继承;java中的多继承,可以通过接口来实现//重写(override):方法名称,参数列表原创 2017-04-12 21:28:39 · 199 阅读 · 0 评论 -
Spring复习
1Spring 对于Bean的管理:不用让程序员去new出对象了,通过spring的xml配置或者注解,直接在你使用某个对象的时候去自动注入依赖或者自动装配依赖;基于xml的方式则在代码层次上考虑construct或setter注入方式,并且能够实现项目代码的外部部署;而基于注解的方式则不用写多余代码以及大量的xml文件配置了,但不能够在代码外部修改配置。2. Bean Scope :原创 2017-11-19 22:49:00 · 239 阅读 · 0 评论