levelone_java
muskter
这个人很懒
展开
-
JAVA单例模式
几乎每次面试,面试官都会抛过来一张纸说:实现一个单例。那么结合网上的资料,总结一下单例模式好了。 概念介绍:确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例;Java中单例模式是一种常见的设计模式,常见的单例模式的写法有懒汉式单例、饿汉式单例。 单例核心思想:这个类只能有一个实例,实例的唯一一次创建在类内部完成。同时提供public的getInstance方原创 2016-06-24 13:51:33 · 263 阅读 · 0 评论 -
Java-内部类(一)
一、什么是内部类Java中可以把一个类的定义放在另一个类的定义的内部,这就是内部类。他和类的成员方法,成员变量对象的方法一样,可以为外围类的功能实现提供支持,允许编程人员把分散的逻辑组合在一起。内部类与组合以及方法的调用不同:内部类提供了代码的隐藏机制:内部类的可见性可以得到控制;此外内部类可以直接访问外围类的属性和方法,提供了低成本的交流机制,可以简化功能的实现(减少很多代码)。相对于内原创 2017-06-29 09:45:09 · 313 阅读 · 0 评论 -
三目运算符的一个坑-自动拆箱
问题描述: Integer a = null; Integer b = true ? a : 0; 执行这个三目表达式后, b等于多少, 理解原因;执行以上两行代码/** * Created by ryan01.peng on 2017/7/25. */public class TestTern原创 2017-07-25 19:58:06 · 2221 阅读 · 0 评论 -
Java中sleep()方法和wait()方法用法和区别
一、概述 一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作,整个过程开始于一个线程,而最终执行又是另一个线程。前者是生产者,后者就是消费者,这种模式隔离了“做什么”(what)和“怎么做”(How),在功能层面上实现了解耦,体系结构上具备了良好的伸缩性 ,Java就是通过等待和通知机制来实现这种功能的。当一个线程完成了特定的环节时候,就去等待另外的线程执行,第二个线程...原创 2017-07-25 11:49:40 · 2189 阅读 · 1 评论 -
Java传值还是传引用
一、 概述 在编写Java代码时候,对于一个内部或者外部函数的调用,我们总是通过入参和返回值的方式进行数据交换和流转。有时候,我们传递的入参会本身被其他方法修改,有时候我们不得不通过返回值得方式传递处理的结果。那么这里我们就学习一下,具体何时入参会被调用方法修改,何时入参不会被调用的方法所修改。二、 结论写在前面 为了便于阅读,把经过测试推演得到的结论写在前面,原创 2017-06-22 11:44:09 · 529 阅读 · 0 评论 -
ThreadLocal源码分析与使用场景
一、概述ThreadLocal,即线程变量,是一个以ThreadLocal对象为键、任意对象为值的存储结构。这个结构被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上的一个值。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。可以通原创 2017-05-20 18:23:23 · 409 阅读 · 0 评论 -
Java中的volatile关键字
一、概述在并发编程中,volatile关键字和synchronized都会被使用来解决并发问题。volatile修饰的变量,保证了对其他线程的可见性,也就是说:它会保证该变量的修改会立即被更新到主存,当有其他线程需要读取时,其他线程每次使用这个变量也必须去主存中读取新值,也就是说一个线程对该变量的修改对其他线程是立马可见的。参考了:http://www.cnblogs.com/aigongsi/ar原创 2017-05-15 21:21:55 · 285 阅读 · 0 评论 -
参照JDK源码实现一个LinkedList,分析常用的List集合及其适用场景
LinkedList原创 2017-04-21 10:55:39 · 316 阅读 · 0 评论 -
实现一个简略ArrayList, 提供 add(), remove(), size()
实现一个简略ArrayList, 提供 add(), remove(), size()没有考虑太多方面,还请批评指正。接口定义import java.io.Serializable;public interface PArrayListIT> extends Serializable{ public int add(T t); public int remove(原创 2017-04-19 20:50:22 · 546 阅读 · 0 评论 -
事务概念与隔离级别
一、 事务是一系列密切相关的数据库操作的组合,对系统的其他操作而言表现为一个整体。也就是,这一组操作要么全部成功,要么全部失败。事务的四大特性是ACID,也即原子性、一致性、隔离性和持久性。(相关英文定义,参见http://tech.it168.com/a2016/0905/2900/000002900122.shtml)二、 严格的串行可以保证数据操作的正确性,但是在并发下回原创 2017-04-18 19:32:03 · 346 阅读 · 0 评论 -
3DES三重数据加密算法
3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。 3DES算法是指使用双长度(16字节)密钥K=(KL||KR)将8字节明文数据块进行3次DES加密/解密。3DES的密钥是8个字节,但实际上只有7个用上,也就是56位。3DES是用3个或2原创 2017-03-02 09:56:37 · 4912 阅读 · 0 评论 -
反射机制
反射,一种计算机处理方式。是程序可以访问、检测和修改它本身状态或行为的一种能力 反射是Java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高。Java的反射机制的实现要借助于4个类:class,Constructor,Field,Method; 1. Java反射的作用:在Java运原创 2017-01-06 20:03:07 · 308 阅读 · 0 评论 -
拦截器Interceptor
SpringMVC 中的Interceptor拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间.l Interceptor定义1. Interceptor类要直接或者间接实现了Spring 的HandlerInterceptor接口,抽象类Ha转载 2016-12-24 17:01:28 · 298 阅读 · 0 评论 -
Enum 类型
枚举类型(Enumerated Type)被用来将一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。 如何定义 Enum 类型 枚举类型的定义也非常的简单,用 enum 关键字加上名称和大括号包含起来的枚举值体即可,彩虹颜色就可以用新的 enum 方式来重转载 2016-12-21 18:27:20 · 482 阅读 · 0 评论 -
hascode和equals为什么要同时复写—Java源码中的奥秘
在很多编程手册和技术推送文章中,都要求我们在创建一个类型的对象时候,强烈建议实现的其中的几个方法,一般包括:1. toString()2. equals()3. hashcode() 此外,在复写equals方法的时候要同时复写hashCode()方法是为什么呢?首先我们来看一下两个方法在万物之王Object中的定位,与默认实现;/** * Retur原创 2017-07-28 10:03:27 · 1015 阅读 · 0 评论