
java
文章平均质量分 76
TimeTDIT
不驰于空想,不骛于虚声。
展开
-
java中int和Integer的区别
关于int和Integer类型的比较转载 2017-10-15 23:02:11 · 338 阅读 · 0 评论 -
Java平台类库并发基础构建模块
Java平台类库包含了大量的并发基础构建模块,我们简单介绍其中的一部分。 1、同步容器类 同步容器类包括Vector、Hashtable以及它们的子类,还有通过Collections.synchronizedXxx的一些工厂方法创建的同步封装器类。 对于这类同步容器类,它们是线程安全的,但是它们实现线程安全的方式是对其方法使用synchronized关键字进行修饰,当原创 2018-02-01 01:42:05 · 483 阅读 · 0 评论 -
Java中的数组互相赋值
本文探讨Java中数组中的赋值问题。在探讨这个问题之前必须先弄懂一件事,Java中的数组到底是什么东西?是类,是对象,还是什么其他奇奇怪怪的东西。答案是:Java中的数组本质上是对象。但是这个对象不是通过某个类实例化来的,而是JVM创建的,这也就不难解释对于一个数组对象arr,我们可以直接通过arr.length访问数组的长度。 现在我们知道了Java中数组本质上是对象,那么我们来看一下原创 2018-01-20 18:13:16 · 36329 阅读 · 2 评论 -
Java同步工具类
上一篇文章我们介绍了一些Java平台类库的并发基础构建模块,介绍了一种Java同步工具类--阻塞队列(链接点击此处)。实际上还有一些其他的同步工具类,本文将介绍这些除阻塞队列之外的同步工具类,信号量、栅栏、闭锁。 一、闭锁 CountDownLatch 闭锁是一种同步工具类,可以延迟线程的进度直到其达到终止状态。闭锁相当于门闩,闭锁到达结束状态之前,这扇门一直是关闭的原创 2018-02-04 19:47:43 · 990 阅读 · 0 评论 -
私人MEMO--JVM与并发
本文是私人MEMO,仅仅是大纲作用。因为时间关系没有整理排版,有时间会进行重写和扩充。类加载过程为:加载、连接(包括验证、准备、解析)、初始化,类加载在Java中是在程序运行阶段完成的,这也使得Java程序更灵活。 加载:1、通过全限定名获得这个类的二进制字节流 2、将这个字节流代表的静态存储结构转化为方法区的运行时数据结构 3、在内存中生成一个代表这个类的java.lang.Cl...原创 2018-02-09 17:56:28 · 283 阅读 · 0 评论 -
私人MEMO--java.util.concurrent
以下是我私人的Memo,由于时间问题排版有点散漫,过段时间会整理好。ConcurrentHashMap//分段锁 SegmentCopyOnWriteArrayList//写入时复制 会出现脏数据 使用ReentrantLock实现CopyOnWriteArraySet//基于CopyOnWriteArrayList实现 唯一不同在于add时调用CopyOnWriteArrayList的addIf...原创 2018-02-07 16:19:28 · 278 阅读 · 0 评论 -
私人MEMO--性能调优 包括JVM常用调优和系统调优
本文是我的私人Memo,仅仅是大纲备忘作用。一段时间后我会整理好。JVM调优 主要是内存方向的调优 各个代的大小,GC策略等等。(GC会导致应用线程挂起 严重影响性能 降低GC导致的应用暂停时间很有必要) JVM内存 = 新生代+老年代+持久代(方法区) -Xms :初始JVM内存大小 -Xmx :最大JVM内存大小 这俩一般一样 避免运行期间内存变大 -Xmn :年...原创 2018-02-07 17:18:35 · 266 阅读 · 0 评论 -
Java中的Error和Exception
本文转载自http://blog.youkuaiyun.com/goodlixueyong/article/details/47122487Error和Exception的联系继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception。Error和RuntimeException及其子类称为未检查异常(Unchecked exception)...转载 2018-02-07 23:56:04 · 462 阅读 · 0 评论 -
InputStream和OutputStream
文章转载自:http://blog.youkuaiyun.com/dww410/article/details/53990941.InputStream ◇ 从流中读取数据: int read( ); //读取一个字节,返回值为所读的字节 int read( byte b[ ] ); //读取多个字节,放置到字节数组b中,通常读取的字节数量为b的长度,返回值为实际读取的字节的数量转载 2018-02-07 00:47:10 · 508 阅读 · 0 评论 -
自旋锁、排队自旋锁、MCS锁、CLH锁
转载自https://coderbee.net/index.php/concurrent/20131115/577自旋锁(Spin lock)自旋锁是指当一个线程尝试获取某个锁时,如果该锁已被其他线程占用,就一直循环检测锁是否被释放,而不是进入线程挂起或睡眠状态。自旋锁适用于锁保护的临界区很小的情况,临界区很小的话,锁占用的时间就很短。简单的实现import java.util.concurren...转载 2018-02-10 00:40:54 · 330 阅读 · 0 评论 -
java的动态代理机制详解
转载自https://www.cnblogs.com/xiaoluo501395377/p/3383130.htmljava的动态代理机制详解在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而...转载 2018-02-13 01:42:20 · 282 阅读 · 0 评论 -
Java中的反射常用方法
转载自https://www.cnblogs.com/sargeles/p/6605945.htmljava通常是先有类再有对象,有对象我就可以调用方法或者属性。反射其实是通过Class对象来调用类里面的方法。通过反射可以调用私有方法和私有属性。大部分框架都是运用反射原理。 如何获得Class对象:1. 通过一个对象获得完整的包名和类名packa转载 2018-02-07 13:47:44 · 284 阅读 · 0 评论 -
java中的四种引用(强、弱、软、虚)和GC的关系
Java中的引用类型和垃圾回收 强引用Strong References 强引用是最常见的引用: 比如:StringBuffer buffer = new StringBuffer(); 创建了一个StringBuffer类的对象,并用一个变量buffer存储对这个对象的引用。这就是个强引用。 变量持有的是这个对象的引用。通常,引用是一个对象的存储地址。转载 2017-12-03 10:28:33 · 3776 阅读 · 0 评论 -
Java中的基本数据类型类型提升现象
本文转载自http://blog.youkuaiyun.com/wang740209668/article/details/57416778一般来说,在运算的时候,要求参与运算的数据的类型须一致,这就好比我们能用1+1进行运算,而不能用1+a进行运算,而在java中更为严格,同为数值的数字有byte short int long 四种不同的类型,它们在运算的时候也要求类型一致,如果不一致,就涉及到我们今天要说...转载 2018-02-08 09:25:57 · 339 阅读 · 0 评论 -
23种设计模式的简单实现(上 1-12)
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。本文将对23种设计模式每个都进行一个简单的说明和实现。 设计模式很大程度上是面向对象设计原则的体现,首先来看一下这些oop设计原则:创建类的设计模式一、工厂方法模式 工厂父类(接口)负责定义产品对象的公共接口,而子类工厂则负责创建具体的产品对...原创 2018-02-14 01:12:44 · 604 阅读 · 1 评论 -
23种设计模式的简单实现(下 13-23)
我的上一篇文章介绍了第1-12种设计模式,现在介绍剩下的设计模式,上篇文章链接:http://mp.blog.youkuaiyun.com/postedit/79321122行为型模式十三、策略模式定义一系列算法,把它们一个个封装起来,并且使它们可替换。本模式使得算法可独立于使用它的客户而变化。这个模式实际上在《effective java》中提及过,本质上是用宿主类模拟其他语言的函数指针来进行传递函数。代码...原创 2018-02-15 18:07:46 · 448 阅读 · 0 评论 -
面试准备私人MEMO
本文仅仅是私人MEMO,仅仅起到私人记录大纲之用AbstractQueuedSynchronizer,简称AQS,是Java并发包里一系列同步工具的基础实现,原理是根据状态位来控制线程的入队阻塞、出队唤醒来处理同步。 AQS内部维护一个CLH队列来管理锁。线程会首先尝试获取锁,如果失败,则将当前线程以及等待状态等信息包成一个Node节点加到同步队列里。接着会不断循环尝试获取锁(条件是当前节点...原创 2018-02-21 02:59:57 · 546 阅读 · 0 评论 -
Java为什么两个值相等的对象==比较返回false而两个值相等的不同类型的的基本数据类型返回true
Java为什么两个值相等的对象==比较返回false而两个值相等的不同类型的的基本数据类型返回true原创 2017-12-15 14:17:36 · 17012 阅读 · 0 评论 -
Java中的正则表达式
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式是由普通字符及特殊字符组成的文字模式。原创 2017-12-15 09:27:28 · 502 阅读 · 0 评论 -
java文件路径中的/与\\
java中的文件路径的/和\\原创 2017-10-05 21:01:49 · 16953 阅读 · 0 评论 -
java中==与equals的区别
java中==与equals的区别转载 2017-10-05 16:25:33 · 4929 阅读 · 0 评论 -
java实现基础的一对一和一对多的TCP通信
java实现简单的tcp一对一及一对多连接。原创 2017-10-02 23:13:05 · 13988 阅读 · 0 评论 -
java中的反射及其优点
反射是java的一大特性,而且是有些框架实现了IoC/DI的原理,本文就来探讨下java中的反射及其优点。 首先是普通的java静态类加载,java静态类是通过new实现的,在编译时刻就要加载所有可能用到的类,这样实际上存在一些缺点的,比如只要有一个类没有找到或者出现重大的问题编译便不会通过,导致其他存在的类也无法使用。原创 2017-09-22 00:07:06 · 28281 阅读 · 2 评论 -
依赖注入(DI)的三种实现方式
本文来探讨一下依赖注入的三种实现方式是哪三种,Spring的支持又怎么样。首先,依赖注入(DI)的实现方式有三种:设值注入、构造方法注入、接口注入,下面来看看这三种注入方式在Spring中的支持怎么样。1、设值注入。 ①、新建一个项目 ②、新建一个User类,实现setter、getter方法package com.bean;public class User {原创 2017-09-21 10:28:24 · 26468 阅读 · 4 评论 -
java读取一个路径下的所有文件
最近使用ssh框架的时候需要把后缀为.hbm.xml的文件配置进spring的配置文件,但是由于这样以.hbm.xml结尾的文件太多,不可能一个一个去写,于是我便尝试使用java去自动生成。原创 2017-09-20 14:22:44 · 13829 阅读 · 3 评论 -
Java的几种对象(PO,VO,DAO,BO,POJO)解释
Java的几种对象(PO,VO,DAO,BO,POJO)解释转载 2017-09-19 16:55:06 · 9552 阅读 · 0 评论 -
转载--一篇关于java中final关键字的很详细的文章
java中的final关键字转载 2017-10-17 21:11:04 · 226 阅读 · 0 评论 -
老生常谈--java中到底是按值传递还是按引用传递
java中的参数传递到底是值传递还是引用传递?转载 2017-10-18 13:53:19 · 3052 阅读 · 1 评论 -
深入理解为什么String str = new String("abc");是创建了两个对象
为什么String str = new String("abc");是创建了两个对象转载 2017-10-18 15:20:12 · 3002 阅读 · 0 评论 -
为什么要重写java中对象的equals方法和hashCode方法以及如何重写
为什么要重写hashCode和equals方法以及如何重写原创 2017-11-12 20:43:30 · 4463 阅读 · 5 评论 -
java中Map、JSONArray、JSONObject的关系及转换以及json字符串与json对象的转化
java中Map、JSONObject、JSONArray的关系及转换原创 2017-09-26 11:51:41 · 23834 阅读 · 0 评论 -
Java获取泛型的类型参数
在 Effective Java其他碎片建议3 这篇博客中,我们提到了泛型,也说了泛型的优点以及如何最大化发挥它的优点。我们也提到了泛型的类型参数只在编译阶段存在,在运行期间就被被擦除(erasure)。那如何获取泛型的参数类型呢?下面看代码:package com.test;import java.lang.reflect.Field;import java.lang.reflect.Pa...原创 2017-11-21 12:13:28 · 2838 阅读 · 0 评论 -
匿名内部类使用的外部变量为什么要是final的
匿名内部类内部,方法和作用域内的内部类内部使用的外部变量必须是 final 的是为什么?转载 2017-11-30 21:42:55 · 883 阅读 · 0 评论 -
<T extends Comparable<? super T>>泛型类型与<T extends Comparable<T>>的区别以及优越性
<T extends Comparable<? super T>>泛型类型与<T extends Comparable<T>>的区别以及优越性转载 2017-11-24 19:49:15 · 1652 阅读 · 0 评论 -
String,StringBuffer,StringBuilder三者的区别
String,StringBuffer,StringBuilder三者的区别转载 2017-11-24 23:18:36 · 436 阅读 · 0 评论 -
Java NIO基础知识
Java NIO基础知识转载 2017-12-13 23:31:47 · 321 阅读 · 0 评论 -
Java中的函数式编程
原文转载自https://www.cnblogs.com/snowInPluto/p/5981400.htmlJDK 8 函数式编程入门[TOC]1. 概述1.1 函数式编程简介我们最常用的面向对象编程(Java)属于命令式编程(Imperative Programming)这种编程范式。常见的编程范式还有逻辑式编程(Logic Programming),函数式编程(Functional Prog...转载 2018-04-07 14:43:56 · 462 阅读 · 0 评论