Home

解决 IDEA 中 language level 总是自动变成 5 的问题

IDEA 默认建议开发者写出兼容 1.5 特性的代码,所以每次打开项目或者新建 module 的时候,都会重置 language level。 解决办法就是在 pom.xml 文件中把编译版本固定写死,有两种方式: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.7</java...

Read more

线程安全的单例模式的几种实现方式

单例模式是23种设计模式应用最广的一种,也是最简单的一种设计模式。它确保一个类只有一个实例对象。 实现方式有很多种,具体如下: 一、饿汉式(不使用同步方法) public class Singleton { private static Singleton singleton = new Singleton(); // 直接初始化一个实例对象 private Singleton() { // 私有构造方法,保证该类对象不能直接被new出来 } public static Singleton getInstance() { // 公有静态方法对外提供获取对象实例的途径 return singleton; } } ...

Read more

Java 中父类对象能不能强制转换为子类对象

昨天遇见一道笔试题,大意是给定如下代码,问编译运行有没有错: public class Solution { public static void main(String[] args) { Father father = new Father(); Child child = (Child) father; } } class Father {} class Child extends Father {} 没仔细看直接选了「编译运行正常」。 交卷后测试了一下发现结果却是: Exception in thread "main" java.lang.ClassCastException: Father cannot be cast...

Read more

Java 中 Integer 的各种比较

Java 中 Integer 的比较问题一直比较蛋疼,稍不注意就会出错,这里总结一下主要比较方式及区别。 基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较。 int a = 100; Integer b = new Integer(100); System.out.println(a==b); // true Integer(100) 自动拆箱变为 int 类型,所以返回 true。 两个Integer类型进行“==”比较,如果其值在-128至127,那么返回 true,否则返回 false。 Integer c = 100; Integer d = 100; System.out.println(c==d) //...

Read more

Java 中的异常处理笔记

Java 异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰地回答 what, where, why 这 3 个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪”抛出,异常信息回答了“为什么”会抛出。 概念 Java 异常是 Java 提供的用于处理程序中错误的一种机制。 所谓错误是指在程序运行的过程中发生的一些异常事件(如:除 0 溢出,数组下标越界,所要读取的文件不存在等)。 设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会应为异常的发生而阻断或产生不可预见的结果。 Java 程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并提交...

Read more

HBase 分布式安装笔记

实验室第N次服务器配置,简单记录以备不时之需。 环境配置 sudo vi /etc/profile export HBASE_HOME=/home/bjut/hbase-1.1.11 export PATH=$PATH:$HBASE_HOME/bin 安装 HBase 文件 hbase-env.sh export JAVA_HOME=/home/bjut/jdk1.7 文件 hbase-site.xml <configuration> <property> <name>hbase.master.maxclockskew</name> ...

Read more