Java
文章平均质量分 72
薰衣草
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
接口
为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口。接口的声明与使用声明:接口:是一个特殊的抽象类。当抽象类中的方法都是抽象的时,那么该类可以通过接口的形式来表示。接口定义时,格式特点:1.接口中常见定义:常量,抽象方法。2.接口成员都有固定修饰符常量:public static final方法: public abstract格式:inter原创 2015-04-12 17:34:54 · 447 阅读 · 0 评论 -
生产者和消费者问题
生产者和消费者问题:假设有一个仓库,生产者生产产品放入仓库中,消费者从仓库中消费产品。生产者和消费者有多个。class ProducerConsumerDemo{ public static void main(String[] args) { Resource r = new Resource(); Producer pro = new Producer(r); Co原创 2015-04-28 21:13:05 · 618 阅读 · 0 评论 -
StringBuffer
StringBuffer 是一个字符串缓冲区,是一个容器。 1.长度是可以变化的。2.可以字节操作多个数据类型3.最终会通过toString方法变成字符串 (CURD)creat update read delete 1.存储StringBuffer append():将指定数据作为参数添加到已有数据的结尾处StringBuffer insert(ind原创 2015-05-04 19:11:39 · 415 阅读 · 0 评论 -
泛型
泛型:JDK1.5版本以后出现新特性。用于解决安全问题,是一个安全机制。好处:1.将运行时期出现问题ClassCastException,转移到了编译时期。方便于程序员解决问题,让运行事情问题减少,安全了。2.避免了强制转换麻烦。 泛型格式:通过来定义要操作的引用数据类型。 在使用Java提供的对象时,什么时候写泛型呢?通常在集合框架中很常见。只要见到就要定义泛型。原创 2015-05-12 17:02:29 · 370 阅读 · 0 评论 -
String类
String类适用于描述字符串事物,那么它就提供了多个方法对字符串进行操作。 常见的操作: 1.获取 1。1字符串中包含的字符数,也就是字符串的长度 int length():获取长度 1.2根据位置获取位置上的某个字符 char charAt(int index) 1.3根据字符获取该字符在字符串中的位置 int indexOf(int ch):返回ch在字原创 2015-05-04 19:12:21 · 422 阅读 · 0 评论 -
集合类共性方法及迭代器
为什么出现集合类?面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。 数组和集合类都是容器,有何不同?数组长度固定,集合长度可变;数组存储基本数据类型,集合只可以存储对象。 集合的特点:集合只用于存储对象,长度是可变的,集合可以存储不同类型的对象。为什么会出现这么多的容器?因为原创 2015-05-04 20:48:33 · 469 阅读 · 0 评论 -
Set
Set:无序,不可以有重复元素 HashSet:数据结构是哈希表,线程是非同步的。 保证元素唯一性的原理:判断元素的hashCode值是否相同。如果相同,继续判断 元素的equals方法是否为true。 TreeSet:可以对Set集合中的元素进行排序。 底层数据结构是二叉树。 保证元素唯一性的依据:compareTo方法retrun 0. TreeSet排序的第原创 2015-05-15 19:40:25 · 334 阅读 · 0 评论 -
LinkedList
LinkedList的特有方法:addFirst();addLast();getFirst();getLast();获取元素但不删除元素。如果集合中没有元素,会出现NoSuchElementException异常。 removeFirst();removeLast();获取元素同时删除元素。如果集合中没有元素,会出现NoSuchElementExcept原创 2015-05-07 16:48:04 · 403 阅读 · 0 评论 -
List集合
CollectionList:元素是有序的,元素可以重复。因为该集合体系有索引。1>ArraryList:底层的数据结构使用的是数组结构。特点:查询速度快,但是增删较慢。线程不同步2>LinkedList:底层使用的是链表结构。特点:增删速度快,查询速度慢3>Vector:底层是数组数据结构。线程同步。被ArrayList替代了Set:元素是无序的,元素不可以重复List:原创 2015-05-05 11:10:32 · 519 阅读 · 0 评论 -
Map集合
Map集合:该集合存储键值对。一对一往里存,而且保证键的唯一性。1.添加a)put(K key,V value):将指定的值与此映射中的指定键关联b)putAll(Map m):从指定映射中将所有映射关系复制到此映射中2.删除a) clear():从此映射中移除所有映射关系。b) remove(Object key):如果存在一个键的映射关系,则将其从此映射中移除3.原创 2015-05-17 19:05:19 · 463 阅读 · 0 评论 -
IO流——字符流输入输出
字符流和字节流:字符流两个基类:InputStream和OutputStream 字节流两个基类:Reader和Writer 先学一下字符流的特点 既然IO流是用于操作数据的,那么数据的最常见体现形式是:文件 那么先以操作文件为主来演示。/*需求:在硬盘上,创建一个文件并写入一些文字数据。找到一个专门用于操作文件的Writer子类对象,FileWr原创 2015-05-21 20:57:18 · 538 阅读 · 0 评论 -
IO流——File类
File类用来将文件或文件夹封装成对象方便对文件与文件夹的属性信息进行操作File对象可以作为参数传递给流的构造函数import java.io.*;public class FileDemo { public static void main(String[] args) throws IOException { consMehtod(); } public s原创 2015-06-06 21:35:12 · 399 阅读 · 0 评论 -
GUI
容器中的组件的排放方式,就是布局。常见的布局管理器:FlowLayout(流式布局管理器)从左到右的顺序排序Panel默认的布局管理器BorderLayout(边界布局管理器)东、南、西、北、中Frame默认的布局管理器GridLayout(网格布局管理器)规则的矩阵CardLayout(卡片布局管理器)选项卡GridBagLayout(网格包布局管原创 2015-06-06 21:41:52 · 436 阅读 · 0 评论 -
IO流——字节流输入输出
/* 字节流: 读:InputStream 写:OutputStream 需求:想要操作图片数据,这是就要用到字节流。 */import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class FileStream{ public s原创 2015-05-25 20:53:21 · 421 阅读 · 0 评论 -
基本数据类型
基本数据类型对象包装类 byte Byteshort shortint Integerlong Long boolean Boolean float Float double Double char Character 基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间转换 基本数据类型原创 2015-05-04 19:08:00 · 452 阅读 · 0 评论 -
线程通讯
线程通讯:其实就是多个线程在操作同一个资源,但是操作的动作不同。解决安全问题class Res{ String name; String sex;}class Input implements Runnable{ private Res r; Input(Res r) { this.r = r; } public void run() { i原创 2015-04-28 19:14:02 · 347 阅读 · 0 评论 -
多线程——安全问题
多线程运行可能出现安全问题 以买票程序为例,共有100张票,四个窗口同时买票。class Ticket implements Runnable{ private int tick = 100; public void run() { while(true) { if(tick > 0) { try { Thread.sleep(原创 2015-04-25 16:48:48 · 394 阅读 · 0 评论 -
多线程的创建方式
创建新执行线程有两种方法。一种是将类声明为Thread的子类。该子类应重写Thread类的run方法。步骤:1.定义类继承Thread,建立子类对象的同时线程也被创建。2.复写Thread类中的run方法目的:将自定义代码存储在run方法中,让线程运行3.调用线程的start方法该方法两个作用:启动线程, 调用run方法 class Test extends T原创 2015-04-24 16:39:13 · 501 阅读 · 0 评论 -
多态性
多态:可以理解为事物存在的多种体现形态比如:人:男人,女人动物:猫,狗。猫 x = new 猫();动物 x = new 猫();猫既是猫类型,又是动物类型。多态的体现:父类的引用可以接收自己的子类对象多态的前提:必须是类与类之间有关系(继承或实现);通常还存在覆盖多态的好处:大大提高了程序的扩展性多态的弊端:只能使用父类的引用访问父类的成员多态的应用:原创 2015-04-14 16:05:37 · 363 阅读 · 0 评论 -
类和对象1
Java是面向对象的程序设计语言,面向对象编程主要体现以下3个特性: 1.封装性面向对象编程的核心思想之一就是将数据和对数据的操作封装在一起,通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如类的概念。信息隐藏作用只让可信的对象操作。 2.继承性子类可以继承父类的属性和功能,同时又可以增添子类独有的数据和数据上的操作。 3.多态性一种是操作名称的多态。原创 2015-04-08 20:52:00 · 386 阅读 · 0 评论 -
类和对象3
继承是一种有已有的类创建新类的机制。利用继承,可以先编写一个共有属性的类,再根据该一般类编写具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加新的状态和行为。Java不支持多重继承(子类只能有一个父类)。作用:1.提高了代码复用性。2.让类与类之间产生了关系。有了这个关系,才有了多态的特性。注意:千万不要为了获取其他类的功能,简化代码而继承。必须是类与类之间有所属关系才原创 2015-04-09 19:57:23 · 427 阅读 · 0 评论 -
Java基本语句
标识符:定义:用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列。语法规则:1>标识符由字母、数字、下划线、美元符号组成,长度不受限制。 2>标识符的第一个字符不能是数字字符。 3>标识符不能是关键字。 4>标识符不能是true、false和null(尽管它们不是Java关键字)。注意:标识符中的字母区分大小写,起名字时尽量“见明知义”。原创 2015-04-09 20:03:27 · 446 阅读 · 0 评论 -
数据类型
一、逻辑类型常量:true、false变量:使用逻辑变量boolen来声明逻辑变量,声明时也可以附初值。如:Boolen x,ok = true,关闭 = false;二、整数类型1、字节型:byte变量:使用关键字byte来声明。例如:Byte x = -12,漂亮 = 98;常量:Java中不存在byte型常量的表示法,但可以把一定范围内的int型常量赋值给by原创 2015-04-09 20:04:35 · 559 阅读 · 0 评论 -
数组
概念:同一种数据类型的集合,其实数组就是一个容器。数组属于引用型变量。1、声明数组1>声明一维数组的两种格式:数组的元素类型 数组名字[];数组的元素类型[] 数组名字;2>声明二维数组的两种格式:数组的元素类型 数组名字[][];数组的元素类型[] 数组名字[];注:Java不允许在声明数组的方括号内指定数组元素的个数。2.创建数组分配原创 2015-04-09 20:06:52 · 506 阅读 · 0 评论 -
多线程概述
基本概念程序:一段静态的代码,它是应用软件执行的蓝本。进程:是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。每一个进程执行都有一个执行单元。该顺序是一个执行路径,或者叫一个控制单元。线程:就是进程中的一个独立的控制单元。线程控制着进程的执行,线程间可以共享相同的内存单元。 Java的多线程就是在操原创 2015-04-24 15:59:54 · 454 阅读 · 0 评论 -
内部类
在一个类中声明另一个类,这样的类称为内部类。当描述事物时,事物的内部还有事物,该事物用内部类来描述。因为内部事物在使用外部事物的内容。内部类的访问规则:1.内部类可以直接访问外部类中的成员,包括私有。之所以可以直接访问外部类的成员,是因为内部类中持有了一个外部类的引用,格式为:外部类名.this2.外部类要访问内部类,必须建立内部类对象。注意:当内部类中定义了静态成员,原创 2015-04-16 20:47:43 · 404 阅读 · 0 评论 -
多线程——同步函数
来看下面这个程序/*需求:银行有一金库。有两个储户分别存300元,每次存100,存3次。目的:该程序是否有安全问题。如果有,如何解决?*/class Bank{ private int sum; public void add(int n) { sum = sum + n; System.out.println("sum =原创 2015-04-26 16:37:53 · 520 阅读 · 0 评论 -
单例模式
单例模式分三种:懒汉式单例,饿汉式单例,登记式单例单例模式有以下特点:1.单例模式只能有一个实例2.单例类必须自己创建自己的唯一实例3.单例类必须给所有其他对象提供这一实例//懒汉式 延迟加载class Single{ private static Single s = null; private Single(){} public stat原创 2015-04-26 17:33:27 · 334 阅读 · 0 评论 -
死锁
死锁现象:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期的阻塞,因此程序不可能正常终止。 死锁产生的四个必要条件:1.互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用。2.不可抢占,资源请求者不能强制从资源占有者中夺取资源,资源只能由占有者主动释放。3.请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。4.循原创 2015-04-26 20:27:46 · 438 阅读 · 0 评论 -
停止线程
如何停止线程?只有一种,run方法结束。开启多线程运行,运行代码通常都是循环结构。只要控制住循环(添加标记),就可以让run方法结束,也就是线程结束。class StopThread implements Runnable{ private boolean flag = true; public void run() { while(flag) { S原创 2015-04-29 20:44:08 · 378 阅读 · 0 评论 -
Final Abstract
Final关键字Final关键字可以修饰类、变量和函数。Final类被final修饰的类不可以被继承。为了避免被继承,被子类复写功能。Final方法被final修饰的方法不可以被复写。常量被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量也可以修饰局部变量。当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字。而这个值不原创 2015-04-10 17:10:21 · 403 阅读 · 0 评论
分享