自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鲸鱼programmer的博客

纪录了平时自己学习的过程

  • 博客(21)
  • 收藏
  • 关注

原创 线程安全与线程通信

一、线程安全出现的原因     在使用多线程的时候,往往会出现线程安全的问题,我们直到一个共享数据是可以由多个线程一起操作的,但是当一个共享数据在被一个线程操作的过程中,操作未被执行完毕,而此时另一个线程参与进来操作该共享数据,就会导致共享数据存在安全问题二、解决线程安全问题     解决线程安全问题的办法就是当共享数据被一个线程操作完毕后,才能允许其他线程进行操作,所以这里有两个解决

2017-05-29 18:53:16 335

原创 多线程的创建

一、用继承java.lang.Thread的方法创建多线程     创建多线程可以让一个类通过继承Thread类并且重写其run()方法来创建,在run()方法中应该写上该线程要实现的具体功能,创建好多线程后,可以在主函数中创建其对象,通过该对象去调用start()方法(不能调用run())来启动此线程,但是一个线程只能执行一次start()方法,具体的创建过程看下面的代码://通过继承创

2017-05-29 10:40:16 287

原创 RandomAccessFile

RandomAccessFile可以支持文件的随机访问,即它有如下特点:1、既能充当一个输入流,也能充当一个输出流,并且它操作的是字节型2、它支持从一个文件的任意位置进行写入(即利用seek(long i)方法来表示从文件的第几个字符前开始插入,但是这里的插入所指的是覆盖)     之所以它能这样做,是因为它的构造器RandomAccessFile(File f , String mo

2017-05-28 19:44:51 227

原创 IO流之对象流

一、ObjectInputStream与ObjectOutputStream     对象流是用来存储和读取对象的流,它可以将对象写入数据源中,也可以将对象从数据源读取出来,整个的过程叫做序列化与反序列化     1、序列化          序列化是用ObjectOutputStream将JAVA中的一个对象写入到IO流中(利用其中的writerObject()方法等),也就是说,它

2017-05-28 14:43:39 236

原创 IO流之缓冲流

缓冲流与节点流类似,也是由四个IO流的抽象基类继承过来的,与节点流不同的地方就在于缓冲流的效率更高,且缓冲流的构造器形参是节点流,下面是四个缓冲流:①BufferedInputStream②BufferedOutputStream③BufferedReader④BufferedWriter一、BufferedInputStream与BufferedOutputStream的使用

2017-05-27 23:07:27 250

原创 IO流之节点流

JAVA中的IO流是用来处理设备之间的数据传输的IO流的接口都存放在java.io包下,它的主要分类如下一、流的分类     1、流的分类主要是根据流向的不同可以分为分为输入流、输出流     2、根据处理数据的单位分为字节流与字符流     3、按照角色的不同可以分为节点流和处理流二、IO体系     抽象基类:抽象基类本身是没有方法能够去调用的,需要通过它的子类去调

2017-05-27 17:07:46 544

原创 File类及其方法

File类存在与java.io.File包下,File类是一个类,可以有构造器及创建其类对象,此对象对应着一个文件(.txt .doc等)或者目录,File类对象是可以跨平台的,但是在File类中只能对文件进行创建,删除,重命名等,并不能对其内容进行操作,涉及到对文件的操作就必须用io流来控制了,也就是说,Flie类的对象常常被用来作为io流对象的构造器的形参,让io类对象可以对其进行操作。 

2017-05-26 19:06:53 424

原创 枚举类

在JDK1.5之后新增了一个关键字叫做enum,利用这个关键字可以进行枚举类的创建,例如:          enum Person{        MM,GG ,JJ;}          上面这个是最简单的枚举类的创建了,可以看到之中的三个对象之间都是用逗号隔开的,最后一个对象用封号,例子中的MM,GG,JJ都是枚举类Person的对象,所以是可以对他们进行实例化的。既然枚举类

2017-05-24 23:03:29 202

原创 自定义泛型

除了在集合中我们可以使用已经定义好的泛型之外,我们自己还可以自定义泛型,如:自定义泛型类、自定义泛型方法。一、自定义泛型类具体的定义方法如下:          public class GenericBySelf {        private String name ;        private Integer id ;        private T t 

2017-05-24 17:14:32 353

原创 通配符:?

我们都知道,所有基本数据类型都是Object类的子类,因此他们满足多态:Object  A = new String("AA");,但是对于泛型,是否满足多态呢,答案是否定的,因为每一个泛型与泛型之间都是并列关系,是不能够向上转型,即不满足多态的比如:              List L1 = new ArrayList              List L2 = new Array

2017-05-24 17:04:34 315

原创 在集合中使用泛型

泛型是Jdk4.0以后的版本中所增加的新特性,增加这个新特性的原因是为了去解决元素存储的安全问题以及在获取和输出元素时需要进行强制转换的问题。     我们都知道,在没有使用泛型的时候,创建一个集合时编译器是不会报错的,就像下面这样List B =new ArrayList();     但是编译器会有个警告,意味着我没们有加泛型,因为我们在创建了上面这个List类的集合B后,添加的元

2017-05-22 13:09:22 1340

原创 Collections工具类

Collections是一个操作Set、List、map等集合的工具类,他其中提供了一些static方法对集合中的元素进行排序、查询、修改等一系列操作,同时还有对集合对象设置不可变,对集合对象实现同步控制等方法。          下面是一些static方法:     1、void reverse(List e)  将List集合e中的元素顺序颠倒     2、void shuffle

2017-05-21 16:11:16 222

原创 Map接口及其实现类

Map接口,是和Collection接口并列的一个接口,它其实是一个有着映射关系的集合"key-value(也可以叫entry)"(就像数学中的函数一样),由于key存储时用的是set来存储,所以key是不可重复的,而value是用Collection存储的,它是可重复的,整个的key-value是用set来存放的,即一个key有唯一一个对应的value(就像y = k(x)一样),所以它也是

2017-05-21 14:49:35 997

原创 Set接口中的TreeSet

TreeSet也是List的一个子类,它同样是拥有Collection接口的所有方法,TreeSet类主要有以下几个特点:1:TreeSet类中所存储的元素必须是属于同一个类的2:TreeSet类可以按照所添加进如集合的元素的指定的顺序进行遍历。比如按字典的排序顺序遍历。     我们先来看一个例子:import java.util.Set;import java.util.T

2017-05-18 23:47:09 419

原创 Set接口中的HashSet与LinkedHashSet

Set接口也是Collection接口下的一个子接口,它主要包含以下三个实现类:1:HashSet2:LinkedHashSet3:Treeset     其中,HashSet是Set接口中的主要实现类,下面具体介绍一下Set1:Set类和List类相反,它所存入的元素的顺序是无序性的并且是不可重复的,也就是说事先存入的时候我们并不能够知道被存入元素将会被放在哪个位置,并且如果

2017-05-18 15:35:04 428

原创 List接口

List接口是Collection接口的一个子接口,在List接口下也有一些子类,这里先不细说;List接口的主要实现类是用ArrayList来实现的,ArrayList是List下的一个子类,一般把它叫做动态数组。那么既然List是Collection的一个子类,它就一定包含了其父类Colection的全部方法,同时还新增了一些方法如下:1:void add(int Index , Obje

2017-05-17 18:14:56 309

原创 集合(容器)

JAVA中的集合主要是用来干嘛的呢?在JAVA语言中,为了方便对多个对象的操作,我们就需要一些能够存储这些对象的东西,虽然数组Array可以实现这个功能,但是它是有一定的弊端的。这时候就要用到JAVA集合了,JAVA集合就像一种容器,能够动态的将对象存入容器中。     先说说数组,虽然数组也可以用来存储对象,但是它是有它的弊端的          ①数组一旦被创建后,它的长度是不可变得,

2017-05-17 16:44:28 749

原创 异常

所谓异常,就是指在JAVA语言中,程序执行的过程中发生了不正常的情况。在我们通常情况下编写代码时编译时出现的那些语法错误和逻辑错误不是异常。对于JAVA中的异常,可以分为error(错误)和exception(异常)两大类。对于error,它指的是JAVA虚拟机无法解决的严重的问题,一般来说我们代码编写员是不编写相应的代码对他进行处理的。JAVA中的异常处理主要处理的是exceptio

2017-05-14 21:40:07 231

原创 内部类

所谓内部类就是在一个内部再声明一个类,我们把外面的那个类叫做外部类,在外部类中定义的类叫做内部类;内部类大致分为两种,一种是成员内部类(在类的成员方法之外的类),第二种是局部内部类(在外部类的成员方法之中的类)。1:成员内部类     成员内部类相当于就是内部类的一个成员,也就是说,成员内部类可以用一下几种修饰符进行修饰:public,private,default,protected,a

2017-05-14 20:56:57 244

原创 接口(interface)

谈到接口,可以把它理解为一个特殊的抽象类(接口是没有构造器的),为什么这么说呢?因为接口是由常量与抽象方法所组成的一个集合。     要定义申明一个接口,必须要用到interface关键字如:interface A{.....}     在接口中,只存在常量和抽象方法,其中的常量是用 public static final 所修饰的一个常量,如:public static final

2017-05-14 20:29:26 249

原创 JAVA中的抽象类(abstract class)

1:抽象类     所谓的抽象类,就是用abstract关键字修饰的一个类(abstract class Person{......}),它不能被实体化(如果尝试实体化,编译器是会报错的),它能够被其他类继承,抽象类中一般是有抽象方法存在的,抽象类有构造器,但其抽象方法只保留了功能的申明,具体实现要在其子类中进行。但在其子类中,如果没有重写其所有的抽象方法,那么这个子类必须也用abstract

2017-05-14 20:16:24 502

空空如也

空空如也

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

TA关注的人

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