Java
Lienson
我不是技术大牛,也不是编程狂热者,我只是莫名其妙走到这条路,渐渐喜欢上它而已;我没有傲娇的开源框架,也没有名企的经历,只想做的更好而已;我不是业务专家,也不是行业顶尖,只是想记录自己的历程,借以参考。
展开
-
Java多线程——sleep()和wait()的区别
这两个方法主要来源是,sleep用于线程控制,而wait用于线程间的通信,与wait配套的方法还有notify和notifyAll. 区别一:sleep是Thread类的方法,是线程用来 控制自身流程的,比如有一个要报时的线程,每一秒中打印出一个时间,那么我就需要在print方法前面加上一个sleep让自己每隔一秒执行一次。就像个闹钟一样。wait是Obje转载 2015-10-16 11:11:11 · 274 阅读 · 0 评论 -
Java transient关键字使用小记
1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,转载 2016-02-23 15:21:18 · 220 阅读 · 0 评论 -
算法:冒泡排序和选择排序
/** * 冒泡排序(从大到小):每次循环,每两个相邻两两对比,将最大的放到最左边 * @param arr 要排序的数组 */ public static void bubbleSort(int[] arr) { int len = arr.length; for(int i = 0; i < len; i++) { boolean flag = tru原创 2016-01-31 20:59:58 · 235 阅读 · 0 评论 -
设计模式---策略模式(Strategy Pattern with java)
策略模式是一个很简单的模式,也是一个很常用的模式,可谓短小精悍,类库有很多使用策略模式的例子,所以本文以模拟类库为例子,学习策略模式,也熟悉了java类库设计中的精华,加深了我们的OO思想。1 概念策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。(原文:The Strategy Patter转载 2016-01-31 16:11:10 · 282 阅读 · 0 评论 -
Java比较器Comparable接口和Comaprator接口
java的比较器有两类,分别是Comparable接口和Comparator接口。在为对象数组进行排序时,比较器的作用非常明显,首先来讲解Comparable接口。让需要进行排序的对象实现Comparable接口,重写其中的compareTo(T o)方法,在其中定义排序规则,那么就可以直接调用java.util.Arrays.sort()来排序对象数组,实例如下:View Cod转载 2016-01-31 15:34:24 · 245 阅读 · 0 评论 -
JDK里的设计模式
一.结构型模式1.适配器模式 用来把一个接口转化成另一个接口。 java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputStreamReader(InputStream) java.io.Outpu转载 2016-01-31 15:00:34 · 204 阅读 · 0 评论 -
java内存分配和String类型的深度解析
一、引题 在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,本文结合java内存分配深度分析关于String的许多令人迷惑的问题。下面是本文将要涉及到的一些问题,如果读者对这些问题都了如指掌,则可忽略此文。 1、java内存具体指哪块内存?这块内存区域为什么要进行划分?是如何划分的?划分之后每块区域的作用是什转载 2016-01-30 15:28:28 · 228 阅读 · 0 评论 -
String类型字符串修改的思考
我们先看下面一个简单的列子:String s = "hello";s = s + " world!";System.out.println(s);【结果】hello world!没错,我们是得到了我们想要的结果。那么,我想问下执行这段代码后,原始的String对象中的内容变了没有?可能从结果上看,你会说变了,那要注意了!答案是:没有。【解析】原创 2016-01-30 14:54:30 · 295 阅读 · 0 评论 -
无法获取数据:AJAX挂起后中断
接到线上反馈的问题,说数据出不来。刚开始觉得很奇怪,本地和测试环境功能都没问题,为何数据会出不来?以为是浏览器兼容性问题,后来验证发现不是。 不懂为什么,凡是自己没看到和操作的东西,老不相信别人的反馈结果,总觉得他们操作有问题。一定是手的问题!于是,我自己看了下浏览器,然后F12打开跟踪捕获URL。经解析发现,在加载某一数据时,ajax挂起,然后没过多久中断。我就大体知道问题出在原创 2016-01-22 14:43:55 · 771 阅读 · 0 评论 -
Unicode和UTF-8编码
ASCII是用来表示英文字符的一种编码规范,每个ASCII字符占用1个字节(8bits)。【UTF-8和Unicode的区别】unicode是定长编码,每个字符都是2 byte,所以在存储ascii时会浪费一个byte的空间。而utf-8是变长unicode编码,在unicode编码基础上进行变长,在存储ascii时只占用一个byte;存储中文时占用3 byte。在原创 2016-01-30 14:21:56 · 369 阅读 · 0 评论 -
Java对称加密算法之AES
【AES】一种对称加密算法,DES的取代者。加密相关文章见:Java加密技术【代码】import org.bouncycastle.crypto.BufferedBlockCipher;import org.bouncycastle.crypto.CipherParameters;import org.bouncycastle.crypto.DataLengthExc原创 2016-01-27 19:03:52 · 548 阅读 · 0 评论 -
Java加密技术
【前言】本文简单的介绍了加密技术相关概念,最后总结了java中现有的加密技术以及使用方法和例子【最简单的加密】1.简单的概念明文:加密前的信息密文:机密后的信息算法:加密或解密的算法密钥:算法使用的钥匙(读作miyao,正确应该是miyue,但是大家都读miyao)2.简单的例子将123456每位数字都加1后得到2转载 2016-01-27 18:43:25 · 319 阅读 · 0 评论 -
报错:java.lang.IllegalStateException: Parameter count exceeded allowed maximum: 512
今天准备要下班时,同事突然问我:页面相关信息填写后,点保存,报这个错。java.lang.IllegalStateException: Parameter count exceeded allowed maximum: 512我一开始以为是sql有问题:插入时,某一字段超过实际大小。后来发现不是,从这个错误的字面看,是参数大小超过允许的512。我打开页面,F12进行调试,发原创 2016-01-08 20:43:59 · 901 阅读 · 0 评论 -
XML DTD与Schema约束
目录(?)[-]一引言二DTD Document Type Definition三XML Schema约束一、【引言】 Xml即Extensible Markup Language可扩展标记语言。它是由SGML(Standard Gerneralized Markup language)发展而来的,允许开发者自定标签,可以将标签和内容有效的分离。在XML技术里,可转载 2015-10-14 15:24:57 · 267 阅读 · 0 评论 -
JAVA解析XML汇总
关键字:Java解析xml四种方法、DOM、SAX、JDOM、DOM4j、XPath【引言】目前在Java中用于解析XML的技术很多,主流的有DOM、SAX、JDOM、DOM4j,下文主要介绍这4种解析XML文档技术的使用、优缺点及性能测试。一、【基础知识——扫盲】sax、dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无法解析x转载 2015-10-14 15:32:26 · 358 阅读 · 0 评论 -
Java多线程——join方法
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join(); //使调用线程 t 在此之前执行完毕。t.join(1000); //等待 t 线程,等待时间是1000毫秒 先上一段JDK中代码:Java代码转载 2015-10-16 10:26:09 · 251 阅读 · 0 评论 -
Java多线程——线程状态
一. 线程状态类型1. 新建状态(New):新创建了一个线程对象。2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂转载 2015-10-14 16:06:00 · 329 阅读 · 0 评论 -
Java多线程——实现方式
在Java中, 多线程的实现有两种方式:扩展java.lang.Thread类实现java.lang.Runnable接口1、继承Thread类实现多线程 继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实转载 2015-10-15 09:13:58 · 318 阅读 · 0 评论 -
Java相关知识点
1、IOJava的IO操作中有面向字节(Byte)和面向字符(Character)两种方式。面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类。面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类。原创 2016-02-23 17:28:52 · 216 阅读 · 0 评论