自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

点滴记录

https://github.com/zhchenme

  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 自定义hashCode()

上一篇:HashMap 原理在我们了解如何散列之后,编写自己的hashCode() 就显得更有意义了。设计hashCode() 时最重要的因素就是:无论何时对同一个对象在调用时产生的hashCode() 都应该产生同样的值。如果将一个对象用put() 方法添加进HashMap 时产生一个hashCode() 值,而用get() 方法取出时却产生另一个hashCode() 值,那么就无法取出该对象了

2017-11-30 14:26:38 2010

原创 HashMap 散列初体验

参考目录: 1. HashMap 散列初体验 2. 为什么HashMap 常用String 对象作key 3. HashMap 原理 4.自定义 hashCode() 5.HashMap 的性能因子我们用Groundhog(土拨鼠)对象与Prediction(预报) 对象做了一个简单的土拨鼠预测季节的例子。我们用Groundhog 对象作为map 的key,将

2017-11-29 17:02:14 600

原创 判断Java 对象实例是否死亡

在进入主题之前,我们要先知道运行时数据区域都是有哪些块内存需要进行垃圾回收。     程序计数器、虚拟机栈、本地方法栈、3个区域都是随着线程生而生,随着线程灭而灭的;栈中的栈帧随着方法的进入和退出有条不紊的执行着进栈和出栈的操作。每一个栈帧中分配多大的内存基基本上在类结构确定下来后就已知了,因此这几个区域的内存分配和回收都具备确定性,在这几个区域就不需要过多的考虑垃圾回收的问题,因为 方法结束或者

2017-11-29 11:17:15 749 1

原创 String 重载 "+" 原理分析

昨天在逛知乎的时候看到有一个公司的面试题是关于String对象 的,大概意思是String 类的 “+”是如何实现的,刚好前些天在书上有看到这个实现方式,现在写出来供大家参考。下面先来大致了解一下String 这个类:public final class String extends Object implements Serializable, Comparable<Strin...

2017-11-29 10:13:08 3837 2

原创 Comparator 与 Comparable

Comparable :     该接口强调对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序。实现此接口的对象可以用作有序映射(如 TreeMap)中的键或有序集合(如 TreeSet)中的元素,无需指定比较器。该接

2017-11-28 20:45:11 206

原创 IDEA 设置泛型检查

由原先的Eclipse 开发工具(由于有时候运行项目莫名奇妙报异常,然后关闭重启就又好了……)换到了IDEA ,发现IDEA 默认情况下没有开启泛型检查,在Eclipse 中,如果不加泛型会出现黄色的虚线提示,在IDEA 中需要我们自己设置,只要在输入框输入Raw use of …..进行搜索然后对照图片上的设置就可以了。效果如图:

2017-11-28 17:47:07 12293 4

原创 Java 闭包与回调

上一篇:Java 匿名内部类闭包(closure) 是一个可调用的对象,它记录了一些信息,这些信息来自于它创建的作用域。通过这个定义,Java 的内部类其实就是面向对象的闭包,因为它不仅包含外围类对象(创建内部类的作用域)的信息,还自动拥有一个指向此外围类对象的引用,在此作用域内,内部类有权操作所有的成员,包括private 成员。回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方

2017-11-28 11:46:06 838

原创 Linux X Window 与命令行的切换

命令模式也被称为终端界面(terminal 或 console),Linux 默认的情况下会提供6个Terminal 来让用户登录,切换的方式为[Ctrl] +[Alt] +[F1] ~ [f6],的组合按钮。系统会将[F1] ~ [f6] 命名为tty1 ~ tty6 的操作界面环境。也就是说当你按下[Ctrl] +[Alt] +[F1] 这三个按钮的组合时,就会进入到tty1 的ternim...

2017-11-27 20:19:59 5602

原创 Java 匿名内部类

上一篇:Java 内部类下面这个这个例子看起来会很奇怪,contents() 方法将返回值的生成与表示这个返回值的类的定义结合在一起。但是这个类是匿名的,这个类没有名字。看似你在这里要创建一个Contents 对象,但是你却在这里插入了一个类的定义。这种语法指的是:“创建一个继承自Contents 的匿名的类的对象”,contents() 方法返回的引用会被向上转型为Contents的引用。

2017-11-27 16:34:07 367

原创 Java 内部类

可以将一个类放在另一个类的内部定义,这就是内部类。内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可见性。内部类看起来就像是一种代码隐藏机制:将类置于其他类的内部。但是内部类远不止如此,它了解外围类,并与之通信。下面这个例子我们可以看出SequenceSelector 是一个内部类,他实现了Selector 接口,并实现了其中的方法,我们发现end(),cu

2017-11-27 09:35:25 208

原创 Java 反射机制

Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。这种在运行时动态的获取信息以及动态调用对象的方法的功能称为Java 的反射机制。     Class 类与java.lang.reflect 类库一起对反射的概念进行了支持,该类库包含了Field,Method,Constructor类(每个类都实现了Member

2017-11-26 10:35:36 26892 4

原创 Java 多态之“绑定”

写在前面:     在刚开始学习JavaSE 时,在学习多态这个章节时对下面几段程序输出的结果感觉到很诧异:public class Sub extends Super{ public int num = 1; public int getNum(){ return num; } public static void main(String[] arg

2017-11-26 09:37:10 422

原创 Java对象的访问定位

这篇博文主要介绍Java 对象的引用方式,以及对于Java 程序设计语言中关于”引用传递”与”值传递”问题谈一谈看法。Java对象的访问定位    我们知道Java 程序需要通过栈上的引用(reference) 数据来操作堆上的具体对象。由于reference 类型在Java 虚拟机规范中只规定了一个指向对象的引用,并没有定义这个引用通过何种方式去定位、访问堆中对象的具体位置,所以对象的访问方式也是

2017-11-26 09:36:05 287

原创 Java对象的创建过程

在Java程序运行的过程中无时无刻都有对象被创建。在程序中创建对象(克隆,反序列化)通常是一个new 关键字而已,下面将在虚拟机的角度看待对象是如何被创建出来的。Java对象创建的过程    1. 虚拟机遇到一条new 指令时,首先将会检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否被加载,解析和初始化过。如果没有那就先执行相应的类加载过程。    2. 在类

2017-11-26 09:35:03 270

原创 Java 运行时数据区域

运行时数据区域    Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁时间。以下是Java虚拟机所管理的内存区域: 程序计数器    程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作时当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计

2017-11-26 09:34:09 840

原创 Java 堆内存优化

Java堆的唯一目的就是创建实例对象,几乎所有的对象都在堆上分配内存,如果堆空间分配内存出现问题可见是非常严重的。当Java 堆内存出现问题时,我们应该怎么去优化呢?在学习堆内存优化之前,我们要先了解一下有关堆内存优化的参数。堆在实现时,既可以实现成固定大小的,也可以是可扩展的,当前主流的虚拟机都是按照可扩展来实现的(通过-Xmx和-Xms控制)。     在这里通过程序测试一下:public c

2017-11-26 09:32:52 1353

原创 MySql ORDER BY 索引优化

上一篇:MySql 索引优化    MySql 支持两种方式的排序,FileSort 和 Index ,Index 效率高,它指的是MySql 扫描索引本身完成排序。FileSort 会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。因此效率很低。在我们使用ORDER BY 子句进行排序查找时,要使用Index 的方式排序,避免FileSort 方式排序。    我在t_emp 表上

2017-11-25 17:03:13 3857

原创 MySQL使用SHOW PROFILE进行SQL分析

什么是SHOW PROFILE:     SHOW PROFILE 是MySql 提供可以用来分析当前会话语句执行的资源消耗情况,可以用于SQL 的调优测评依据。在默认的情况下,参数处于关闭状态,并保存着最近15 次的运行结果。我们可以通过 SHOW VARIABLES LIKE ‘PROFILING’; 命令查看参数的开关情况;通过 SET PROFILING = ON; 命令设置开启状态。

2017-11-25 17:02:42 1067

原创 MySql小表驱动大表

有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们要遵循一些原则,这样会使我们编写的SQL 语句在效率上快很多。优化原则小表驱动大表,即小的数据集驱动大得数据集。在知道什么是小表驱动达大表之前,我们先来了解两个查询关键字,IN 与 EXISTS。我们通过两段查询语句先来了解一下它们的作用。我建立了两张表,一张员工表,一张部门表,员工表中有部门id...

2017-11-25 17:01:04 13615 2

原创 MySql 索引优化

上一篇:MySql 之EXPLAIN 关键字     在了解EXPLAIN 关键字之后呢,我们就可以根据一些属性查看我们的SQL 语句是否是高效的,从而使我们编写出高效的SQL 语句,接下来就是一些实际应用啦。我在这里建立了一张表并存放了一些数据(建立了一个复合索引)。执行查询SQL 语句,共有三条记录:     查看建立的索引: 最佳左前缀原则:    下面我们使用执行查询语句,这里我们

2017-11-25 17:00:19 314

原创 MySQL使用EXPLAIN分析SQL

上一篇:MySql 数据库 “索引”初体验 EXPLAIN 关键字详解:    使用EXPLAIN 关键字可以模拟优化器执行SQL 查询语句,从而知道MySql 数据库是如何处理你的SQL 语句的。因此我们可以使用该关键字知道我们编写的SQL 语句是否是高效的,从而可以提高我们程序猿编写SQL 的能力。     使用EXPLAIN 关键字可以让我们知道表的读取顺序、数据读写操作的操作类型、哪些索

2017-11-25 16:56:15 667

基于ssm与websocket的聊天项目

前端技术:Jquery、BootStrap、Ajax、WebSocket、HTML5Canvas、HTML5桌面通知、Amaze UI框架 后端技术:Spring 、 SpringMVC 、 MyBatis 、Shiro 、Jsp 服务器:Tomcat7 数据库:MySql 开发工具:Eclipse 项目管理工具:Maven

2018-03-29

Lucene简单使用需要的jar

Lucene 创建索引与搜索的简单应用,包含了测试所需要的jar 包。

2018-03-06

Lucene 测试需要的jar 包

Lucene 创建索引与搜索的简单应用,包含了测试所需要的jar 包。

2018-03-06

空空如也

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

TA关注的人

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