
[Java 核心疑难]
MarioFei
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java多线程(1) 创建
一.线程的生命周期及五种基本状态关于Java中线程的生命周期,首先看一下下面这张较为经典的图:Java线程具有五中基本状态新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread();就绪状态(Runnable):当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程原创 2016-04-12 13:45:24 · 859 阅读 · 0 评论 -
Java输入输出(1)基础知识
1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法。 Java.io是大多数面向数据流的输入/输出类的主要软件包。此外,J转载 2016-04-20 13:29:33 · 830 阅读 · 0 评论 -
Java输入输出(2) 层次体系结构
4.java.IO层次体系结构 在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了 Java I/O主要包括如下几个层次,包含转载 2016-04-20 15:00:56 · 1880 阅读 · 0 评论 -
Java文件流 BufferedStream
一、BufferedInputSream 出现的目的是为了提高读取文件的效率,但是BufferedInputStream的read的方法每次读取一个字节数据,而FileInputStream每次也是读取一个字节的数据,那么BufferedInputStream效率从何而来?BufferedInputStream:是从内存中的缓冲数组读取的。FileInputStream:是从硬盘中直接转载 2016-04-19 23:22:38 · 1887 阅读 · 0 评论 -
Java多线程(6) 线程池
什么原因使我们不得不使用线程池? 个人认为主要原因是:短时间内需要处理的任务数量很多 使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存 以下是Java自带的几种线程池: 1、newFixedThreadPool 创建一个指定工作线程数量的线程池。原创 2016-04-18 16:56:50 · 604 阅读 · 0 评论 -
Java多线程(5) interrupt
一.简述interrupt()不会中断一个正在运行的线程。方法实际完成的是:在线程受到阻塞时抛出一个中断信号,线程就得以退出阻塞的状态。 更确切的说, 如果线程被Object.wait,Thread.join,Thread.sleep三种方法之一阻塞,那么,它将接收到一个中断异常(InterruptedException),从而提早地终结被阻塞状态。、原创 2016-04-17 21:50:35 · 626 阅读 · 0 评论 -
Java多线程(4)线程组
Java并发 API里有个有趣的方法是把线程分组。这个方法允许我们按线程组作为一个单位来处理。例如,你有一些线程做着同样的任务,你想控制他们,无论多少线程还在运行,他们的状态会被一个call 中断。【类比就是你想控制一批人,利用这些线程来完成一些任务,进行统一的管理和监控】例子:public class ThreadGroupTest { public sta原创 2016-04-17 20:46:19 · 531 阅读 · 0 评论 -
Java多线程(3) 线程之间通信
线程间的相互作用 线程间的相互作用:线程之间需要一些协调通信,来共同完成一件任务。 Object类中相关的方法有两个notify方法和三个wait方法: http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html 因为wait和notify方法定义在Object类中,因此会被所有的类所继承。原创 2016-04-15 10:17:57 · 648 阅读 · 0 评论 -
Java多线程(2) 同步
一.简述要说明线程同步问题首先要说明Java线程的两个特性,可见性和有序性。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现。拿上篇博文中的例子来说明,在多个线程之间共享了Count类的一个对象,这个对象是被创建在主内存(堆内存)中,每个线程都有自己的工作内存(线程栈),工作内存存储了主内存Count对象的一个副本,当线程操作Count对象时,首先从主内存复制Coun原创 2016-04-13 15:21:21 · 630 阅读 · 0 评论 -
Java异常处理(2)
java.lang.Exception类是Java中所有异常的直接或间接父类。即Exception类是所有异常的根类。 比如程序: public class ExceptionTest{ public static void main(String[] args) { int a = 3; int转载 2016-04-27 19:45:05 · 481 阅读 · 0 评论 -
Java异常处理(1)
1.Java异常机制Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:图片来源:http://blog.youkuaiyun.com/wuwenxiang91322/article/details/103463372.Throw转载 2016-04-27 19:22:15 · 450 阅读 · 0 评论 -
Java输入输出深入序列化(5)
要搞清楚,什么情况下需要实例化? 1、当你想把的内存中的对象状态保存到一个文件中或者数据库中时候; 2、当你想用套接字在网络上传送对象的时候; java对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整转载 2016-04-25 20:58:12 · 642 阅读 · 0 评论 -
Java输入输出(4)序列化
一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是We转载 2016-04-21 22:16:16 · 702 阅读 · 0 评论 -
Java输入输出(3) 处理流和节点流
首先,流是什么?流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。流具有方向性,至于是输入流还是输出流则是一个相对的概念【取决于流向】,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。可以将流想象成一个“水流管道”,水流就在这管道中形成了,【水滴救转载 2016-04-21 11:13:14 · 1053 阅读 · 0 评论