JDK:java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)
OS:win7 64bit
cmake:V2.8.12/V3.2.2
LTP:V3.2.0
LTP4J:V1.0
Microsoft VS C++:V2010
编译LTP4J.jar
下载Ant
ltp4j的源码使用ant进行编译,首先需要下载ant,点我下载
配置Ant环境变量
我的电脑-->属性-->高级系统设置-->环境变量
新建A
继续阅读 »
Java 虚拟机结构
根据 Java 虚拟机规范,Java 的基本结构可归纳为如图所示:
继续阅读 »
先来看一个例子,代码如下:
java
public class Test {
public static void main(String[] args) {
String str = "abc";
String str1 = "abc";
String str2 = new String("abc");
System.out.println(str == str1);
System.out.println(str1 == "abc");
System.out.println(str2 == "abc
继续阅读 »
在jdk1.7之前,java中没有直接的类提供文件复制功能。下面就文件复制,提出几种方案。
jdk1.7中的文件复制
在jdk1.7版本中可以直接使用Files.copy(File srcFile, File destFile)方法即可。
private static void copyFileUsingJava7Files(File source, File dest)
throws IOException {
Files.copy(source.toPath(), dest.toPath());
}
使用FileInputStream复制
more
/**
*
* @Title: copyFileUs
继续阅读 »
在Java中,一个字符串可以使用下面这两种方式进行创建:
String x = "abc";
String y = new String("abc");
这两种创建字符串的方式有什么不同呢?
双引号 VS 构造函数
这个问题可以用下面这两个简单的代码实例来回答。
例子1:
String a = "abcd";
String b = "abcd";
System.out.println(a == b); // True
System.out.println(a.equals(b)); // True
a==b是true,因为a和b都引用同一块内存地址。
当相同字符内容的字符串多次创建时,编译器只为其分配一块内存,
继续阅读 »
一个Java程序的执行要经过编译和执行(解释)这两个步骤,同时Java又是面向对象的编程语言。当子类和父类存在同一个方法,子类重写了父类的方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢,这应该是我们在初学Java时遇到的问题。这里首先我们将确定这种调用何种方法实现或者变量的操作叫做绑定。
继续阅读 »
什么是对象序列化和对象反序列化
序列化是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。对象序列化和反序列化的过程就是将对象写入字节流和从字节流中读取对象的过程。将对象状态转换成字节流后,可以用java.io包中的各种I/O流类将其保存到文件中,或者应用NIO技术将其传输到另一线程中或通过网络连接将对象数据发送到另一主机。对象序列化功能非常强大,在RMI、Socket、JMS和EJB中都有应用。
继续阅读 »
本文是「Java 8 函数式编程」第三章的读书笔记,章名为流。本章主要介绍了外部迭代与内部迭代以及常用的高阶函数。
外部迭代与内部迭代
外部迭代
过去我们要对一个List进行迭代时,往往会采用如下方式:
java
int count = 0;
for (Artist artist : artists) {
if (artist.isFrom("London")) {
count++;
}
}
继续阅读 »
面试中遇到,但是不会,回来google到,分享下吧,据说是老掉牙的问题
HashMap 是Hashtable 的轻量级实现(非线程安全的实现),他们都完成了Map 接口,主要区别在于HashMap 允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap 允许将null 作为一个entry 的key 或者value,而Hashtable 不允许。
HashMap 把Hashtable 的contains 方法去掉了,改成containsvalue 和containsKey。因为contains方法容易让人引起误解。
Hashtable 继承自Dictionary 类,而HashMap
继续阅读 »
判断对象已经死的方法:1.引用计数法 2根搜索算法
GC Roots:
1 虚拟机栈(栈帧中的本地变量表)中的引用对象。
2 方法区中的类静态属性引用的对象。
3 方法区中的常量引用的对象。
4 本地方法栈中JNI(即一般说的Native方法)的引用的对象。
四种引用:
1.强引用只要引用还存在,垃圾收集器永远不会回收掉被引用的对象
2.软引用(SoftReference)用来描述一些还有用,但并非必需的对象。系统将要发生内存溢出异常之前,把这些对象进行回收。
3.弱引用(WeakReference)下一次垃圾回收发生时就会回收
4.虚引用(Phant
继续阅读 »