JAVA高级_JVM虚拟机
hjm4702192
这个作者很懒,什么都没留下…
展开
-
亲身实践,JAVA最优良的Adapter模式--适配器模式
网上关于JAVA的适配器模式例子有很多,但真的有少实在不怎么样,看也不懂。自己总结了一个在性能和结构上都很容易理解的Adapter模式。Adapter模式也叫适配器模式,是由GoF提出的23种设计模式的一种。Adapter模式是构造型模式之一,通过Adapter模式,可以改变已有类(或外部类)的接口形式。在大规模的系统开发过程中,我们常常碰到诸如以下这些情况:我们需要实现某原创 2012-07-04 11:11:13 · 852 阅读 · 0 评论 -
Java排序算法 归并排序
归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一原创 2012-12-11 16:19:09 · 653 阅读 · 0 评论 -
Java排序算法 堆排序
1991年计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(RobertW.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了著名的堆排序算法( Heap Sort)。本文主要介绍堆排序用Java来实现。AD:堆积排序(Heapsort)是指利用堆积树(堆)这种资料结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。堆排序是不稳定的原创 2012-12-11 16:19:11 · 769 阅读 · 0 评论 -
java tcp 端口监听
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Sock原创 2012-12-11 16:23:28 · 3589 阅读 · 0 评论 -
JAVA DES
DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准 ,是1972年美国IBM 公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data、mode。 ke转载 2013-01-31 16:43:27 · 866 阅读 · 0 评论 -
socket error 错误类型列表
SOCKET_E2BIG 参数列表太长SOCKET_EACCES 没有许可权限SOCKET_EADDRINUSE 地址已经被使用SOCKET_EADDRNOTAVAIL 不能解析请求的地址SOCKET_EADV 广播(广告)错误SOCKET_EAFNOSUPPORT Address family不支持的协议SOCKET_EAGAIN 资源暂时不能获得SOCKET_EAL原创 2012-12-11 16:22:44 · 1966 阅读 · 0 评论 -
JAVA MessageDigest MD5 SHA
MD5是常用的加密算法,也经常用于校验信息完整,如文件的完整性。用术语讲,MD5是一种消息摘要算法(Message Digest Algorithm)。另外还有一种常用的消息摘要算法SHA1。如果想了解这些的话,可以去百度百科:MD5、SHA1、消息摘要算法。 Java已经实现了MD5、SHA1算法。利用java.security.MessageDigest类就可原创 2013-01-31 10:49:37 · 2060 阅读 · 0 评论 -
log4j 日志限制大小 拆分成30个 不按日期分日志 按大小拆分 按日期产生
先说一下按日期产生,不解释,大家都懂,这种方法的缺点就是很吃硬盘空间log4j.rootLogger=INFO,logfile,stdoutlog4j.logger.java.sql=DEBUG,sqllog#log4j.additivity.java.sql=false#velocity print outlog4j.logger.org.apache.velocity=E原创 2014-04-22 10:11:43 · 5532 阅读 · 2 评论 -
Java 多线程 死锁 隐性死锁 数据竞争 恶性数据竞争 错误解决深入分析 全方向举例
Java 多线程 死锁 隐性死锁 数据竞争 恶性数据竞争 错误解决深入分析 全方向举例原创 2014-04-09 11:29:46 · 14828 阅读 · 0 评论 -
hashmap 循环取出所有值 取出特定的值 两种方法
//第一种 Iterator menus = menu.iterator(); while(menus.hasNext()) { Map userMap = (Map) menus.next(); System.out.print(userMap.get("link") + "\t"); // System.out.print(u原创 2014-10-13 14:44:53 · 4950 阅读 · 0 评论 -
阿里java面试题
(1)JVM如何加载一个类的过程,双亲委派模型中有哪些方法?类的生命周期:加载、(验证、准备、解析)链接、初始化、使用和卸载七个阶段其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持 Java 语言的运行时绑定(也成为动态绑定或晚期绑定)。加载阶...转载 2018-03-19 16:24:39 · 737 阅读 · 0 评论 -
StringBuffer内容清空效率比较
在开发程序的时候,经常使用StringBuffer来进行字符串的拼接。如果在循环中来反复的做字符串拼接时,会清空Stringbuffer中的内容,然后再拼接新的字符串信息。例如:StringBuffer sb = new StringBuffer("");for (UserInfo ui : userInfoList) { sb = new StringBuffer("");...转载 2018-06-13 00:12:08 · 1635 阅读 · 0 评论 -
HttpClient HttpURLConnection
1. GET请求与POST请求HTTP协议是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。在介绍HttpURLConnection前,我们还是再来说一下URL请求最常用的两种方式:GET请求与POST请求。GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&am...转载 2018-07-27 10:29:39 · 660 阅读 · 0 评论 -
关于HTTP 请求方式: GET和POST的比较的本质
什么是HTTP?超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议。HTTP在客户端和服务器之间以request-responseprotocol(请求-回复协议)工作。GET方法:使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:/test/demo_form.js...转载 2018-07-27 11:01:16 · 734 阅读 · 0 评论 -
Java排序算法 希尔排序
希尔排序(ShellSort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。本文主要介绍希尔排序用Java是怎样实现的。AD: 希尔排序(缩小增量法)属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序。希尔排序并不稳定,O(1)的额外空间,时间复杂度为O(N*(logN)^2)。最坏的情况下的执行效原创 2012-12-11 16:19:06 · 632 阅读 · 0 评论 -
Java排序算法_选择排序
选择排序的基本操作就是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。算法不稳定,O(1)的额外的空间,比较的时间复杂度为O(n^2),交换的时间复杂度为O(n),并不是自适应的。在大多数情况下都不推荐使用。只有在希望减少交换次数的情况下可以用。基本思想n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:①初原创 2012-12-11 16:18:59 · 660 阅读 · 0 评论 -
HashMap和Hashtable的详细区别
1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2 HashTable是线程安全的一个Collection。HashMap是Hashta原创 2012-07-09 15:37:50 · 820 阅读 · 0 评论 -
线程安全
什么是线程安全,个人在线程中使用共享资源时,能够保证共享资源在任何时候都是原子的、一致的,这样的线程就是线程安全的线程首先来介绍一下共享资源的类型(这是我自己分类的,为了后文好解释),共享资源从其类型可以分为三类(下文讲到变量一律指类变量或实例变量,不再特别指出):1. 独立的基本类型共享资源,如一个简单的int变量,例: public classCls1 {原创 2012-07-10 10:03:34 · 691 阅读 · 0 评论 -
Java排序算法 快速排序
排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。下面让我们一起来看快速排序。AD:快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有原创 2012-08-02 10:04:39 · 1165 阅读 · 0 评论 -
Java排序算法 归并排序
归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一原创 2012-08-02 10:08:10 · 630 阅读 · 0 评论 -
Java 字节数组 对比 低速 指针快速
如何才能快速比较两个字节数组呢?我将问题描述成下面的接口: public int compareTo(byte[] b1, int s1, int l1, byte[] b2, int s2,int l2);最直观的做法是同时遍历两个数组,两两比较。 public int compareTo(byte[] buffer1, int offset1, int leng原创 2012-08-03 13:27:56 · 1324 阅读 · 0 评论 -
java getInstance
getInstance方法就是引用自身的意思,相对于NEW。也称单例模式 可以防止 数据的冲突,节省内存空间实例:import com.groupdai.pay.PaymentServer;public class FingerBankServer { public static void main(String[] argc) {原创 2012-07-19 13:14:03 · 1052 阅读 · 0 评论 -
亲身实践,JAVA最优良的Adapter模式--适配器模式
网上关于JAVA的适配器模式例子有很多,但真的有少实在不怎么样,看也不懂。自己总结了一个在性能和结构上都很容易理解的Adapter模式。Adapter模式也叫适配器模式,是由GoF提出的23种设计模式的一种。Adapter模式是构造型模式之一,通过Adapter模式,可以改变已有类(或外部类)的接口形式。在大规模的系统开发过程中,我们常常碰到诸如以下这些情况:我们需要实现某原创 2012-07-25 15:05:44 · 965 阅读 · 0 评论 -
java 一个线程控制另一个线程
两种方法,一个用标记变量,另一个用语法不多说,直接代码:主方法一: send s = new send(); s.start(); receive r = new receive(); r.start();class send extends Thread { public v原创 2012-07-10 15:19:19 · 3051 阅读 · 0 评论 -
Java排序算法 希尔排序
希尔排序(ShellSort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。本文主要介绍希尔排序用Java是怎样实现的。AD: 希尔排序(缩小增量法)属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序。希尔排序并不稳定,O(1)的额外空间,时间复杂度为O(N*(logN)^2)。最坏的情况下的执原创 2012-08-02 10:09:01 · 689 阅读 · 0 评论 -
Java排序算法 堆排序
1991年计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(RobertW.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了著名的堆排序算法( Heap Sort)。本文主要介绍堆排序用Java来实现。AD:堆积排序(Heapsort)是指利用堆积树(堆)这种资料结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。堆排序是不稳定的排序方原创 2012-08-02 10:06:16 · 743 阅读 · 0 评论 -
java ssl https 连接详解 生成证书
我们先来了解一下什么理HTTPS1. HTTPS概念 1)简介 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。这个系统的最初研发由原创 2012-08-30 10:58:32 · 3165 阅读 · 0 评论 -
Java NIO原理和使用
ava NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。Java NIO非堵塞技术实际是采取Reac原创 2012-09-05 17:10:50 · 991 阅读 · 0 评论 -
Java排序算法 插入排序
有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到插入排序法。本文主要介绍的是插入排序的java实现。AD:插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。比较和交换的时间复杂度为O(n^2),算法自适应,对于数据已基本有序的情况,时间复杂度为O(n),算法稳定,开销原创 2012-12-11 16:18:57 · 649 阅读 · 0 评论 -
centos7 编译 openjdk8
编译前注意问题1、编译openjdk时,需要提供一个启动jdk,很奇怪的慨念,我用JDK 1.7,即boot JDK.boot JDK需为当前编译的openjdk的上一个版本。例如这里编译的openjdk8,就要用jdk7作为启动jdk; 环境、工具的准备 OS:CentOS 7 64bit; OpenJDK:openjdk-8u40; Boot JDK:jdk-1.7.0.14;...原创 2018-09-04 14:34:03 · 3982 阅读 · 0 评论