自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(20)
  • 收藏
  • 关注

原创 java-参数传递(小白篇)

参数传值分为:值传递以及引用传递(地址传递)。(个人理解-勿喷)参数分为基本类型,对象等。1.基本类型(8大类型:int/float/double/char/long/boolean/byte/short)例子:/** * @description: * @author: lc * @time: 2018/2/23 0023 */public class Test01 { pub...

2018-02-23 16:32:58 216

转载 java之动态代理

分类:jdk动态代理和cglib动态代理    jdk动态代理是由java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。反射机制在生成类的过程中比较高效,而asm在生成类之后的相关执行过程中比较高效(可以通过将asm生成的类进行缓存,这样解决asm生成类过程低效问题)。jdk动态代理的应用前提,必须是目标类基于统一的接口。例子:接口:HelloW

2017-10-16 09:38:50 176

转载 JVM学习笔记一 之 调优

一.根据Java虚拟机规范,JVM将内存划分为:1.New(年轻代)2.Tenured(年老代)3.永久代(Perm)(备注:jdk1.8之后 改为元本地元空间)    其中,New和Tenured属于堆内存。-xmx:指定jvm堆内存最大值,-xms:jvm堆初始化值。   永久代,Perm(非堆)不属于堆内存,有虚拟机直接分配,但可以通过-XX:PermSize -XX

2017-10-11 13:54:53 208

转载 JVM学习笔记一 之 内存泄露与内存溢出

内存溢出(memory overflow):程序运行过程中无法申请到足够的内存而导致的一种错误。垃圾回收后,仍然无内存空间容纳新的Java对象的情况。内存泄露(memory leak):内存申请后,用完没有释放,造成可用内存越来越少,从而降低性能。即被分配的对象可达但已无用从定义上可以看出内存泄露是内存溢出的一种诱因,不是唯一因素。可能发生内存溢出情况例子:

2017-10-11 09:12:38 214

转载 spring之applicationContext、beanFactory

1.ApplicationContext 是 BeanFactory接口的子接口2.beanFactory:        BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));          HelloService helloService4 =

2017-10-07 16:45:02 242

转载 spring之闲谈

1.BeanFactory和ApplicationContext有什么区别 答:1.beanFactory是接口,applicationContext继承beanfactory接口,并添加了自己的一些方法:监听器、国际化、aop等         2.applicationContext三种实现:           1):ClassPathXmlApplicationContex(c

2017-10-07 11:22:24 226

转载 锁之reentrantlock

重入锁(ReentrantLock)是一种递归无阻塞的同步机制。ReenTrantLock可重入锁(和synchronized的区别)总结可重入性:从名字上理解,ReenTrantLock的字面意思就是再进入的锁,其实synchronized关键字所使用的锁也是可重入的,两者关于这个的区别不大。两者都是同一个线程没进入一次,锁的计数器都自增1,所以要等到锁的计数器下降为0时才能释放锁。

2017-10-07 10:15:46 201

转载 Java类初始化顺序

Java初始化顺序结论: 1 继承体系的所有静态成员初始化(先父类,后子类) 2 父类初始化完成(普通成员的初始化-->构造函数的调用) 3 子类初始化(普通成员-->构造函数)

2017-10-07 09:25:53 141

转载 多线程之线程池

线程框架关系:Executor 接口ExecutorService 接口                                继承 Executor AbstractExecutorService 抽象类            实现 ExecutorService             不过方法都是空ThreadPoolExecutor

2017-10-06 14:56:03 208

转载 Object浅拷贝、深拷贝

将一个对象的引用复制给另外一个对像三个方式:1.直接赋值、2.浅拷贝、3.深拷贝1.直接赋值:赋值的是引用。2.浅拷贝定义(shallow clone):被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。3.深拷贝(deep clone):被复制对象的所有变量都含有与原来的对象相同的值,把要复制的对象所引用的对象都复制了一遍。

2017-10-06 11:04:24 591

原创 java设计模式-工厂模式

工厂模式分类:1. 简单工厂模式(Simple Factory)2. 工厂方法模式(Factory Method)3. 抽象工厂模式(Abstract Factory)简单工厂模式例子car接口:/** * Description:车的接口 * User: lc * Date: 2017/10/2 0002 * Time: 下午 3:48 */publi

2017-10-02 16:16:20 167

原创 java设计模式-单例模式

单例模式:饿汉模式以及懒模式饿汉模式:线程安全,不会产生多个实例。但如果加载耗时,增加项目初始化时间,如果在运行过程中,没有用到,可能增加空间的浪费懒汉模式:充分利用资源,实现懒加载策略。(可能线程不安全,需要用户自己优化)例子饿汉模式/** * Description:饿汉模式 * User: lc * Date: 2017/9/30 0030 * Time:

2017-10-02 11:03:31 164

原创 java设计模式-策略模式

要点: 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。接口:/** * Description:加密解密接口 * User: lc * Date: 2017/9/29 0029 * Time: 下午 4:34 */public interface EncryptStrategy { /**

2017-09-29 17:09:10 281

转载 java之重写与重载

重写的规则:1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:父类

2017-09-28 09:23:34 157

转载 自定义ClassLoader解析

1. 实现自己的类加载器必须首先继承一个父类加载器.       编写一个类加载器会涉及到以下几个方法:     1. findClass(String name)   根据类的路径查找类,必须重写的方法     2.defineClass(String name, byte[] b, int off, int len)   由父类实现,直接调用     3.loadClass(S

2017-09-27 23:49:44 237

原创 redis之扩容

解决方案:        1.hash算法:分多个实例存储:增加Redis服务器的数量,在客户端对存储的key进行hash运算,存入不同的Redis服务器中,读取时,也进行相同的hash运算,          找到对应的Redis服务器        2.集群        3.对Redis的访问分为写和读

2017-09-27 18:58:23 1710

原创 mybatis #和$

PrepareStatement:预编译支持参数化以及占位符,防止sql注入     Statement:有sql注入风险 正文       #{} 的参数替换是发生在 DBMS 中,而 ${} 则发生在动态解析过程中。例如:select * from order where id=#{orderId}和select * from order where id=${orderI

2017-09-27 16:44:46 326

原创 JVM学习笔记一 之 ClassLoader

一、.类加载器所做的工作实质上是把类文件从硬盘读取到内存中二、java的类大致分三中:系统类、扩展类、自定义类三、类加载方法两种:       1.隐式装载,程序在运行过程中碰到new等方式生成对象时,隐式调用类加载器加载对应的类到JVM中        2.显示装载,通过class.forName()等方法,显示加载需要的类四、类加载有3种:bootstrap-Class

2017-09-27 15:01:19 189

原创 JVM学习笔记一 之 GC

一、GC分类       串行、并行、并发二、判断对象是否存活一般有两种方式:       引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象相互循环引用的问题。        可达性分析(Reachability Analysis):从GC Roots开始向下搜

2017-09-27 14:13:11 182

原创 JVM学习笔记一 之 内存结构

JVM内存结构jvm内存结构:堆、方法区、Java栈(虚拟机栈)、本地栈、PC寄存器堆: 线程共享。存放对象实例(new、数组)。堆耗尽的时候,JVM会抛出java.lang.OutOfMemoryError 异常。堆的大小可以通过JVM选项-Xms和-Xmx来进行调整。分为:新生代、老年代、持久代. 注意: 持久代-JDK1.8将换成元空间新生代: Eden区、from Surviv

2017-09-27 13:46:49 249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除