![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 76
PPPeyton
下一站
展开
-
如何创建多线程环境下的可序列化单例模式
本文从以下几个点讲解:实现单例的两种方式(预加载&懒加载)多线程环境下的单例可序列化的单例对以上代码的重构单例与枚举原创 2017-06-04 22:35:45 · 701 阅读 · 0 评论 -
ThreadLocal原理解析(1):数据存取
转载请注明出处:【huachao1001的专栏:http://blog.csdn.net/huachao1001】本文是源码解析是基于JDK 1.7注意:Android内使用的ThreadLocal跟JDK内部的ThreadLocal具体实现有区别。但是他们所做的功能是一致的,只是android针对ThreadLocal做了优化。但这不影响我们学习ThreadLocal的实现思转载 2017-08-23 01:24:36 · 277 阅读 · 0 评论 -
ThreadLocal原理解析(2):ThreadLocalMap源码解析
转载请注明出处:【huachao1001的专栏:http://blog.csdn.net/huachao1001】跟上一篇文章【ThreadLocal原理解析(1):数据存取】一样,本文是源码解析是基于JDK 1.7。在上一篇文章【ThreadLocal原理解析(1):数据存取】中,我们介绍了ThreadLocal读取数据的过程及原理。我们知道,ThreadLocal将变量的各个副转载 2017-08-23 11:06:56 · 270 阅读 · 0 评论 -
java虚拟机之类加载机制
前言我们都知道,java编译的结果是字节码,不是本地机器码,这也是java跨平台的一大表现。既然java编译后是字节码,那么就不能实际地在本地(物理机器)运行。java字节码运行在jvm虚拟机上面,既然这样,那么jvm虚拟机是如何加载读取一个类的信息的呢?我们平时写完java代码生成的是class文件。最后在运行的时候,虚拟机把描述类的信息从class文件加载到内存,然后再进行校验、解析和转载 2017-09-06 15:02:39 · 219 阅读 · 0 评论 -
万能的APT!编译时注解的妙用
转载自:http://zjutkz.net/2016/04/07/万能的APT!编译时注解的妙用/本篇文章会带你了解什么是注解,注解的用法和分类,并且从knight和butterKnife的使用方式和源码着手让你更加了解编译时注解的好处。不要脸的推广在开始这篇文章之前,请允许我不要脸的推广一下我写的一个库,使用编译时注解+apt+javapoet去完成白天/夜间模式的切换,现在转载 2017-09-06 17:24:03 · 1434 阅读 · 0 评论 -
记录一个坑——判断奇偶数
正奇数 % 2 = 1 正偶数 % 2 = 0 负偶数 % 2 == 0 然而 负奇数 % 2 == -1 所以判断奇偶数应该使用:if(num % 2 == 0) { // 偶数} else { // 奇数}或者if(num & 1 == 0) { // 偶数} else { // 奇数}原创 2017-10-29 00:30:28 · 796 阅读 · 0 评论 -
JAVA常用类之格式化
转载自:https://yq.aliyun.com/articles/18479摘要: 日期格式化 在之前的博客中我们使用到了操作日期的一些类,我们发现,如果我们想要获得指定格式的日期字符串可以做到但是很麻烦,下面为大家介绍几种日期的格式化方式。 java.text.DateFormat DateFormat是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。转载 2017-10-31 14:32:06 · 650 阅读 · 0 评论 -
Java关于浮点数的舍入法与String.format()在不同jdk版本的区别
1. 前提知识浮点数在计算机中是以二进制的形式存储的,大部分浮点数都无法精确表达银行家舍入法:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一2. 碰到的问题我在对浮点数做保留两位小数并四舍五入的操作时,测试的时候发现在JDK 8和Android 5.1上得到的值是不一样的。 代码: public static void main(String[] args)原创 2017-10-24 20:33:13 · 5538 阅读 · 0 评论 -
程序设计的一些感悟
1、有些写的不好觉得可以改进的代码,可以先标注个todo,以后再来修改2、有些问题的解决,可以考虑分成几个步骤,先做使用上的替换,再做整体上的替换3、解决问题没有思路的时候可以从上层或者下层去解决4、参数类型最好用接口,扩展性高比如用String的地方,可以考虑换成CharSequence,在Android中TextView的显示就可以使用Spannable原创 2017-11-20 11:45:40 · 477 阅读 · 0 评论 -
关于java 注解中元注解Inherited的使用详解
转自:http://blog.csdn.net/snow_crazy/article/details/39381695关于java中元注解Inherited 的使用说明首先解释下元注解,就是用来中声明注解类型时需要使用到的注解。Inherited作用是,使用此注解声明出来的自定义注解,在使用此自定义注解时,如果注解在类上面时,子类会自动继承此注解,否则的话,子类不会继承转载 2017-11-16 17:23:09 · 1132 阅读 · 0 评论 -
Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Overridepublic void run() {// TODO Auto-genera转载 2017-07-08 22:32:41 · 444 阅读 · 0 评论 -
Java 运行时如何获取泛型参数的类型
在 Java 中对于下面最简单的泛型类class A { public void foo() { //如何在此处获得运行时 T 的具体类型呢? }}设想我们使用时new A().foo();是否能在 foo() 方法中获得当前的类型是 String 呢?答案是否定的,不能。在 foo() 方法中 this转载 2017-08-21 01:43:22 · 1537 阅读 · 0 评论 -
Classloader内存泄露
在你重新部署你的应用程序到应用服务器(比如tomcat、weblogic等)时,你是否也遇到过 java.lang.OutOfMemoryError:PermGen space error? 是否也曾一边抱怨这个应用服务器,一边重启,然后继续你的工作,同时脑子里还在想着这一定是该服务器的一个BUG。那些应用服务器开发者们,应该仔细一点,对吗?或许吧,但是你有想过,这的的确确是你的过错吗?我转载 2017-06-05 21:29:12 · 3474 阅读 · 0 评论 -
理解Java对象序列化
关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结。此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制。在撰写本文时,既参考了Thinking in Java, Effective Java,JavaWorld,developerWorks中的相关文章和其它网络资料,也加入了自己的实践经验与理解,文、码并茂,希望对大家有所帮助。转载 2017-06-04 12:48:49 · 367 阅读 · 0 评论 -
线程通信
原文链接 作者:Jakob Jenkov译者:杜建雄 校对:方腾飞线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。例如,线程B可以等待线程A的一个信号,这个信号会通知线程B数据已经准备好了。本文将讲解以下几个JAVA线程间通信的主题:1、通过共享对象通信2、忙等待3、wait(),notify()和not转载 2017-06-04 12:50:18 · 272 阅读 · 0 评论 -
Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结
来源:Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结作者:木棉和木槿2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash……系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度、唯品会、58同城、新浪微博、趣分期、美团点评等都在1、2……面的时候被问过无数次,都问吐了&_&,其他公转载 2017-06-03 21:51:56 · 445 阅读 · 0 评论 -
Java 8系列之重新认识HashMap
摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Java为数据结构中的映射定义了一个接口j转载 2017-06-03 22:01:33 · 334 阅读 · 0 评论 -
Java的Collection.toArray方法
Java的Collection.toArray有两个重载方法:Object[] toArray()<T> T[] toArray(T[] a)第一个方法就不说了,分析一下第二个重载方法 <T> T[] toArray(T[] a) 用法:Collection<String> coll = new ArrayList<>();// coll.add...String[] strs = n原创 2017-07-07 01:23:38 · 1845 阅读 · 0 评论 -
java泛型(一)、泛型的基本介绍和使用
转载自:http://blog.csdn.net/lonelyroamer/article/details/7864531 现在开始深入学习Java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用。泛型在java中,是一个十分重要的特性,所以要好好的研究下。一、泛型的基本概念 泛型的定义:泛型是JDK 1.5的一项新特性,它转载 2017-08-21 00:51:58 · 303 阅读 · 0 评论 -
Java获取泛型参数的类型的方法 - 实例讲解
转载自:http://josh-persistence.iteye.com/blog/2165613在Java中,我们常常需要获取泛型参数的类型,比如将使用了泛型的Java代码进行序列化和反序列化的时候。 一、在开始试图去获取泛型参数的类型前,可以试着去执行如下的类,看看执行的结果:Java代码 /** *转载 2017-08-21 01:30:17 · 815 阅读 · 0 评论 -
Java泛型:类型擦除
转载自:http://findingsea.github.io/2015/10/09/java-generic-type-erasure/前情回顾Java泛型:泛型类、泛型接口和泛型方法类型擦除代码片段一1234567Class c1 = new ArrayList().getClass();Class c转载 2017-08-21 01:50:02 · 354 阅读 · 0 评论 -
List<?>和List<T>的区别?
转自:https://www.zhihu.com/question/31429113List和List的区别,这问的有点含糊。我想题主是想问类型参数“”和无界通配符“”的区别吧?讨论“"和"",首先要区分开两种不同的场景:第一,声明一个泛型类或泛型方法。第二,使用泛型类或泛型方法。类型参数“”主要用于第一种,声明泛型类或泛型方法。无界通配符“”主要用转载 2017-11-25 14:23:40 · 6809 阅读 · 3 评论