![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
ch200818
这个作者很懒,什么都没留下…
展开
-
在Tomcat和Eclipse进行远程调试的配置
在做远程调试时,在windows系统和非windows系统下的配置,Tomcat中会有所差别,具体如下: 第一步、配置tomcat 一、 在windows系统中: 打开%CATALINE_HOME%/bin下的文件catalina.bat,加入下面这行: set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -...2008-03-03 17:06:50 · 61 阅读 · 0 评论 -
Java数据类型及对应取值范围
在Java中,数据类型分为两大种:基本数据类型(值类型)和包装类型(引用数据类型)。基本数据类型不是对象,不能调用toString()、hashCode()、getClass()、equals()等方法。 8种基本数据类型-----8种包装类型 整型: byte Byte 【-128,127】 1个字节(【-2的7次方,2的7次方-1】) 一个字节有8位 ...原创 2017-02-22 19:10:12 · 118 阅读 · 0 评论 -
io基本理解
1、以内存为媒介理解io的输入输出,往内存写数据就是输入,往内存取数据就是输出。 2、从源读取数据到内存:InputStream或者Reader。 3、把内存中的数据写到源:OutputStream或者Writer。 ...原创 2017-02-21 19:20:31 · 468 阅读 · 0 评论 -
hash
在Hashtable类中得到key的hash值后会进行如下运算: hash & 0x7FFFFFFF 原因是得到的hash值可能是个负数,而0x7FFFFFFF表示int类型的最大值,0x7FFFFFFF的二进制表示如下: 0111 1111 1111 1111 1111 1111 1111 1111 首位表示符号位,0表示正整数,这样和hash值进行‘与’操作时得到一个正...原创 2017-10-09 10:11:45 · 134 阅读 · 0 评论 -
LinkedHashMap源码解读
LinkedHashMap继承了HashMap,采用双向链表结构,数据顺序是可预知的 void transfer(HashMap.Entry[] newTable, boolean rehash) 以及 void addEntry(int hash, K key, V value, int bucketIndex) { super.addEntry(hash, key...原创 2016-12-24 15:46:47 · 81 阅读 · 0 评论 -
HashSet源码解读
HashSet是通过HashMap来实现数据存放的,即把元素作为HashMap的key存放的,取出的数据是无序的,即存放的顺序与遍历输出的顺序不是对应的关系。原创 2016-12-24 15:37:39 · 60 阅读 · 0 评论 -
HashMap源码解读
HashMap保存数据的结构是数组+单向链表,它集成AbstractMap类以及实现Map接口: public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { //初始化大小16 ...原创 2016-12-24 15:35:26 · 74 阅读 · 0 评论 -
ArrayList源码解读
ArrayList继承了AbstractList类记忆实现了List接口,使用数组保存元素 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable { ...原创 2016-12-24 14:48:25 · 67 阅读 · 0 评论 -
LinkedList源码解读
LinkedList 存放数据通过双向链表实现: 写道 private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this...原创 2016-12-24 14:34:25 · 71 阅读 · 0 评论 -
系统进程占用CPU过高的处理流程
1、jps -v列出java进程; 2、top列出所有进程及占用CPU情况,结合上一步就可以找出占用CPU过高的java进程pid; 3、top -H -p pid,查看进程中线程占用CPU的情况; 4、printf "%x\n" tid,把线程ID转换为16进制; 5、使用jstack -l pid > pid.dump命令dump出进程的堆栈信息到文件; 6、在文件中找到线程...原创 2017-05-11 19:53:38 · 436 阅读 · 0 评论 -
java并发
Semaphore:用在有多少个线程可以同时访问一个资源,如控制流量; CountDownLatch:一般用在等所有线程完成某组操作之后才做接下来的任务,如并发读取一个数据文件,要等所有线程完成后才去做统计数据操作。 CyclicBarrier:有点类似spring中的切面编程,在一个线程的一个切面切入一块逻辑。 ...原创 2016-12-22 20:02:19 · 60 阅读 · 0 评论 -
jvm内存结构图
从图可以看出,jvm内存模型由三部分组成: 堆:存放对象实例、数组; 方法区:也叫持久代,存放类的信息(类名、方法、字段)、静态变量、编译后的代码; 本地方法栈:也叫线程栈,存放引用(指向对象或数组在堆中的位置)、基本类型变量。 堆内存划分: 新生代,包含了Eden区和Survivor区; 老年代。 各区存放对象: Eden区:存放新建的或短期的对象; Survi...原创 2017-04-14 14:12:16 · 196 阅读 · 0 评论 -
java装箱和拆箱
在java中有byte、short、int、float、double、long、boolean7中基本类型即其对应的包装类型。在java SE5之前要想生产一个基本类型数值的对象,必须像下面这样: Integer count = new Integer(1); 而从java SE5开始提供了自动装箱功能,即要生成一个基本类型数值的对象,只要像下面这样即可: Integer count =...原创 2017-03-21 11:44:34 · 81 阅读 · 0 评论 -
srping 实例作用域
在spring中是通过bean标签的scope属性设置bean的作用域的: 1、默认情况下,scope="singleton",那么该bean是单例; 2、scope="prototype",任何一个实例都是新的实例; 3、scope="request",在web应用中,每个实例的作用域在request中; 4、scope="session",在web应用中,每个实例的作用域在sess...2016-09-23 09:16:59 · 104 阅读 · 0 评论 -
Ant使用说明
Ant的使用分以下几步: (操作系统:Windows) 一、Ant下载:http://ant.apache.org/bindownload.cgi,最新版本为apache-ant-1.7.0-bin.zip; 二、安装Ant: 假设安装在d盘:D:\apache-ant-1.7.0,直接解压就行。 设置ANT_HOME系统变量和PATH系统变量: set ANT_HOME= D:\...2008-03-03 17:14:44 · 172 阅读 · 0 评论 -
聊聊并发 Java SE1.6中的Synchronized
引用:http://www.infoq.com/cn/articles/java-se-16-synchronized原创 2017-03-05 16:03:33 · 105 阅读 · 0 评论