自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白夜行

Mars

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

原创 java Arrays工具类

/*Arrays是数组工具类。可以很方便的操作数组。其中一个比较重要的方法就是asList方法。把数组变成List集合有什么好处呢:可以使用集合的思想和方法来操作数组中的元素。注意:将数组变成list集合,不可以使用集合的增删方法。因为数组的长度是固定的。如果增删,则会发生UnsupportedOperationException异常。可以使用contains(),get(),in

2016-05-11 09:44:37 1066

原创 java Collections集合工具类

/*Collections是Collection的工具类。工具类中其中两个比较常用的方法就是:1,sort(list) 、 sort(list,自定义比较器)2,max(list) 、 max(list,自定义比较器)3,binarySearch(list,key) //利用折半查找的方法找到list中key元素的索引,存在则返回索引,不存在则返回-(插入点)-1*/

2016-05-11 09:39:47 1150

原创 java 数据装箱及练习-对一个字符串中的数字进行排序

/*八种数据类型:byte,short,int,long,float,double,char,boolean,基本数据类型对象包装类:为了方便操作基本数据类型值,将其封装成对象,在对象中定义了属性和行为丰富该数据的操作。用于描述对该对象的类就称为基本数据类型对象封装类。byte Byteshort Shortint Integerlong Longfloat Flo

2016-05-10 16:12:30 2506

原创 java Map扩展知识练习

/*map扩展知识。map集合被使用是因为映射关系。编程实现以下数据:"yureban" -> "01" "zhangsan""yureban" -> "02" "lisi""jiuyeban" -> "01" "wangwu""jiuyeban" -> "02" "zhaoliu"注意一个键对应一个值,所以根据上面的例子,应该想到这个“值”本身也要是一个集合来存储具有映射关

2016-05-10 15:58:49 1260

原创 java Map练习-获取字符串中字母出现次数(TreeMap实现)

/*练习:"kbashbdjsgfwhofihbfkwejhfiubjzfhaads"获取该字符串中的字母出现次数。希望打印结果:a(3)b(4)d(2)...通过结果发现,每一个字母都有对应的次数。、说明字符和次数之间都有映射关系。注意:当发现有映射关系是,可以选择map集合。因为map集合中存放的就是映射关系。为什么使用map集合呢?当数据之间存在着映射关系时,就想到

2016-05-10 15:57:43 2369

原创 java Map-HashMap、TreeMap练习

/*复习:只要底层数据结构是哈希表的集合,都要覆盖重写两个方法来保证哈希表中元素的唯一性。public int hashCode()public boolean equals(Object obj)(1)HashMap能够保证元素的唯一性,不重复;(原理:在对象类中覆盖hashCode()和equals()方法),对象类可以实现Comparable接口,并实现compare

2016-05-10 15:52:21 1022

原创 java Map集合一

/*Map集合:该集合存储键值对,一对一对往里面存,而且要保证键的唯一性。Map比较重要的三个子类: Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的(JDK1.0)元老级的。效率低。 HashMap:底层是哈希表数据结构,允许使用null键null值。该集合是线程不同步的。(JDK1.2)效率高。 TreeMap:底层数据结构是二叉树,线程

2016-05-10 11:55:37 892

原创 java 泛型

import java.util.*;/*泛型:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个安全机制。好处:1,将运行时出现的类型准换换错误(ClassCastException)转移到编译时期,程序员刻可以及时发现错误并解决。2,避免了强制转换的麻烦。*/class GenericDemo //泛型 { public static void main(S

2016-05-10 11:47:35 756

原创 java 集合框架-TreeSet练习

import java.util.*;/*练习:按照字符串长度排序。字符串本身具备比较性,但是它的比较方式不是所需要的。这时就只能使用比较器注意:在方式二中: int num=new Integer(str1.length()).compareTo(new Integer(str2.length())); 此时num的值有三种可能。正数、负数、零。千万不要写下面的代

2016-05-10 11:27:05 1104

原创 java 集合框架-TreeSet

/*TreeSet可以对Set集合中的对象进行排序;原理,TreeSet在底层调用了Comparable接口的方法compareTo().所以,在使用TreeSet存储自定义对象时,要想实现自定义类对象的自然排序,需要类实现Comparable接口,并重写覆盖接口唯一的方法compareTo().需求:往TreeSet集合中存储自定义对象学生。想按照学生的年龄进行排序。记住:排

2016-05-10 11:23:45 715

原创 Java 集合框架-Vector

/*复习集合框架:Collection |--List:有序的,可重复,有索引 |--ArrayList:底层数据结构是基于数组的,查询速度快,增删速度较慢 |--LinkedList:底层数据结构是基于链表的,查询速度慢,增删速度较快 |--Vector:ArrayList是对Vector的版本升级,Vector是线程同步的,而ArrayList是线程不同步的,需要加锁。 |

2016-05-10 11:22:43 812

原创 java 集合框架-HashSet

/*利用HashSet来存储自定义元素HashSet集合保证元素唯一性的依据:是通过两个方法,hashCode和equals来完成。如果元素的HashCode值相同,才会判断equals是否为true。如果元素的HashCode值不同,不会调用equals。这两个方法都是HashSet调用的,并没有显式调用。注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hash

2016-05-10 11:20:36 989

原创 java 区别“==”和equals()方法

/*Object是所有类的父类:它有一个equals方法,这个方法是用来比较两个对象的引用是否相同,而不是比较对象内容是否相同。"=="比较的是两个对象的引用,Object中的equals方法比较的也是两个对象的引用。所以在Object类中==和equals的作用是一样的。所以在子类中一般会重写覆盖此equals方法,使得equals方法实现比较对象内容是否相同的功能。这时==和equ

2016-05-10 11:19:12 585

原创 java 集合框架-ArrayList存储不重复的自定义对象

/*在ArrayList中存储自定义对象为了实现在ArrayList中存储不重复的对象,需要重写equals方法。remove()方法和contains()方法都会调用equals()方法。在使用HashSet时,也要在对象类中重写两个方法即,hashCode()和equals()方法。因为HashSet会在底层调用这两个函数。首先比较HashCode(对象引用或地址),如果相同,再用e

2016-05-10 11:17:40 3496

原创 java 集合框架-利用LinkedList实现堆栈数据结构

/*利用LinkedList来实现队列(先进先出)和堆栈(先进后出)堆栈:后进先出队列:先进先出*/import java.util.*;/*队列:将LinkedList进行封装,实现队列先进先出的功能特点*/class Duilie { private LinkedList link; Duilie() { link=new LinkedList();

2016-05-10 11:08:22 1723 1

原创 java 集合框架三-LinkedList

/*LinkedList的特有方法:addFirst();//添加元素addLast();getFirst();//获取元素但不删除元素,如果集合中没有元素,则抛出异常。getLast();removeFirst();//获取元素并删除元素,利用remove...方法可以遍历链表中的元素。如果集合中没有元素则抛出异常。removeLast();如果集合中没有元素,会出现

2016-05-10 11:06:31 378

原创 java 集合框架二(list)

/*Collection: |--List:集合中的元素是有序的,可重复的,有索引。 |--Set:集合中的元素是无序的,不可重复的,无索引。List中的特有方法:增 add(index,element); addAll(index,Collection);删 remove(index);改 set(index,element);查 get(index); subLi

2016-05-10 10:55:10 578

原创 java 集合框架一

/*集合框架:为什么会出现这么多容器呢?因为每一个容器对数据的存储方式都有不同。这个存储方式称之为:数据结构。集合框架如下:Collection:遍历元素使用迭代器(iterator) |--List:有索引、可重复 |--ArrayList:底层数据结构是数组 |--LinkedList:底层数据结构是链表 |--Vector: |--Set:无索引、不可重复

2016-05-10 10:43:03 609

原创 java StringBuffer

/*StringBuffer就是装数据的容器。可以进行增删改查(1)C create 存储 StringBuffer append():将指定数据作为参数添加到已有数据结尾处。添加区别于插入。 STringBuffer insert(index,数据);可以将数据插入到指定index位置。(2)U update 删除 StringBuffer delete(start,end

2016-05-10 10:37:13 669

原创 java 异常-运行时异常

/*Exception中有一个特殊的子类异常RunTimeException运行时异常。如果在函数内容抛出该异常,函数上可以不用声明,编译一样通过。如果在函数上声明了该异常。嗲用着可以不要进行处理。编译一样通过。之所以不用在函数声明,是因为不需要让调用者处理。当该异常发生,希望程序停止。因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修改。自定义异常时,如该异常的

2016-05-10 10:16:25 712

原创 java 匿名内部类

/*1,匿名内部类:即普通内部类的简化形式。2,匿名内部类的前提:该匿名内部类继承了某个外部类或实现了某个接口。3,匿名内部类的格式:new 父类或接口(){定义子类的内容}4,匿名内部类其实就是一个匿名子类对象。而且这个对象有点胖。可以理解为带内容的对象。5,匿名内部类中自定义的方法最好不要超过三个。<3个*/abstract class Fu{ abstract void m

2016-05-10 10:13:48 667

原创 java 折半查找 冒泡排序 选择排序

更多查找可以参考 http://www.cnblogs.com/liuling/p/2013-7-24-01.html 这是别人的资源,感觉写的很全。可以仔细研究一下。/*使用折半查找的前提是数据是有序(升序)的。*/class HalfSearchDemo { public static void main(String[] args) { int[] arr={1,

2016-05-10 10:09:42 929

原创 java String类-字符串常见操作

/*String常见的操作:String str="abchgthujidfg";1,获取    1.1字符串包含的字符数,即字符串的长度。    int lenrth():        str.length();   //注意字符串获取长度的方法区别于数组获取长度的方法。数组采用格式:arr.length    1.2根据位置获取位置上的字符。    char

2016-05-09 23:21:53 1105

原创 java String类-获取两个字符串的最长相同子串

/*获取两个字符串中最大相同子串。枚举出长度较短的字符串的所有子串。将子串放在字符串数组中。通过循环判断长度较长的字符串中是否包含字符串数组中的元素,并返回包含且最长的子字符串。*/class StringTest4 { public static void main(String[] args) { string_sub("asddghjukihjughjkssfghyj"

2016-05-09 23:20:37 3909 1

原创 java String类-获取一个字符串在另一个字符串中出现的次数

/*获取一个字符串str1在另一个字符串str2中出现在的次数。思路:获取str1的长度。然后从str2的开头字符开始比较。例如:str1="abc"; str2="agthabclllabcjukabcjhk";str1的长度为3,则先取str2中的子字符串agt,发现不相同,则以第二个字符作为开头,取3个字符,则为gth,发现仍不相等,依次查找下去。 */c

2016-05-09 23:08:55 7500

原创 java String类-字符串反转

/*字符串反转思路:将字符串转化为字符数组,然后对字符数组进行反转,将反转后的数组转为字符串即可。步骤:1,将字符串转化为数组str.toCharArray()2,将数组反转。 for(int i=0;i<len/2;i++) { temp=arr[i]; arr[i]=arr[len-1-i]; arr[len-1-i]=temp; }3,利用字符串的构造函数将数组转

2016-05-09 23:07:26 950

原创 java 线程七-Lock锁

JDK1.5中提供了多线程升级解决方案。将同步synchronized替换成显式Lock操作。将Object中的wait,notify,notifyAll,替换成了condition对象。该对象可以通过Lock锁进行获取。一个Lock锁可以生成多个condition对象。该示例中实现了本方只唤醒对方的操作。import java.util.concurrent.lock

2016-05-09 23:03:33 757

原创 java 线程六-解决线程安全隐患问题-加锁

需求:银行有一个金库有两个储户分别存300元,每次存100,共存三次。目的:判断该程序是否有安全问题,如果有该怎么解决?如何找出安全隐患?1,明确哪些代码是多线程运行代码。2,明确共享数据。3,明确多线程运行代码中哪些是操作共享数据的。*//*解决线程安全隐患问题,有两种方法:1,使用synchronized(对象){同步代码块}2,使用

2016-05-09 23:01:02 886

原创 java 线程五-死锁经典举例

/*死锁经典举例。*/class Test implements Runnable{ private boolean flag; Test(boolean flag) { this.flag=flag; } public void run() { if(flag) { while(true) { synchronized(Loc.obja)

2016-05-09 22:58:09 299

原创 java 线程四

/*简单的卖票程序,实现多个窗口同时卖票*//*创建现成的第二种方法:实现Runnable接口步骤:1,定义类实现Runnable接口。Runnable接口中只有一个抽象方法,就是run方法。2,覆盖Runnable接口中的run方法。    将线程要运行的代码放在此run方法中。3,通过Thread类建立线程对象。4,将Runnable接口的子类对象作为实际参

2016-05-09 22:55:51 716

原创 java 线程三

线程间的通信问题。注意同步的前提:1,有两个或两个以上的线程2,用同一个锁wait()notify()notifyAll()以上方法都是定义在Object类中的方法。都使用在同步中,因为要对持有监视器(加锁)的线程操作。所以要使用在同步中,因为只有同步才会有锁。为什么这些操作线程的方法要定义在Object类中呢?因为这些方法在操作同步中线程时,都

2016-05-09 22:54:41 636

原创 java 线程二

/*多线程死锁问题。*/class Tacket implements Runnable //extends Thread{ private static int sum=200;//sum是共享数据,放在堆内存中,所有线程访问这一个共享数据。在一个线程运行完之后,共享数据要被同步修改。 Object obj=new Object(); boolean flag=true; pu

2016-05-09 22:53:51 605

原创 java 线程一

/*在某一时刻,CPU只能执行某个进程中的某个线程(多核除外,多核即多个CPU)。为什么感觉看电视和打游戏可以同时执行?这是因为CPU在各个应用程序之间在不断快速地切换,快到你根本不会感觉出来。而且当某个进程中有多个线程时,CPU也是在切换着执行各个线程,这样一来就会加快整个程序执行完成的速度,给人的感觉就是线程在同步执行。现实生活中我们可以感受到的是电脑打开的应用程序越多感觉会越

2016-05-09 22:34:57 819

原创 java 异常六-总结

异常是什么:是对问题的描述。将问题进行对象的封装。异常体系:    Throwable        |--Error        |--Exception            |--RuntimeException异常体系的特点:异常体系中的所有类及建立的对象都具备可抛性。                也就是说可以被throw和throws关键字所操作。

2016-05-09 22:29:35 560

原创 java 异常五

/*对检测时异常进行处理的方式:1,不仅在函数上进行声明,而且还在函数内部进行catch,对异常进行处理解决;2,仅在函数上进行声明,不在函数内部进行处理,此时便把异常抛给了虚拟机,在运行时还是会出现异常。3,如果异常在函数内部解决了,就不用再函数上进行声明了。*//*异常在子父类覆盖中的体现:1,子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法

2016-05-09 22:28:55 702

原创 java 异常四

/*捕获异常的三种格式:*//*第一种格式*/try{ }catch (){}/*第二种格式*/try{ }catch (){}finally{}/*第三种格式*/try{ }finally{}//记住一点:catch适用于处理异常。如果没有catch就代表异常没有被处理过,如果该异常是检测时异常(非RuntimeException运行

2016-05-09 22:27:45 880

原创 java 异常三

在异常中,finally代码块中的代码是一定可以执行到的。无论出没出现异常都一定会执行finally代码块中代码。finally重要作用的举例:与数据库进行数据交互的过程:1,连接数据库;2,操作数据;3,断开与数据库的连接;此需求可以在finally代码块中实现。//关闭数据库是非常重要的,因为数据库服务器可提供的数据库连接数量是有限的,当不使用数据库时,一定要断开连

2016-05-09 22:26:55 261

原创 java 异常二

在本程序中,对于除数是-1,也视为是错误的,是无法进行运算的。那么就需要对这个问题进行自定义的描述。当在函数内部出现了throw抛出异常对象,那么,就需要给对应的处理动作。要么在内部try catch处理;要么在函数上声明让调用者处理。一般情况下,函数内出现异常,函数上需要声明。如何快速定义异常信息呢?因为父类中已经把异常信息的操作都完成了。所以子类只要在构

2016-05-09 22:25:35 690

原创 java 异常一

异常:就是程序在”运行时“出现的不正常情况。异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象。          其实就是java对不正常情况进行描述后的对象体现。对于问题的划分:两种:一种是严重的问题,一种是非严重的问题。对于严重的,java通过Error类进行描述。——对于Error一般不编写针对性的代码对其进行处理。对于非

2016-05-09 22:23:38 629

原创 java 内部类

内部类的访问规则:1,内部类可以直接访问外部类中的成员,包括私有。被private修饰的成员只能在定义它们的类中使用,在其他类中不能使用。   之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类中的引用,格式:外部类名.this.  例如:Outer.this.num2,外部类要访问内部类,必须先建立内部类对象。访问格式:1,当内部类定义在外部类的成员位置上,

2016-05-09 22:20:09 557

空空如也

空空如也

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

TA关注的人

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