JAVA_基础
会飞行的猪
把本地记录搬家到移动博客上方便分享和查阅
展开
-
实现Runnable 实现线程
public class ImplementsRunnable { public static void main(String[] args) { Runnable r1 = new c3(); Runnable r2 = new c4(); Thread t1 = new Thread(r1); Thread t2 = new原创 2016-03-14 15:31:52 · 519 阅读 · 0 评论 -
守护线程setDaemon(true)
public static void main(String[] args) { Thread p1 = new Thread(){ public void run() { for (int i = 0; i < 10; i++) { System.out.println("go go g原创 2016-03-14 15:30:31 · 483 阅读 · 0 评论 -
继承Thread 实现线程
public static void main(String[] args) { new Person1().start(); new Person2().start(); }}class Person1 extends Thread{ @Override public void run() { for (int i = 0原创 2016-03-14 15:29:28 · 267 阅读 · 0 评论 -
创建线程的方式(继承和实现接口两种)
//方式1: 匿名内部类 Thread t1 = new Thread(){ public void run(){ for(int i=0;i<1000;i++){ System.out.println(原创 2016-03-14 15:27:46 · 389 阅读 · 0 评论 -
获取现在时刻
long now = System.currentTimeMillis(); Date date = new Date(now); int year = date.getYear(); int month = date.getMonth(); int week = date.getDay(); int day = date原创 2016-03-14 15:25:53 · 249 阅读 · 0 评论 -
打印日历
/** * 打印日历<br> * 1.打印日历需要把日期调整到本月的第一天<br> * 2.然后调整到本月的第一周,这样就有可能带进去上个月的日期<br> * 3.同样也要设置本周第一天是星期几<br> * @author Heying * */ public static void main(String[] args)原创 2016-03-14 15:24:34 · 320 阅读 · 0 评论 -
GregorianCalendar格力高日历
/* * 复杂的时间计算 */ Calendar cal = new GregorianCalendar(); Date date = cal.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");原创 2016-03-14 15:22:57 · 960 阅读 · 0 评论 -
怎么理解字符串常量和字符串字面量
/** * 1) 字符串字面量和常量称为“静态字符串”<br> * 2) 字面量和常量的连接在编译期间执行,优化为一个静态字符串<br> * 3) 在运行期间,Java在静态缓冲池中创建静态字符串,并且尽量使用同一个字符串对象。<br> * 4) 动态字符串:字符串运算结果,或者连接结果或者 new运算创建的字符串,等运行期间创建的字符串不参与静态优化<br> * @author原创 2016-03-14 15:18:47 · 8235 阅读 · 0 评论 -
通过synchronizedList将List转变成线程安全的List
List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); list = Collections.synchronizedList(list); System.out.println(list);原创 2016-03-14 15:37:43 · 3297 阅读 · 0 评论 -
JDK1.5之前基本类型和包装类型之前的拆装箱
/** * 包装类从JDK1.5开始自动拆装箱,以下版本需要装换<br><br> * 基本类型 包装类<br> *int java.lang.Integer<br> *char Character<br> *byte Byte<br> *short Short<br> *lon原创 2016-03-14 15:45:18 · 446 阅读 · 0 评论 -
泛型
// 1. 约束集合中元素的类型,获取元素的时候不用造型 List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); list.add("3"); // (1) for (int i = 0; i < list.siz原创 2016-03-14 15:48:00 · 239 阅读 · 0 评论 -
使用throw new Exception 向外层抛异常
public static void main(String[] args) { Human man = new Human(); try { man.setAge(120); } catch (Exception e) { e.printStackTrace(); } }原创 2016-03-15 17:55:05 · 8925 阅读 · 0 评论 -
异常抛出顺序从小到大
/** * 抛出异常里到外-小到大 * @author Heying * */ System.out.println("****start****"); try { String a = null; System.out.println(a.leng原创 2016-03-15 17:53:57 · 1040 阅读 · 0 评论 -
自然排序和自定义排序
/* * 自然排序 */ public static void sort1(){ List<String> list = new ArrayList<String>(); list.add("three"); list.add("one"); list.add("原创 2016-03-14 16:02:06 · 648 阅读 · 0 评论 -
队列进出原则
/** * 队列存取元素遵循先进先出原则 * @author Heying_He * */ public static void main(String[] args) { firstQueue(); System.out.println("**************FUN2*****************");原创 2016-03-14 15:59:20 · 4441 阅读 · 0 评论 -
遍历HashMap
Map<String, Integer> map = new HashMap<String, Integer>(); map.put("W1", 1); map.put("W2", 2); map.put("W3", 3); /* * 获取所有的key * Set keySet() *原创 2016-03-14 15:58:21 · 334 阅读 · 0 评论 -
重写比较
/** * 1.Object equals 方法 用于比较对象是否相等。<br/> * 2.比较是否是同一个对象(同一个体)使用 ==<br/> * 3.比较两个不同的对象,在逻辑上是否一样需要使用 equals 方法。<br/> * ##建议重写equals方法实现对象是否相等比较<br/> * @author Heying * */ public static void mai原创 2016-03-14 15:56:00 · 199 阅读 · 0 评论 -
迭代队列
Queue<String> queue = new LinkedList<String>(); queue.add("A"); queue.add("B"); queue.add("C"); queue.add("D"); queue.add("E"); queue.add("F"); Sys原创 2016-03-14 15:52:25 · 489 阅读 · 0 评论 -
集合转数组
LinkedList<String> l = new LinkedList<String>(); l.add("one"); l.add("two"); l.add("three"); System.out.println(l); Object []c = l.toArray(); for (int i =原创 2016-03-14 15:51:14 · 340 阅读 · 0 评论 -
Collection的一些基本方法
/** * 集合<br> * 1.int size():获取集合的元素个数<br> * 2.boolean add(E e):向集合中添加元素<br> * 3.boolean remove(Object o):删除给定的元素<br> * 4.boolean isEmpty():判断集合是否不含有元素<br> * 5.void clear():清除集合中所有元素<br> * 6.bool原创 2016-03-14 15:49:37 · 264 阅读 · 0 评论 -
线程的睡眠与唤醒
1.线程的睡眠与唤醒 public static void main(String[] args) { final Thread li = new Thread(){ @Override public void run() { System.out.println("li: sleep Zz...原创 2016-03-14 15:42:19 · 1936 阅读 · 0 评论 -
线程安全的示范和解决
桌子上放了一定的豆子,现在线程1,2都在抢这个桌子上的豆子,这样就会存在一种情况下,一个线程已经拿空了豆子,另一个还在继续拿,在实际生活中是不可能的,存在线程安全问题,解决方法(使用synchronized同步)public class SyncSafe { public static void main(String[] args) { final Tabl原创 2016-03-14 15:41:08 · 265 阅读 · 0 评论 -
复制图像打水印
String src = "img.jpg"; // 源文件 String dec = "img_1.jpg";// 目标文件 /* * 1. 读取源文件为图像文件 * 2. 给Image对象绘制签名 * 3. 写出Image对象到文件系统 */ InputStream in = n原创 2016-03-16 15:10:30 · 315 阅读 · 0 评论 -
FileInputStream和FileOutputStream使用
1.FileInputStream FileInputStream fis = new FileInputStream("JAVA_SE.rar"); int d = fis.read(); System.out.println(d); System.out.println("--------------------------------原创 2016-03-16 15:08:31 · 292 阅读 · 0 评论 -
文件过滤器
/** * 文件过滤器 * @author Heying * */public class FileFlterDemo { public static void main(String[] args) throws Exception { File file = new File("./"); FileFilter filter = new MyFil原创 2016-03-16 15:01:50 · 214 阅读 · 0 评论 -
File文件的基本属性
File dir = new File("./"); // 当前目录// if(dir.exists()){// if(dir.isDirectory()){// String[] subs // = dir.list();// for(String name : subs){原创 2016-03-16 14:51:50 · 468 阅读 · 0 评论 -
字符格式化
String s = "ABCD中国人"; // Byte 数组 byte[] bytes = s.getBytes("UTF-8"); System.out.println(bytes.length); // 目前编码为utf-8 为13字节 byte序列 System.out.println(Arrays.toString(by原创 2016-03-16 14:49:55 · 254 阅读 · 0 评论 -
FileWriter和FileReader
// FileOutputStream fos = new FileOutputStream("test_2.txt");// OutputStreamWriter osw = new OutputStreamWriter(fos); /* * FileWriter可以向给定的文件中写出字符 * FileWriter不允许修改字原创 2016-03-16 14:48:02 · 277 阅读 · 0 评论 -
字符流定义字符集
BufferedReader bfr = new BufferedReader( new InputStreamReader( new BufferedInputStream( new FileInputStream("test.txt")原创 2016-03-16 11:28:56 · 341 阅读 · 0 评论 -
使用输入输出流实现文件复制
FileInputStream fis = new FileInputStream("JAVA_SE.rar"); FileOutputStream fos = new FileOutputStream("JAVA_SE_COPY.rar"); long start = System.c原创 2016-03-16 11:21:29 · 2299 阅读 · 0 评论 -
高级流实现数据的写入与读取
// 1. 写 DataOutputStream dos = new DataOutputStream( new BufferedOutputStream( new FileOutputStream("test.dat"))); // 整数拆4个byte写入到文件 dos.writeInt(0);原创 2016-03-16 11:20:02 · 625 阅读 · 0 评论 -
通过ObjectOutputStream序列化和使用ObjectInputStream反序列化
ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("test.dat"))); oos.writeObject("hello++++12345"); oos.writeObject("is verygood"); o原创 2016-03-16 15:12:25 · 662 阅读 · 0 评论 -
持久化操作(写入文件)
FileOutputStream fos = new FileOutputStream("persion.obj"); ObjectOutputStream oos= new ObjectOutputStream(fos); List<String> list = new ArrayList<String>(); list.add("name1");原创 2016-03-16 15:13:17 · 292 阅读 · 0 评论 -
Calendar日历类型
Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH); int date = cal.get(Calendar.DATE); int dayOfYear = cal.get(C原创 2016-03-14 15:21:13 · 546 阅读 · 0 评论 -
怎么理解字符串对象是不可改变的对象?字符串引用变量的值可以改变?
String s1 = "What is "; System.out.println("s1:"+s1); String s2 = s1; s1 = s1+"Java!"; System.out.println("s2:"+s2);//s2 引用了s1,s1对象始终没有改变 System.out.println("s1:原创 2016-03-14 15:15:17 · 648 阅读 · 0 评论 -
Sting的一些方法
String str = "What is Java!好"; System.out.println(str.length());//14 //查找字符串的最后一个字符 char c = str.charAt(str.length()-1); System.out.println(c); //好 //查找"好"在字符串中的原创 2016-03-14 15:11:02 · 456 阅读 · 0 评论 -
正规表达式的使用
正则表达式的使用是为了过滤掉不想显示的内容,从而产生的一种过滤规则。/** * (一) * \d: [0-9] * \w: [a-zA-Z0-9] * \s: 一个空白字符:回车 换行 tab 空格 * . : 表示任意字符 * * (二) * \D: 非数字 * \W: 非单词字符原创 2016-03-14 15:06:48 · 387 阅读 · 0 评论 -
使用Pattern查找字符串
Scanner scanner = new Scanner(System.in); while (true) { System.out.print("Enter your regex: "); Pattern pattern = Pattern.compile(scanner.nextLine()); Syste原创 2016-03-14 14:50:58 · 782 阅读 · 0 评论 -
使用RandomAccessFile进行文件的读写
RandomAccessFile raf = new RandomAccessFile("test.txt","r"); byte[] buf = new byte[40]; int len = raf.read(buf); System.out.println("读取的字节>>>> "+len); System.out.println(原创 2016-03-16 15:17:30 · 476 阅读 · 0 评论 -
Reader读取文件
Reader in = new InputStreamReader(new BufferedInputStream(new FileInputStream("d.dat")),"UTF-8"); int c = in.read(); System.out.println((char)c); int a = in.read(); Syst原创 2016-03-16 15:20:42 · 1032 阅读 · 0 评论