
Java
奔跑的笨鸟
这个作者很懒,什么都没留下…
展开
-
Java参数传递方式
Everything in Java are passed-by value.基本类型的传递方式基本类型是值传递,传递的是值得copy, 对于方法内的任何改变,都不会反映到原始的变量中。对象的传递方式对象传递的是对象的内存地址 一个小例子,仔细体会下,就明白了:public class Test { class Dog { private int age;原创 2017-06-12 16:35:01 · 214 阅读 · 0 评论 -
Java工厂模式
为什么要使用工厂? 考虑现实的一种情况,如果我们需要一件上衣,我们可以自己做,也可以去订做,如果要自己做,自己必须了解做衣服的所有细节,如果订做,只要告诉他们我们要什么样的就行了,我们不知道做的一切细节。在开发软件的时候也一样,如果我们需要一个对象,我们可以自己new一个,我们自己new的话,对象和客户端必须紧密耦合。如果我们用一个工厂类来实例化所需要的对象,我们就只告诉我们要什么就行了。工厂模式原创 2017-06-27 13:19:37 · 279 阅读 · 0 评论 -
Java 中Redirect和Forward
Java中连接跳转的2中方式Redirect和Forward - (重定向)Redirect重定向是把request 直接转到其他组件处理,response.sendRedirect()后,response已经提交,不能再对response操作。 一个简单的重定向response.sendRedirect("redirect");这个应该和下面的代码一样的效果: response.原创 2017-06-27 13:19:15 · 1074 阅读 · 0 评论 -
Java 线程异常处理
如果我们调用一个线程处理任务,但是当线程发生异常的时候我们调用线程的地方无法捕捉到异常。 用例子验证:我在main中把调用线程的代码放到try-catch里面,但是结果却没有捕捉到任何异常。package thread;class MRunnable implements Runnable{ @Override public void run() { throw n原创 2017-06-27 13:18:57 · 439 阅读 · 0 评论 -
Java 中线程(三)
如果要用能返回值得线程,得用到Callable 和FutureTask,但是返回值是阻塞式的,因此自己实现了个异步返回值的线程。 功能简单了点,只是个思路。package thread;import java.text.SimpleDateFormat;import thread.FutureJob.CallBack;interface ReturnBackRunnable<T>{ T原创 2017-06-27 13:18:31 · 272 阅读 · 0 评论 -
Java 中线程(二)
Runnable和Thread都没有返回值,如果想要在线程结束后有返回值,需要Callable接口。Callable是个支持泛型的接口,我们是实现这个接口的时候可以指定返回值得类型。 其实我们还需要一个支持取得返回值得方式,并且实现了Runnable的类。这个类就是FutureTask。FutureTask就是一个Runnable,因此可以调用Thread的start()方法运行它。 例子:pa原创 2017-06-27 13:18:11 · 366 阅读 · 0 评论 -
Java 中线程(一)
线程是程序执行流的最小单元。Java中创建线程的方式,1)实现Ruuable接口,2)继承Thread类,3)实现Callable接口 一个例子:package thread;import java.util.concurrent.Callable;import java.util.concurrent.FutureTask;public class TThread { public原创 2017-06-27 13:17:51 · 230 阅读 · 0 评论 -
Java 中的enum
枚举应该是一个有限集合组成的一个对象一个简单的例子:public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }枚举最简单的就是当常量用,但是比常量安全,最常用的就是在switch里面。 其实枚举可以当个普通的类使用,可以有变量,方法等。 当普通类使用的时候,其中有几个注意原创 2017-06-27 13:17:24 · 323 阅读 · 0 评论 -
Java 中的IO
Java Old IOJava IO是通过Stream 以block方式读取数据的。其中包括字节和字符Stream. 下面一个小例子,分别用字节和字符流来读取文件。import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream原创 2017-06-27 13:16:54 · 253 阅读 · 0 评论 -
Java Object和Class
Java Object: 拥有一组行为和状态。 Java Class: 描述Object的行为和状态。 通过Class对象,我们能获得Object对象的变量和方法。 下面一个例子:package ttttt;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Modi原创 2017-06-27 13:16:21 · 430 阅读 · 0 评论 -
Java 动态代理
A dynamic proxy class is a class that implements a list of interfaces specified at runtime such that a method invocation through one of the interfaces on an instance of the class will be encoded and di原创 2017-06-27 13:15:49 · 253 阅读 · 0 评论 -
怎么继承一个非静态的内部类?
如果某些情况下,如要继承一个内部类,现实中可能不会有这种要求。 一个包含内部类的类class WithInner { class Inner { }}我们这样直接继承好像会有错误的。/错误信息://Multiple markers at this line//- No enclosing instance of type WithInner is available du原创 2017-06-27 13:15:17 · 337 阅读 · 0 评论 -
Java异常
异常:程序出现了没有足够信息能继续执行,或者不能按照正常逻辑执行 Java 异常机制,使得我们能在某个地方集中处理要解决的问题。异常种类:检查时异常,运行时异常 检查时异常,我们必须catch或者抛出,运行时异常不用显示捕捉。 常见运行时异常有:ClassCastException, DateTimeParseException, IllegalArgumentException, Ar原创 2017-06-27 13:14:47 · 187 阅读 · 0 评论 -
Java(1.8)集合类中的HashMap
Java(1.8)集合类中的HashMap Java(1.8) 集合中的LinkedList Java(1.8) 集合中的ArrayList Map接口没有继承任何其他接口,它存储的是Key-Value对,并且Key不能重复。 下面就是Map的所有接口: 在HashMap 内部每个Key-Value对都用一个Node对象存储。在Node中保持了key的hash值,Key,Value原创 2017-06-27 13:13:27 · 306 阅读 · 0 评论 -
Java(1.8)集合中的HashSet
Java(1.8) 集合中的LinkedList Java(1.8) 集合中的ArrayList Java(1.8)集合类中的HashMapSet 接口也实现了Collection接口,Set中可以存储不重复的元素。 下面看看其中一个实现类HashSet的底层实现原理: HashSet底层用HashMap来实现的,Set的元素存储到Map的key, Value 则存储一个相同的对原创 2017-06-27 13:12:51 · 268 阅读 · 0 评论 -
Java(1.8) 集合中的LinkedList
java(1.8)集合中的HashSet Java(1.8) 集合中的ArrayList Java(1.8)集合类中的HashMapLinkedList是通过链表形式来存储的,因此插入,删除元素比较快,查找速度没有ArrayList快。 内部用一个Node对象来保持元素的值和上下的Node的引用 private static class Node<E> { E原创 2017-06-27 13:12:17 · 264 阅读 · 0 评论 -
Java(1.8)集合中的ArrayList
java(1.8)集合中的HashSet Java(1.8)集合类中的HashMap Java(1.8) 集合中的LinkedListList 接口继承于Collection 接口,Collection接口又继承与Iterable接口。 List的所有接口如下: 查看源码,分析ArrayList实现最常用的add 和get, remove方法. ArrayList 的底层实现是用原创 2017-06-27 13:11:32 · 392 阅读 · 0 评论 -
Java内部类
前面写过java内部类 查看java内部类应该是为了隐藏和组织的模式。内部类(非静态)有个对外部类的隐藏引用,可以直接访问外部类的属性和方法。 当内部类可以向上转型为接口的时候,可以定义一个private的内部类来完全隐藏实现细节。interface Printer { void print();}class Office { String printerIP = "127.0原创 2017-06-27 13:10:36 · 227 阅读 · 0 评论