解决 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...
线程安全的单例模式的几种实现方式
单例模式是23种设计模式应用最广的一种,也是最简单的一种设计模式。它确保一个类只有一个实例对象。
实现方式有很多种,具体如下:
一、饿汉式(不使用同步方法)
public class Singleton {
private static Singleton singleton = new Singleton(); // 直接初始化一个实例对象
private Singleton() { // 私有构造方法,保证该类对象不能直接被new出来
}
public static Singleton getInstance() { // 公有静态方法对外提供获取对象实例的途径
return singleton;
}
}
...
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...
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) //...
Java 中的异常处理笔记
Java 异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰地回答 what, where, why 这 3 个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪”抛出,异常信息回答了“为什么”会抛出。
概念
Java 异常是 Java 提供的用于处理程序中错误的一种机制。
所谓错误是指在程序运行的过程中发生的一些异常事件(如:除 0 溢出,数组下标越界,所要读取的文件不存在等)。
设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会应为异常的发生而阻断或产生不可预见的结果。
Java 程序的执行过程中如出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并提交...
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>
...
58 post articles, 8 pages.