随笔分类 -  java

对于java的学习记录
Java解决TopK问题(使用集合和直接实现)
摘要:在处理大量数据的时候,有时候往往需要找出Top前几的数据,这时候如果直接对数据进行排序,在处理海量数据的时候往往就是不可行的了,而且在排序最好的时间复杂度为nlogn,当n远大于需要获取到的数据的时候,时间复杂度就显得过高。 使用最小堆或者最大堆可以很好地解决Top大问题或者Top小问题。 Top大 阅读全文

posted @ 2017-04-14 18:00 liuyang0 阅读(8492) 评论(2) 推荐(1)

浅析Java中synchronized与static synchronized
摘要:synchronized关键字 synchronized是进行同步处理而保证线程安全。在一个方法中,如果是方法内的私有变量,那个这个变量是线程安全的,但是类中的实例变量是可能会出现线程安全问题的,当多个线程对这个实例变量进行修改,就可能会出现结果并不是我们期望的结果。 线程安全问题 下面一段代码就出 阅读全文

posted @ 2017-04-07 17:17 liuyang0 阅读(3382) 评论(0) 推荐(0)

Java实现缓存(LRU,FIFO)
摘要:现在软件或者网页的并发量越来越大了,大量请求直接操作数据库会对数据库造成很大的压力,处理大量连接和请求就会需要很长时间,但是实际中百分之80的数据是很少更改的,这样就可以引入缓存来进行读取,减少数据库的压力。 常用的缓存有Redis和memcached,但是有时候一些小场景就可以直接使用Java实现 阅读全文

posted @ 2017-04-04 11:43 liuyang0 阅读(19497) 评论(0) 推荐(4)

Java单例模式的各种实现(饿汉、懒汉、静态内部类、static代码块、enum枚举类型)
摘要:饿汉模式 饿汉模式就是立即加载,在方法调用前,实例就已经被创建了,所以是线程安全的。 懒汉模式 懒汉就是延迟化加载,当需要使用的时候才进行实例化。 线程不安全 线程安全 线程安全但是效率低下 使用DCL双检查锁,线程安全而且效率得到提高,只将进行实例化的代码进行加锁。 使用静态内部类 线程安全,也是 阅读全文

posted @ 2017-03-24 20:00 liuyang0 阅读(1202) 评论(0) 推荐(0)

Java反射与动态代理
摘要:1.Java反射 当通过反射与一个未知类型的对象打交道时,JVM只简单地检查这个对象,看它属于哪个特定的类。在用它做其他事情之前必须先加载那个类的Class对象。 当使用反射时,就可以在运行时获取类信息,对于反射机制来说,.class文件在编译时是不可获取的,所以是在运行时打开和检查.class文件 阅读全文

posted @ 2017-03-23 17:23 liuyang0 阅读(327) 评论(0) 推荐(0)

JVM类加载机制
摘要:概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 在Java里,类型的加载、连接和初始化都是在程序运行期间完成的。 类加载的整个生命周期有七个阶段:加载、验证、准备、解析、初始化、使用、卸 阅读全文

posted @ 2017-02-27 20:13 liuyang0 阅读(475) 评论(0) 推荐(1)

IDEA下创建Maven项目,并整合使用Spring、Spring MVC、Mybatis框架
摘要:项目创建 本项目使用的是IDEA 2016创建。项目使用Spring 4.2.6,Mybatis3.4.0,Tomcat使用的是Tomcat8,数据库为MySQL。 首先电脑安装Maven,接着打开IDEA新建一个project,选择Maven,选择图中所选项,下一步。 1. 填写好GroupId和 阅读全文

posted @ 2017-02-26 17:39 liuyang0 阅读(10200) 评论(1) 推荐(0)

HashMap源码分析
摘要:& 8195;& 8195;本次分析使用的代码为JDK1.8中的HashMap代码。 & 8195;& 8195;HashMap可以接受为null的key和value。 & 8195;& 8195;由于HashMap中的方法没有加锁,所以HashMap不是线程安全的。 Node类 介绍 Node类为 阅读全文

posted @ 2017-02-23 17:13 liuyang0 阅读(279) 评论(0) 推荐(0)

HashTable源码分析
摘要:& 8195;& 8195;本次分析代码为JDK1.8中HashTable代码。 & 8195;& 8195;HashTable不允许null作为key和value。 & 8195;& 8195;HashTable中的方法为同步的,所以HashTable是线程安全的。 Entry类 介绍 Entry 阅读全文

posted @ 2017-02-21 19:33 liuyang0 阅读(567) 评论(0) 推荐(1)

ArrayList源码分析
摘要:ArrayList继承了AbstractList类,实现了List接口。 默认的大小为10,所有元素值保存在一个Object数组内。 add方法 & 8195;& 8195;在ArrayList内,有两个add方法,分别如下图。 add(E e)方法:首先确保Capacity可以容纳下加一个元素,然 阅读全文

posted @ 2017-02-18 00:05 liuyang0 阅读(186) 评论(0) 推荐(0)

Java多线程程序休眠、暂停与停止
摘要:休眠 & 8195;& 8195;在Java多线程中,可以使用sleep()方法在指定毫秒数内让当前正在执行的线程休眠。 & 8195;& 8195;下面这段代码,使得主函数的main线程休眠了2000ms,最后输出的间隔时间也是2000ms。 输出结果: begin = 1486711105366 阅读全文

posted @ 2017-02-10 16:13 liuyang0 阅读(21447) 评论(0) 推荐(0)

Java内部类基本使用
摘要:链接到外部类 & 8195;& 8195;创建内部类时,那个类的对象同时拥有封装对象(封装内部类的外部类)的一个链接,所以内部类可以访问外部类的成员。 & 8195;& 8195;内部类拥有对外部类所有元素的访问权限。 & 8195;& 8195;看如下代码,内部类SSelector访问外部类元素o 阅读全文

posted @ 2017-01-20 16:59 liuyang0 阅读(231) 评论(0) 推荐(0)

Java用自定义的类型作为HashMap的key
摘要:& 8195;& 8195;需要重写hashCode()和equals()方法才可以实现自定义键在HashMap中的查找。 运行结果为: {package1.PhoneNumber@74a14482=zhangsan, package1.PhoneNumber@677327b6=wangwu, pa 阅读全文

posted @ 2017-01-10 23:48 liuyang0 阅读(9285) 评论(0) 推荐(1)

Java字符串之String与StringBuilder
摘要:String与SringBuiler的一些比较 & 8195;& 8195;在Java中,我们会大量使用字符串,但是String究竟是怎样工作的我们可能没有想过太多,其实在String类中,每一个看起来会修改String值的方法都是创建了一个全新的String对象。 & 8195;& 8195;我们 阅读全文

posted @ 2017-01-10 23:45 liuyang0 阅读(322) 评论(0) 推荐(0)

Java内部类之匿名内部类
摘要:& 8195;& 8195;我们都知道Java中可以使用内部类,将一个类的定义放在另一个类的定义的内部,这就是内部类,但是匿名内部类往往使我们摸不着头脑,因为它并没有特定的名称,那么该如何使用它呢? 定义一个匿名内部类 & 8195;& 8195;如上,我们就定义了一个匿名内部类,它实现了Conte 阅读全文

posted @ 2017-01-10 23:40 liuyang0 阅读(429) 评论(0) 推荐(0)

导航

Flag Counter