自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 问答 (9)
  • 收藏
  • 关注

原创 java的单例设计模式

单例设计模式,确保了一个类只有一个对象,也就是不会提供对外公开的构造方法创建对象在类的内部进行,对外只提供一个共有的访问对象的方法 单例设计模式又有懒汉式,和饿汉式  懒汉式:懒汉式的设计有两个要点1.double-check的作用在于提高效率,在线程对象访问这个方法时,先判断是否有实例Jvm对象,这样当t1线程已经创建了Jvm对象以后,t2线程就可以直接返回这个J...

2016-05-31 21:53:16 513

原创 解决线程同步带来的访问冲突问题

线程的同步也可以称为并发,由于进程是处理机分配资源的最小单位,就会出现多个线程共同享用一个资源的想象,在带来方便的同时也带来了访问资源冲突这个严重的问题,JAVA语言在提供了专门机制解决这种冲突,有效的避免了同一个数据对象被多个线程同时访问关键字synchronized,在多线程情况下,可以确保资源安全,即线程安全以前提到的HashTable线程安全,HashMap

2016-05-30 16:41:57 5473

原创 线程的阻塞+通过外部干涉终止一个线程

线程的生命周期如何停止一个线程,有两种方式1.自然的终止,线程体正常执行完毕,这个线程就会终止2.外部干涉:    1)在线程体内定义线程体使用的标识    2)在线程体中使用该标识,即run方法中    3)提供对外方法改变该标识    4)外部根据条件调用这个方法见代码示例:public class CloseThre

2016-05-28 13:08:26 2870

原创 通过Callable接口实现多线程

之前通过继承Thread类实现多线程,通过Runnable接口+静态代理实现多线程但是有一个不足之处是,重写run方法时没有返回值也不能抛出异常使用Callable接口就可以解决这个问题Callable接口和Runnable接口的不同之处:1.Callable规定的方法是call,而Runnable是run2.call方法可以抛出异常,但是run方法不行3.Call

2016-05-26 12:35:37 2138

原创 java实现多线程的两个方法

方法一:实现多线程只需继承Thread类,然后重写run方法然后在main方法中创建一个Thread子类对象,调用start方法,启动线程注意我们不可以直接调用run方法,如果直接调用run无法实现多线程,调用start方法后,会将该线程添加到线程组中,交给CPU进行处理调度,系统会自动调用run方法举个例子,龟兔赛跑,分别有两个类代表乌龟和兔子,都继承了Thread类,并

2016-05-24 20:16:12 623

原创 分析理解程序,进程,线程

程序  Program进程  Process线程  Thread 传统的操作系统中使用程序这个概念来描述计算机系统的计算过程,程序可以顺序执行,也可以并发的执行 那么为什么要引入进程呢?操作系统的重要特征是并发与共享,为了提高计算机系统的效率,增强计算机系统内各种硬件的并行操作能力,操作系统要求程序结构适应并发处理的需要,也就是使计算机系统中能同时存在两个以上正在执行的...

2016-05-24 18:56:54 609

原创 IO学习(十八)两个图总结常用javaIO流

2016-05-22 14:48:49 411

原创 IO学习(十七)文件的分割与合并

目的:将文件分割成数个部分,然后再将它们合并起来首先文件的分割,有下面几个要点1.先要确定的两个因素就是,分成多少块,每块多大,那么最后一块的大小不一定刚好能是你规定的每小块的大小,那么最后一块的大小就比较特殊,它等于文件总大小(块数-1)乘以每块大小2.在操作源文件到目的文件,即被分割文件到分割文件时,实际上就是文件的拷贝过程3.最关键的问题是如何控制文件输入流,它必须按

2016-05-22 00:39:50 1324

原创 IO学习(十六)装饰设计模式

在IO学习中,经常会用到处理流,而处理流实际上就是对节点流的装饰,是对原有流的性能的提升这里就使用到了装饰设计模式举个简单例子帮助理解假设这里有个类Voice,但是声音很低,不至于让全场的人听到,那么我们再写一个类MaxVoice扩音器将Voice类的声音扩大,这样两个类就联系到一起了,而MaxVoice类就起到了装饰Voice的作用,增强了Voice类的功能

2016-05-21 21:38:42 492

原创 IO学习(十五)PrintStream打印流

先看看PrintStream的继承体系,它是FileOutputStream的子类,是一个处理流在理解PrintStream如何使用之前,先了解一下System类中三个字段往控制台输出时 ,使用System.out.println();其中System.out这个字段返回的就是打印流,PrintStreamPrintStream

2016-05-21 21:04:34 1829

原创 通过传址来传递和返回对象

#include #include using namespace std;class Test{ private: string name; public: void setName(string& name){ this->name=name; } string& getName(){ return name; } };int ma

2016-05-13 12:20:25 457

原创 const关键字

为参数添加const关键字:表明setNum这个函数 不会改变num的值,只是将num赋值给成员函数class A{public: void setNum(const int num){ this->num=num; }private: int num;}为方法添加const关键字:get函数不需要改变类中的任何数据成员,称这种函数为只读函数

2016-05-13 12:01:26 396

原创 加inline关键字强制转为内联函数

内联函数通知编译器用成员函数的函数体替换掉所有对该函数进行调用的代码,这样在替换后的代码中不再出现对这个函数进行调用的代码在类声明中定义类的各种成员函数,这些成员函数都是inline类型的进行成员函数声明的时候,使用inline关键字,可将原本定义在类声明之外的成员函数强制变成内联函数class Test{Public: inline void myTe

2016-05-12 20:45:00 1926

原创 C++中的类与对象

c++和java对于类,和对象的概念性定义是基本一致的,通过类声明创建一个类,而且将这个类当作数据类型来使用,类声明封装了该类中的数据成员与成员函数。在C++中,以一个类作为数据类型定义的变量就是对象。声明一个类的语法,和java是不尽相同的,在C++中,声明一个类:class Test{ private: int num; public: void setNum(

2016-05-12 20:02:31 526

原创 IO学习(十四)总结IO学习1-13

在javaIO学习过程中,IO流数不胜数,各自的构造方法和常用方法也各有不同,尤其加入处理流,比如缓冲流,转换流以后,创建一个流类对象就显的特别复杂,下面就总结之前1-13种用到所有IO流的常用构造方法,以及流对象的常用方法

2016-05-09 18:13:12 918

原创 IO学习(十三)使用带可变参数的方法关闭IO流

有两个思路,第一种是使用多态,面向接口,第二种使用泛型jdk1.7以后可以使用try with resource,会自动关闭

2016-05-07 18:49:20 971

原创 IO学习(十二)序列化和反序列化

反序列化:输入流 ObjectInputStream序列化:输出流 ObjectOutputStream注意:1.先序列化再反序列化,反序列化顺序必须和序列化一致2.不是所有的对象都可以序列化,自定义的类若想序列化必须实现java.io.Serializable Serializable是一个空接口,标识类可以被序列化3.不是所有的属性都需要序列化,不需要序列化的属性可以使用transient关键字

2016-05-05 19:54:14 458

原创 IO学习(十一)利用字节数组流实现文件拷贝,QuesRemain

1.字节数组流输出流:ByteArrayOutputStream bos=new ByteArrayOutputStream();由于输出流有新增方法,所以这里不可以使用多态输入流:ByteArrayInputStream bis=new ByteArrayInputStream(destByte); InputStream bis=new BufferedInputStream(new ByteArrayInputStream(destByte));

2016-05-05 16:18:24 993

原创 IO学习(十)了解解码与编码,用转换流处理乱码问题

1.编码与解码编码:字符通过编码字符集转为二进制比如给出一个字符串String str="中国";解码:二进制通过解码字符集转为字符用一个byte数组来接受编码后的二进制 byte[] data=str.getBytes();3.转换流 字节流转为字符流输出流 :OutputStreamWriter 编码过程输入流 :InputStreamReader 解码过程

2016-05-03 22:13:05 2003

原创 IO学习(九)字节缓冲流,字符缓冲流

字节缓冲流有:BufferedInputStreamBufferedOutputStream字符缓冲流有:BufferedReader 新增方法readLineBufferedWriter 新增方法newLine

2016-05-01 17:44:55 857

原创 IO学习(八)纯文本的拷贝

用字符流实现纯文本的拷贝

2016-05-01 17:09:07 431

原创 IO学习(七)用字符流进行纯文本的读取和写出

纯文本的读取,步骤:1.建立联系 file对象2.选择流: Reader FileReader3.读取:char[] flush=new char[1024];4.关闭资源

2016-05-01 16:59:26 1212

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除