/**PageBeginHtml Block Begin **/ /***自定义返回顶部小火箭***/ /*生成博客目录的JS 开始*/ /*生成博客目录的JS 结束*/

随笔分类 -  Java系列

摘要:主题:多线程进阶 多线程的一些核心内容以及要关注的细节。 一、线程的实现 继承thread类重写run()方法和实现Runnable接口实现run()方法 注意点:new线程实例时建议加线程名和要处理下线程的中断异常([InterruptedException]) 二、不得不提的[ThreadLoc 阅读全文
posted @ 2017-09-05 00:12 一品堂.技术学习笔记 阅读(503) 评论(0) 推荐(0)
摘要:多线程下[HashMap]的问题: 1、多线程put操作后,get操作导致死循环。 2、多线程put非NULL元素后,get操作得到NULL值。 3、多线程put操作,导致元素丢失。 本次主要关注[HashMap]-死循环问题。 为何出现死循环? 大家都知道,HashMap采用链表解决Hash冲突, 阅读全文
posted @ 2017-09-05 00:11 一品堂.技术学习笔记 阅读(344) 评论(0) 推荐(0)
摘要:一、ThreadLocal基础知识 原始线程现状: 按照传统经验,如果某个对象是非线程安全的,在多线程环境下,对对象的访问必须采用synchronized进行线程同步。但是Spring中的各种模板类并未采用线程同步机制,因为线程同步会影响并发性和系统性能,而且实现难度也不小。 ThreadLocal 阅读全文
posted @ 2017-09-05 00:08 一品堂.技术学习笔记 阅读(351) 评论(0) 推荐(0)
摘要:一、Eclipse常见快捷键使用 自动完成单词:Alt+/ 重命名:Shift+Alt+r(统一改变字段或方法名) 生成getter/setter方法: Shift+Alt+s,然后r 删除当前行:Ctrl+d 定位到前(后)一个编辑点:标准为Alt+左(右)箭头 , 修改方法为: Windows- 阅读全文
posted @ 2017-09-05 00:05 一品堂.技术学习笔记 阅读(583) 评论(0) 推荐(0)
摘要:集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的 阅读全文
posted @ 2017-09-05 00:00 一品堂.技术学习笔记 阅读(732) 评论(0) 推荐(0)
摘要:一、Arrays.sort()数组排序Java Arrays中提供了对所有类型的排序。其中主要分为Primitive(8种基本类型)和Object两大类。 基本类型:采用调优的快速排序; 对象类型:采用改进的归并排序。1、对于基本类型源码分析如下(以int[]为例): Java对Primitive(int,float等原型数据)数组采用快速排序,对Object对象数组采用归并排序。对这一区别... 阅读全文
posted @ 2017-09-04 23:53 一品堂.技术学习笔记 阅读(287) 评论(0) 推荐(0)
摘要:一、源码解析1、 LinkedList类定义。 1 public class LinkedList 2 extends AbstractSequentialList 3 implements List, Deque, Cloneable, java.io.SerializableLinkedList 是一个继承于AbstractSequentialList的双向链表。它也... 阅读全文
posted @ 2017-09-04 23:48 一品堂.技术学习笔记 阅读(212) 评论(0) 推荐(0)
摘要:一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函 阅读全文
posted @ 2017-09-04 23:34 一品堂.技术学习笔记 阅读(288) 评论(0) 推荐(0)
摘要:一、 HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 二、 HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用H 阅读全文
posted @ 2017-09-04 23:20 一品堂.技术学习笔记 阅读(210) 评论(0) 推荐(0)
摘要:一、HashMap概述 HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 值得注意 阅读全文
posted @ 2017-09-04 23:18 一品堂.技术学习笔记 阅读(228) 评论(0) 推荐(0)
摘要:在开发工作中,我们常常需要获取客户端的IP。一般获取客户端的IP地址的方法是:request.getRemoteAddr();但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 原因:由于在客户端和服务之间增加了中间代理,因此服务器无法直接拿到客户端的IP,服务器 阅读全文
posted @ 2017-09-04 23:07 一品堂.技术学习笔记 阅读(3366) 评论(3) 推荐(1)
摘要:上传文件时经常需要做文件类型判断,例如图片、文档等,普通做法是直接判断文件后缀名,而文艺青年为了防止各种攻击同时也会加上使用文件头信息判断文件类型。原理很简单:用文件头判断,直接读取文件的前2个字节即可。 1 public class FileUtil { 2 /** 3 * byte数组转换成16进制字符串 4 * 5 * @param src ... 阅读全文
posted @ 2017-09-04 23:04 一品堂.技术学习笔记 阅读(2213) 评论(0) 推荐(2)
摘要:一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。... 阅读全文
posted @ 2017-09-04 23:01 一品堂.技术学习笔记 阅读(440) 评论(0) 推荐(0)
摘要:概述:Java解析apk文件,获取apk文件里的包名,版本号,图标文件等;功能:可以提供给windows和linux平台使用;原理:利用aapt.exe或者aapt这些anroid平台解析apk文件的工具,借用终端shell调用命令解析输出信息;代码: 这里贴出一些关键代码,并给出代码注释,如下 1 package com.apkutils; 2 3 import java.io... 阅读全文
posted @ 2017-09-04 22:49 一品堂.技术学习笔记 阅读(1330) 评论(0) 推荐(0)
摘要:一:代码图解: 二:配置文件: 三:获取配置文件信息 PathUtil.java PropertiesConfig.java PropertyReadUtil.java 四:JDBC 获取连接的封装 阿里巴巴开源的数据库连接jar 连接工具类 :DruidDataSourceUtil.java c3 阅读全文
posted @ 2017-09-04 21:42 一品堂.技术学习笔记 阅读(854) 评论(0) 推荐(0)
摘要:1:javascript对JSON的支持2:java对JSON的支持 alibaba->fastjson 封装工具类: 1 import com.alibaba.fastjson.JSONObject; 2 3 public class JSONBuilder { 4 JSONObject json = new JSONObject(); 5 6 publi... 阅读全文
posted @ 2017-09-04 21:36 一品堂.技术学习笔记 阅读(177) 评论(0) 推荐(0)
摘要:JFreeChart主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等 (源代码下载) 示例程序运用的jar包: jcommon-1.0.17.jar jfreechart-1.0.14.jar 1:普通柱状图 这是 阅读全文
posted @ 2017-09-04 21:28 一品堂.技术学习笔记 阅读(433) 评论(0) 推荐(0)
摘要:一、Java数组初始化Java数组是静态的,即当数组被初始化之后,该数组的长度是不可变的。Java数组使用之前必须先对数组对象进行初始化,所谓初始化,就是为数组的所有元素分配内存空间,并为每个数组元素指定初始值。(文章来源于李刚老师的《突破java程序员的16课》)1:基本类型数组的两种初始化方式静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。动态初始化:初始化时程序... 阅读全文
posted @ 2017-09-04 21:09 一品堂.技术学习笔记 阅读(192) 评论(0) 推荐(0)
摘要:下面这段代码可用于Jsp+Servle+JavaBean中做验证码: 1 2 255) fc=255; 6 if(bc>255) bc=255; 7 int r=fc+random.nextInt(bc-fc); 8 int g=fc+random.nextInt(bc-fc); 9 int b=fc+random.ne... 阅读全文
posted @ 2017-09-04 20:59 一品堂.技术学习笔记 阅读(225) 评论(0) 推荐(0)