![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javaSE
720_tigerMouse
这个作者很懒,什么都没留下…
展开
-
Blob、InputStream、byte[] 互转
在我们的程序开发当中,经常会用到java.sql.Blob、byte[]、InputStream之间的相互转换,但在JDK的API当中,又没有直接给我们提供可用的API,下面的程序片段主要就是实现它们之间互换的util.一、byte[]=>Blob我们可以通过Hibernate提供的表态方法来实现如:org.hibernate.Hibernate.Hibernate.createB转载 2014-06-18 12:08:55 · 454 阅读 · 0 评论 -
Java aio(异步网络IO)初探
【本文转载于Java aio(异步网络IO)初探】按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因转载 2015-07-09 12:30:18 · 283 阅读 · 0 评论 -
Java NIO 系列教程
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。感谢并发编程网的翻译和投递。 (关注ITeye官微,随时随地查看最新开发资讯、技术文章。) Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲转载 2015-07-08 23:07:28 · 411 阅读 · 1 评论 -
Java NIO原理图文分析及代码实现
【本文转载于Java NIO原理图文分析及代码实现】前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现转载 2015-07-03 11:16:16 · 385 阅读 · 0 评论 -
BufferedInputStream学习笔记
【本文转载于http://icanfly.iteye.com/blog/1207397】BufferedInputStream是一个带有缓冲区域的InputStream,它的继承体系如下: InputStream |__FilterInputStream |__BufferedInputStream 首先了解一下FilterInputStream:转载 2015-08-24 18:38:20 · 439 阅读 · 0 评论 -
Java集合转换【List<-->数组、List<-->Set、数组<-->Set、Map-->Set、Map-->List】
[java] view plaincopy//List-->数组 List list = new ArrayList(); list.add("tom"); list.add("Jerval"); list.add("WeiSi"); Object[] objects = list.toArray();//转载 2015-09-01 20:27:54 · 376 阅读 · 0 评论 -
聊聊并发(十)生产者消费者模式
【本文转自聊聊并发(十)生产者消费者模式】在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。为什么要使用生产者和消费者模式在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继转载 2015-11-03 16:37:06 · 392 阅读 · 0 评论 -
java集合类TreeMap和TreeSet及红黑树
看这篇博客前,我觉得很有必要先看下我之前的几篇博客Red-Black Trees(红黑树) (TreeMap底层的实现就是用的红黑树数据结构)探索equals()和hashCode()方法 (TreeMap/TreeSet实现使用到的核心方转载 2015-11-11 14:58:59 · 11845 阅读 · 0 评论 -
Java服务器热部署的实现原理
【本文转载于Java服务器热部署的实现原理】今天发现早年在大象笔记中写的一篇笔记,之前放在ijavaboy上的,现在它已经访问不了了。前几天又有同事在讨论这个问题。这里拿来分享一下。在web应用开发或者游戏服务器开发的过程中,我们时时刻刻都在使用热部署。热部署的目的很简单,就是为了节省应用开发和发布的时间。比如,我们在使用Tomcat或者Jboss等应用服务转载 2015-12-03 20:47:35 · 380 阅读 · 0 评论 -
图说HashMap多线程并发问题分析
【本文转载于HashMap多线程并发问题分析】并发问题的症状多线程put后可能导致get死循环从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题。后来,我们的程序性能有问题,所以需要变成多线程的,于是,变成多线程后到了线上,发现程序经常占了100%的CPU,查看堆栈,你会发现程序都Hang在了HashMap.get()这转载 2016-05-04 19:53:12 · 475 阅读 · 0 评论 -
为什么在定义hashcode时要使用31这个数呢?
散列计算就是计算元素应该放在数组的哪个元素里。准确的说是放到哪个链表里面。按照Java的规则,如果你要想将一个对象放入HashMap中,你的对象的类必须提供hashcode方法,返回一个整数值。比如String类就有如下方法:[java] view plaincopyprint?public int hashCode() {转载 2016-06-26 21:32:33 · 1636 阅读 · 1 评论 -
如何精确地测量java对象的大小
【本文转载于如何精确地测量java对象的大小】关于java对象的大小测量,网上有很多例子,大多数是申请一个对象后开始做GC,后对比前后的大小,不过这样,虽然说这样测量对象的大小是可行的,不过未必是完全准确的,因为过程中包含对象本身的开销,也许你运气好,正好能碰上,差不多,不过这种测试往往显得十分的笨重,因为要写一堆代码才能测试一点点东西,而且只能在本地测试玩玩,要真正测试实际的系统的对象大转载 2016-06-18 23:21:17 · 1029 阅读 · 0 评论 -
Java异常处理终结篇——如何进行Java异常处理设计
【本文转自于Java异常处理终结篇——如何进行Java异常处理设计】有一句这样话:一个衡量Java设计师水平和开发团队纪律性的好方法就是读读他们应用程序里的异常处理代码。本文主要讨论开发Java程序时,如何设计异常处理的代码,如何时抛异常,捕获到了怎么处理,而不是讲异常处理的机制和原理。在我自己研究Java异常处理之前,我查过很多资料,翻过很多书藉,试过很多搜索引擎,换过很转载 2016-09-08 21:44:27 · 486 阅读 · 0 评论 -
探索 ConcurrentHashMap 高并发性的实现机制
【本文转自探索 ConcurrentHashMap 高并发性的实现机制】简介ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制。由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所以阅转载 2017-12-21 22:38:07 · 332 阅读 · 0 评论 -
深入分析Java ClassLoader原理
【本文转自深入分析Java ClassLoader原理】一、什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一...转载 2018-03-27 00:41:25 · 151 阅读 · 0 评论 -
ConcurrentHashMap
ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它的技巧在里面(比如你是否知道在get...转载 2018-04-17 15:38:28 · 289 阅读 · 0 评论 -
JAVA判断文件编码类型
【本文转载于JAVA判断文件编码类型】java读取文件,处理过程中,可能因为文件的编码问题导致了中文乱码。有时需要将UTF-8的改为ANSI的编码。以下代码就可以判断文件是什么编码方式。 主要jar包:cpdetector.jar 下载地址http://cpdetector.sourceforge.net/ 同时还需jchardet-1.0.jar这个包,否则detector转载 2015-06-19 18:48:42 · 643 阅读 · 0 评论 -
Java线程试题Top50
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么转载 2014-08-22 10:07:20 · 451 阅读 · 0 评论 -
java 获取当前年份、月份、日期,当月第一天和最后一天
public class CalendarTest { public static void main(String[] args) { // 获取当前年份、月份、日期 Calendar cale = null; cale = Calendar.getInstance(); int year =转载 2014-09-22 17:31:01 · 2611 阅读 · 0 评论 -
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和总结 java.lang.Object ....|__java.util.Date ..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time【父类】java.util.Da转载 2014-11-08 09:45:26 · 450 阅读 · 0 评论 -
深入理解java异常处理机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。转载 2015-03-26 18:25:00 · 279 阅读 · 0 评论 -
java 位移,二进制、八进制、十进制、十六进制,超详解析!适合初学者!
如果有不妥之处,请给予留言纠正,谢谢!本文仅限于学习。 1.进制间的转换[java] view plaincopyprint?public class HexConversion { /** * TODO 进制转换。 * * @param args */转载 2014-11-25 22:20:38 · 1010 阅读 · 0 评论 -
Java并发编程:Callable、Future和FutureTask
在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务转载 2015-03-19 17:40:05 · 382 阅读 · 0 评论 -
每个Java开发者都应该知道的5个JDK工具
【编者按】JDK是Java语言的软件开发工具包,没有它就无法编译Java程序。目前,有许许多多的JDK工具呈现在大家面前,但最常用的莫过于java.exe、javac.exe、jar等。除了这几个,还有哪些呢?本文作者Joe拥有多年的Java开发经验,其在博客上分享了一篇文章:5 JDK Tools Every Java Developer Should Know,笔者对其进行了编译,以下为译转载 2014-11-25 13:58:20 · 367 阅读 · 0 评论 -
String、StringBuilder、StringBuffer 用法比较
【本文转载于http://blog.csdn.net/ithomer/article/details/7669843】String、StringBuilder、StringBuffer 三个类源自JDK的 java/lang/ 目录下:String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全,JDK 5.0(1.转载 2015-03-23 11:16:08 · 281 阅读 · 0 评论 -
Java注解Annotation详解
【本文转载于http://www.open-open.com/lib/view/open1423558996951.html】从JDK5开始,Java增加了Annotation(注解),Annotation是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用Annotation,开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信息。代码转载 2015-04-03 17:31:07 · 379 阅读 · 0 评论 -
java中treemap和treeset实现(红黑树)
TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点。TreeSet 和 TreeMap 的关系为了让大家了解 TreeMap 和 TreeSet 之间的关系,下面先看 TreeSet 类的部分源代码: public class TreeSet extends AbstractSet imp转载 2015-04-10 22:35:03 · 1211 阅读 · 0 评论 -
JAVA命令大全
1、java.exe:======================运行java程序,这个相信每一位用Java的人知道了。2、javac.exe:======================编译的Java程序,生成.class文件3、javaw.exe:======================功能:跟java命令相对的,可以运行.class文件,主要用来执行图形界转载 2015-04-22 15:24:55 · 583 阅读 · 0 评论 -
Java中高精度问题的bigdecimal解决方式
最近有空写了点老的J2EE的代码,发现有一个十分有意思的问题,当用Hibernate从数据库里把浮点数读取出来的时候做一些比如累加的工作,例如 summary 或者递减之类的,就会发现在最后的结果中会出现些许问题。如:3.41+5.2+56.2+23.3+... (这类两位小数的价钱),结果会出现103.00000000000001这种结果,但是人算的话反而会得出正常的数据。看样子doub转载 2015-04-13 14:42:00 · 1023 阅读 · 0 评论 -
使用Sun的FtpClient做FTP上传下载
001.//使用Sun的FtpClient做FTP上传下载002.import sun.net.*;003.import sun.net.ftp.*;004.import java.io.*;005.import java.util.*;006./**007.FTP远程命令列表008.USER PORT RETR ALL转载 2015-04-20 18:54:32 · 1143 阅读 · 0 评论 -
java异常笔记
Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception。 Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。 Exception:表示可恢复的例外,这是可捕捉到的。Java提供了两类主要的异常:runtime原创 2015-05-12 23:58:08 · 341 阅读 · 0 评论