
java
老茶客的烟斗
这个作者很懒,什么都没留下…
展开
-
java基础数据及类型转换
基础数据类型总结:一、八中基础数据类型占用字节类型占用字节取值范围默认值封装类boolean1位(不是一个字节)true/falsefalseBooleanchar20~65535\u0000Charac...原创 2017-07-19 20:21:31 · 192 阅读 · 0 评论 -
Java类加载过程知识点总结
1、java执行时是动态加载class的,不是一次性加载完。 2、classloader的分层:最上一层是bootclassLoader,然后是扩展(Extesion classloader)、应用(Application classLoader,用户自定义的class)、其他loader注意:classLoader在load class的时候首先找上一层的loader是不是lo...2017-11-07 14:26:12 · 133 阅读 · 0 评论 -
Java常用设计模式总结
Java常用设计模式总结 单例,又分5种:1、初级懒汉模式,只适合单线程环境(不好)2、懒汉式,多线程的情况可以用(性能不好,每个线程执行到时都会被资源的锁给限制)3、懒汉式,双重校验锁(还可以)4、饿汉模式(天生线程安全,建议使用)缺点:没有lazy loading的效果,从而降低内存的使用率5、静态内部内。(建议使用)优点:达到了lazy loading...原创 2017-11-05 22:22:16 · 150 阅读 · 0 评论 -
(转)Java 堆和栈的区别
(原文转自:http://blog.youkuaiyun.com/u011546655/article/details/52170470) 1、概述在Java中,内存分为两种,一种是栈内存,另一种就是堆内存。2、堆内存1.什么是堆内存?堆内存是是Java内存中的一种,它的作用是用于存储Java中的对象和数组,当我们new一个对象或者创建一个数组的时候,就会在堆内存中开辟一段空间...原创 2017-10-31 14:49:16 · 165 阅读 · 0 评论 -
为什么在重写 equals方法的同时必须重写 hashcode方法
我们都知道Java语言是完全面向对象的,在java中,所有的对象都是继承于Object类。其 equals 方法比较的是两个对象的引用指向的地址,hashcode 是一个本地方法,返回的是对象地址值。Ojbect类中有两个方法equals、hashCode,这两个方法都是用来比较两个对象是否相等的。为何重写 equals方法的同时必须重写 hashcode方法呢先看看一个java的约定...原创 2017-10-29 15:23:08 · 274 阅读 · 0 评论 -
ArrayList clear vs removeAll
(转自:http://blog.youkuaiyun.com/liuxiao723846/article/details/53908870) 很多时候为了重用我们会想要重置一个ArrayList,这里的重置是指清空列表或移除列表所有的元素。在Java中,有两个方法可以帮助我们实现重置clear或removeAll。在列表长度很小的情况下(eg:10或100个元素),可以放心的使用这两种方法。但如果列...原创 2017-10-27 13:49:24 · 237 阅读 · 0 评论 -
java基础数据类型自动装箱拆箱
java基础数据类型自动装箱拆箱 一、定义:public class test { public static void main(String[] args) { Integer a = 3;//装箱 int b = a;//拆箱 }} 查看Integer的源码,可知:基础类型的包装类,装箱,实际调用的...2017-10-26 20:01:01 · 147 阅读 · 0 评论 -
ArrayList & LinkedList 区别对比
ArrayList & LinkedList 区别对比: 一、源代码: public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable pub...2017-10-25 11:18:00 · 213 阅读 · 0 评论 -
java容器知识总结——这一篇就够了
容器知识总结: 1、Collection接口Collection接口中的常用方法: Size()isEmpty()clear()contains()add()remove()iterator():返回其指针 2、List(ArrayList & LinkedList):继承自Collection,增加了以下常用方法: get(...原创 2017-10-25 08:36:11 · 159 阅读 · 0 评论 -
java sleep与wait方法区别
主要区别如下:1、每个对象都有一个锁来控制同步访问,Synchronized关键字可以和对象的锁交互,来实现同步方法或同步块。sleep()方法正在执行的线程主动让出CPU(然后CPU就可以去执行其他任务),在sleep指定时间后CPU再回到该线程继续往下执行(注意:sleep方法只让出了CPU,而并不会释放同步资源锁!!!);wait()方法则是指当前线程让自己暂时退让出同步资源锁,以便其...2017-10-11 11:46:12 · 270 阅读 · 0 评论 -
java线程synchronized梳理
synchronized有两种,一种是锁定方法,一种是锁定代码块,区别仅是锁定代码块更加灵活,性能消耗更少。 下面举两个例子,第一个:public class TestSynchronizedMethod1 implements Runnable{ /** * 当两个并发线程访问同一个对象object中的这个synchronized(t...2017-10-10 20:26:45 · 113 阅读 · 0 评论 -
java线程的生命周期
JAVA基础知识之多线程——线程的生命周期(状态)(转自:http://www.cnblogs.com/fysola/p/6066290.html)线程有五个状态,分别是新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)。新建和就绪程序使用new会新建一个线程,new出的对象跟普通对象一样,JVM会为其分配内存,初...原创 2017-10-10 16:04:41 · 140 阅读 · 0 评论 -
程序、进程、线程的区别与联系(转)
程序、进程、线程的区别与联系(转)(本文转自:http://blog.youkuaiyun.com/woaigaolaoshi/article/details/51039505)程序并不能单独执行,只有将程序加载到内存中,系统为他分配资源后才能够执行,这种执行的程序称之为进程,也就是说进程是系统进行资源分配和调度的一个独立单位,每个进程都有自己单独的地址空间。所以说程序与进程的区别在于,程序是指令...原创 2017-10-10 13:34:36 · 206 阅读 · 0 评论 -
TCP&UDP&Socket
Tcp三次握手: 或者: 如上,需要第三次握手的原因在于Server端在第二次握手(发出信息)后并不知道对方是否能够接收、己方的发送功能是否正常。但此时数据的单向通道已经建立,对于Client来说,已经确认了Server端可以接收信号,因此可以单向给Server发送数据了。 示例: 谍战片中,我方人员需要向我方站点传递敌军情报,因此通过各种方式(如刷...原创 2017-10-08 16:19:17 · 159 阅读 · 0 评论 -
java动态代理实现原理
java动态代理与反射 引言:java的代理分为静态代理与动态代理,静态代理有其固有缺点,即代码量大,缺乏灵活性。故我们主要关注的还是动态代理。而动态代理是基于java反射机制实现的一种代理模式。动态代理的用处:动态代理的用处很广。比如,我们常用的spring的AOP,即是通过动态代理技术来实现的。 要理解动态代理,首先需要了解java反射的基本概念及API方法。...2017-11-08 14:51:58 · 268 阅读 · 0 评论