
JAVA学习
wust小吴
爱学习 活泼 开朗
展开
-
javax.crypto.BadPaddingException: error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block t
RSA超过长度时报这个错,解决方法是 加密使用117 解密使用128 public static byte[] encryptByPublicKey(byte[] data, PublicKey publicKey){ int MAX_ENCRYPT_BLOCK = 117; try { Cipher cipher = Cipher.getInstance(CIPH原创 2017-06-02 10:32:49 · 11006 阅读 · 1 评论 -
java学习---new的对象怎么被内存回收
java,使用new创建对象,并将该对象的引用返回...对象依然存在,不会被垃圾回收,是什么意思啊?"我们在方法内部使用new创建对象,并将该对象的引用返回。如果该返回被一个引用接收,由于对象的引用不为0,对象依然存在,不会被垃圾回收。"User u = new User();如上面代码,简单说就是new User()的时候,原创 2016-04-14 17:06:48 · 21711 阅读 · 1 评论 -
JAVA学习---集合系列---LinkedList
http://blog.youkuaiyun.com/u011116672/article/details/50997396非线程安全的,查找效率比较低,插入和删除效率比较高前言LinkedList底层使用的双端链表,即每个节点既包含指向其后继的引用也包括指向其前驱的引用,LinkedList实现了List接口,继承了AbstractSequentialList类,在频繁进行插入以转载 2016-04-11 11:12:02 · 497 阅读 · 0 评论 -
JAVA学习---集合系列---Vector
http://blog.youkuaiyun.com/listening_music/article/details/7034070Vector 源码看出很多方法都是synchronized 的,线程安全,但是效率就不得不 损耗点了,多线程开发可以使用。ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程,还是用Vector比较好一些 Vector 可实现自动转载 2016-04-11 11:07:04 · 281 阅读 · 0 评论 -
JAVA学习---集合系列---ArrayList
http://blog.youkuaiyun.com/u011116672/article/details/50997365前言ArrayList也叫数组列表,底层使用的数组实现的,严格来说是动态数组。为了简化,我将从以下几个方面对ArrayList进行分析常用操作的源码分析 使用场景与小结ArrayList工作原理ArrayList工作原理其实很简单,转载 2016-04-11 11:00:15 · 313 阅读 · 0 评论 -
JAVA学习---集合系列---ArrayList、Vector和LinkedList等的差别
http://www.cnblogs.com/SharkBin/archive/2012/10/13/2722535.htmlArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都容许直接序号索引元素,然则插入数据要设计到数组元素移动等内存操纵,所以索引数据快插入数据慢,Vector因为应用了synchronized办转载 2016-04-12 10:31:51 · 386 阅读 · 0 评论 -
java中的多线程包---CompletionService Executor + BlockingQueue
转载请标明出处:http://blog.youkuaiyun.com/lmj623565791/article/details/27250059一般情况下,我们使用Runnable作为基本的任务表示形式,但是Runnable是一种有很大局限的抽象,run方法中只能记录日志,打印,或者把数据汇总入某个容器(一方面内存消耗大,另一方面需要控制同步,效率很大的限制),总之不能返回执行的结果;比如同时1000转载 2016-04-06 15:27:40 · 469 阅读 · 0 评论 -
java中的多线程包--- Timer的缺陷 用ScheduledExecutorService替代
继续并发,上篇博客对于ScheduledThreadPoolExecutor没有进行介绍,说过会和Timer一直单独写一篇Blog.1、Timer管理延时任务的缺陷a、以前在项目中也经常使用定时器,比如每隔一段时间清理项目中的一些垃圾文件,每个一段时间进行数据清洗;然而Timer是存在一些缺陷的,因为Timer在执行定时任务时只会创建一个线程,所以如果存在多个任务,且任务时间过长,转载 2016-04-06 15:19:15 · 451 阅读 · 0 评论 -
java中的多线程包---CyclicBarrier
http://blog.youkuaiyun.com/lmj623565791/article/details/26829117这次介绍CyclicBarrier:看一眼API的注释:[java] view plain copy /** * A synchronization aid that allows a set of thre转载 2016-04-06 15:05:48 · 346 阅读 · 0 评论 -
java多线程并发---闭锁
http://blog.youkuaiyun.com/lmj623565791/article/details/26626391每天起早贪黑的上班,父母每天也要上班,话说今天定了个饭店,一家人一起吃个饭,通知大家下班去饭店集合。假设:3个人在不同的地方上班,必须等到3个人到场才能吃饭,用程序如何实现呢?作为一名资深屌丝程序猿,开始写代码实现:[java] view转载 2016-04-06 14:48:20 · 510 阅读 · 0 评论 -
Java 将字节数组转化为16进制的多种方案
http://blog.youkuaiyun.com/lmj623565791/article/details/23609929第三种方法用到过很多时候我们需要将字节数组转化为16进制字符串来保存,尤其在很多加密的场景中,例如保存密钥等。因为字节数组,除了写入文件或者以二进制的形式写入数据库以外,无法直接转为为字符串,因为字符串结尾有\0,当然肯定还有其他原因。下面提供转载 2016-04-06 12:52:19 · 604 阅读 · 0 评论 -
java创建和销毁对象
1、给不可实例化的类提供私有构造器比如:每个项目中都有很多工具类,提供了很多static类型的方法供大家使用,谁也不希望看到下面的代码:[java] view plain copy TextUtils textUtils = new TextUtils(); if(textUtils.isDigitsOnly("转载 2016-04-06 12:47:50 · 394 阅读 · 0 评论 -
java中变量值为NULL的意义
FK ff 就相当于指针、代号、连接new FK() 其实就是在内存中给这个对象开辟了一块空间,这个对象存在了FK ff=new FK();就是将这个代号指向了这个对象,然后就可以用代号来操作对象了FK ff=null;就是只有代号,但是这个代号没有实际意义,因为他不代表某个具体的对象,在接下来的代码中,通常就是将这个代号指向某个具体的对象(赋值)再举个例子就是:转载 2016-02-27 11:07:34 · 1876 阅读 · 0 评论 -
JAVA学习---集合系列---HashMap
http://blog.youkuaiyun.com/u011116672/article/details/50997436前言无意中发现有很多对Map尤其是HashMap的线程安全性的话题讨论,在我的理解中,对HashMap的理解中也就知道它是线程不安全的,以及HashMap的底层算法采用了链地址法来解决哈希冲突的知识,但是对其线程安全性的认知有限,故写这篇博客的目的就是让和我对转载 2016-04-11 14:26:29 · 275 阅读 · 0 评论 -
JAVA学习---集合系列---ConcurrentHashMap
术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这转载 2016-04-11 14:37:39 · 345 阅读 · 0 评论 -
java.util包---LinkedList
java.util.LinkedList 类操作执行,我们可以预期这是一个双向链表。操作的索引列表会遍历从一开始或结束时,取其靠近指定索引的列表。类声明以下是java.util.LinkedList类的声明:public class LinkedListE> extends AbstractSequentialListE> implem转载 2016-04-24 22:06:48 · 1136 阅读 · 0 评论 -
java.util包---LinkedHashSet
java.util.LinkedHashSet 类是一个哈希表和链接列表实现Set接口,具有可预知的迭代顺序。以下是关于LinkedHashSet的要点:这个类提供了所有可选set操作,并且允许null元素。类声明以下是java.util.LinkedHashSet类的声明:public class LinkedH转载 2016-04-24 22:04:10 · 544 阅读 · 0 评论 -
java.util包---LinkedHashMap
java.util.LinkedHashMap 类是哈希表和链接列表实现Map接口,具有可预知的迭代顺序。以下是关于LinkedHashMap的要点:这个类提供了所有可选的映射操作,并且允许null元素。在一个HashMap的迭代很可能会更加昂贵。类声明以下是java.util.LinkedHashMap类的声转载 2016-04-24 21:55:41 · 1024 阅读 · 0 评论 -
java.util包---IdentityHashMap
java.util.IdentityHashMap 类实现了Map接口的哈希表,比较键(和值)时使用引用相等性代替对象相等的下面是IdentityHashMap有关的要点:这个类提供了所有可选的映射操作,并且允许null值和null键。这个类不保证为向地图的顺序;特别是,它不保证该顺序将继续随时间恒定。在IdentityHashMap中,两个键k1和k2被认为是当且仅当转载 2016-04-24 21:52:35 · 570 阅读 · 0 评论 -
java.util包---Hashtable
java.util.Hashtable 此类实现一个哈希表,该键映射到相应的值。以下是关于Hashtable的要点:在此任何非空的对象可以被用作键或值。如果很多条目将被制作成一个Hashtable,具有足够大的容量创建它可允许条目被插入的效率比让作为生长所需的表它执行自动再散列。类声明以下是java转载 2016-04-24 21:42:05 · 494 阅读 · 0 评论 -
java.util包---HashSet
java.util.HashSet 类实现Set接口,由哈希表支持。以下是关于HashSet的要点:这个类不做任何担保,以集合的迭代顺序;特别是,它不保证该顺序将继续随时间恒定。此类允许null元素。类声明以下是java.util.HashSet类的声明:public class H转载 2016-04-24 21:33:26 · 1617 阅读 · 0 评论 -
java.util包---HashMap
java.util.HashMap 类是基于哈希表的Map接口的实现。以下是关于HashMap的要点:这个类不保证为向映射的迭代顺序;特别是,它不保证该顺序将继续随时间恒定。这个类允许null值和null键。非线程安全的类声明以下是java.util.HashMap类的声明:转载 2016-04-24 21:11:32 · 1854 阅读 · 0 评论 -
Java状态机
http://chuanwang66.iteye.com/blog/13285631. 概述 The intent of the STATE pattern is to distribute state-specific logic across classes that represent an object’s state. STATE 设计模式的目的 是:转载 2016-04-14 21:34:30 · 9102 阅读 · 0 评论 -
java学习---java内存泄露有哪些
1、静态集合类像HashMap、Vector等的使用最容易出现内存泄露,这些静态变量的生命周期和应用程序一致,所有的对象Object也不能被释放,因为他们也将一直被Vector等应用着。2、内部类和外部类的引用容易出现内存泄露的问题3、监听器的使用,java中往往会使用到监听器,在释放对象的同时没有相应删除监听器的时候也可能导致内存泄露。4、大量临时变量的使用,没有及时将对转载 2016-04-14 20:54:29 · 503 阅读 · 0 评论 -
java学习---JVM中的垃圾收集算法和Heap分区简记
如何判断垃圾对象?垃圾收集的第一步就是先需要算法来标记哪些是垃圾,然后再对垃圾进行处理。 引用计数(ReferenceCounting)算法这种方法比较简单直观,FlashPlayer/Python使用该算法,简单高效。核心思路是,给每个对象添加一个被引用计数器,被引用时+1,引用失效-1,等于0时就表示该对象没有被引用,可以被回收。但是,Java/C#并不采用该算转载 2016-04-14 20:31:18 · 516 阅读 · 0 评论 -
JAVA学习---集合系列---CopyOnWriteArrayList
CopyOnWriteArrayList简介CopyOnWriteArrayList容器是Collections.synchronizedList(List list)的替代方案,CopyOnWriteArrayList在某些情况下具有更好的性能,考虑读远大于写的场景,如果把所有的读操作进行加锁,因为只有一个读线程能够获得锁,所以其他的读线程都必须等待,大大影响性能。CopyOnWrite转载 2016-04-11 14:50:06 · 487 阅读 · 0 评论 -
JAVA学习---集合系列---PriorityQueue
http://blog.youkuaiyun.com/u011116672/article/details/50997622前言今天继续来分析一下PriorityQueue的源码实现,实际上在Java集合框架中,还有ArrayDeque(一种双端队列),这里就来分析一下PriorityQueue的源码。PriorityQueue也叫优先队列,所谓优先队列指的就是每次从优先队列中取出来的元素要么转载 2016-04-11 14:46:46 · 535 阅读 · 0 评论 -
java---网络知识点---TCP三次握手连接 断开四次挥手
一、TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV原创 2016-04-05 10:50:57 · 1481 阅读 · 0 评论 -
java学习---------IO流学习---文件流inputstream outputstream(三)实现文件和文件夹的复制 删除
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/** * Java实现文件复制、剪切、删除操作 文件指文件或文件夹 文件分割符统一用"\\" */public class FileOperateDemo {转载 2015-03-29 18:49:05 · 683 阅读 · 0 评论 -
java学习---------IO流学习---文件流inputstream outputstream(二)
利用文件输入流和输出流实现文件的复制,下面的方法是:10字节10字节的复制,并且会把目标文件原来的内容给覆盖掉,如果目标文件原来有内容的话。 // 从指定的文件中读取内容,并写入到指定的文件内(相当于文件的复制) @Test public void testFileInputOutputStream() { File src = new File("file/iotest.txt"原创 2015-03-29 16:37:28 · 559 阅读 · 0 评论 -
java学习---------IO流学习---文件流inputstream outputstream
文件流有很多类FileInputStream FileoutputStream FileReader FileWriterBufferedInputStream BufferedOutputSteam BufferReader BufferWriter 缓冲流 它们用来加快读取时间的,然后直接看代码了:第一个知识点是文件的创建和目录的创建:/* * File:既可以表示文件原创 2015-03-29 16:05:38 · 589 阅读 · 0 评论 -
java学习------------java集合学习之List
直接看代码了, public static void main(String[] args) { List list = new ArrayList();//List是个原始类型,generic type List should be parameterized泛型类型需要被参数化,如果不被参数化,这里会提示一定的警告 //这里我们是需要测试List它能放哪些类型,所以我们就不参数化。原创 2015-03-28 12:41:33 · 478 阅读 · 0 评论 -
java正则表达式匹配所有数字+匹配纯数字+匹配带小数点数字
用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9])([1-9] :匹配1~9的数字;\d :匹配数字,包括0~9;* :紧跟在 \d 之后,表明可以匹配零个及多个数字;\. :匹配小数点;? :紧跟在 \. 之后,表明可以匹配零个或一个小数点;0 :匹配一个数字0;)其中的 [1-9]\d*\.转载 2014-12-09 20:46:51 · 35277 阅读 · 12 评论 -
java设计模式----单例模式Singleton(一)
转载自:板桥里人 http://www.jdon.com 2002/05/07定义:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。还有, singleton能够被状态化; 这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏转载 2014-12-19 15:03:20 · 692 阅读 · 0 评论 -
java内部类的作用(一)----解决函数参数返回的问题
当我们要处理做一个处理的时候,需要返回两个以上的参数的时候,就可以用原创 2014-11-03 18:02:30 · 712 阅读 · 0 评论 -
java内部类----安全问题-----访问外围类的私有变量
我们知道如果一个变量是私有的,它应该就不希望别人去访问它。原创 2014-11-03 22:32:28 · 1065 阅读 · 0 评论 -
java内部类 访问final变量----局部内部类访问局部变量
局部内部类与其他类相比,还有一个优点就是:原创 2014-11-03 21:39:01 · 826 阅读 · 0 评论 -
java内部类的作用(三)----定义使用回调函数的时候比较便捷---匿名内部类(anonymous)
首先我们需要了解什么叫匿名内部类:定义匿名内部类(原创 2014-11-03 20:37:42 · 780 阅读 · 0 评论 -
java内部类的作用(二)----隐藏作用
1.局部内部类有一个优势:即对外部世界完全可以隐藏起来,原创 2014-11-03 19:24:56 · 1014 阅读 · 0 评论 -
JDBC连接MySQL数据库及示例
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术。一、JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建转载 2014-08-24 20:17:09 · 598 阅读 · 0 评论