- 博客(42)
- 资源 (6)
- 收藏
- 关注
原创 Float类型数据的不寻常
Float f=1234567.899f; System.out.println(f); System.out.println(f==1234567.899);结果:1234567.9false 小数不要用==比较,只能判断一个小数是否在某个公差范围内,就像要描述一直铅笔的粗细一样,只能是φ3.5±0.0001。编译器把1234567.899这几个符号变成四字节
2013-06-29 14:36:49 1051
原创 JavaGUI
GUI--Graphical User Interface(图形用户接口)CLI--Command Line Interface(命令行用户接口)Java为GUI提供的对象都存在java.awt和javax.swing。java.awt:Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能。属于重量级控件。由这个包开发的软件,在不同系统呈现的外
2013-06-29 11:08:37 1165
原创 关于键盘录入的问题
键盘录入一般有两种方式,①Scanner input=new Scanner(System.in)②BufferedInputStream input=new BufferedInputStream(System.in);那么,这两种方式的区别是什么?Scanner是util包中的类。Scanner:一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。 //处理文
2013-06-28 23:04:21 734
原创 集合框架(HashSet,HashMap,HashTable)
一,Map集合的基本操作package fighting;import java.util.Collection;import java.util.HashMap;import java.util.Map;public class MapDemo { /** * Map:存储一组成对的键值对象,key不要求有序,但不能重复;value也不要求有序,但允许重
2013-06-28 09:48:16 890
原创 什么时候使用多线程
先补充几个小知识:一,线程的toString方法,返回该线程的字符串表示形式,包括线程名称、优先级和线程组。二,线程的优先级默认是5,可以通过setPriority()方法更改线程的优先级。1-10中,1、5、10的效果最明显,所以用常量表示MIN_PRIORITY\NORM_PRIORITY\MAX_PRIORITY。三,线程的yield()方法暂停当前正在执行的线程对象,并执行
2013-06-27 13:46:33 1850
原创 线程的join方法
package fighting;public class ThreadJoin { /** * join方法: * 当A线程执行到了B线程的join方法时,A就会等待,等B线程都执行完,A才会执行。 * * join方法可以用来临时加入线程执行。 * */ public static void main(String[] args)
2013-06-27 12:58:28 719
转载 Java中继承Thread和实现Runnable这两种创建线程有何区别
Java中线程的创建有两种方式:1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中2. 通过实现Runnable接口,实例化Thread类在实际应用中,我们经常用到多线程,如车站的售票系统,车站的各个售票口相当于各个线程。当我们做这个系统的时候可能会想到两种方式来实现,继承Thread类或实现Runnable接口,现在看一下这两种方式实现的两种
2013-06-26 22:30:04 984
原创 停止线程
注意一种特殊情况:线程调用wait方法进入冻结状态(中断状态)时,不会读取到标记,如果没有唤醒,那就会一直等待,结束不了。这时候,可以使用interrupt方法,是程序中断,这个方法会抛出InterruptedException异常,可以把在catch块里改变线程标记,使线程结束。一,停止线程package fighting;public class ThreadStopDemo { /*
2013-06-26 18:00:24 526
原创 生产者-消费者的经典案例升级版(jdk1.5版)
在jdk1.5中,多了一个新包java.util.concurrent,在这个包下面有关于线程操作的接口和类。这里主要用到了Lock和Condition。 package fighting;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import jav
2013-06-26 16:07:33 764
原创 生产者-消费者的经典例子
package fighting;public class ThreadProducerConsumer { /** * 生产者-消费者的例子 * 对于多个生产者和消费者,为什么要定义while判断标记, * 原因:让被唤醒的线程再一次判断标记。 * * 总结:当出现多个生产者和消费者的情况,必须使用while判断标记,用notifyAll唤醒线程。
2013-06-26 16:00:42 1024
原创 线程间通信
之前的售票程序或者银行取钱例子中,所有线程执行的代码都是一样的。线程间通信:A线程往里存,B线程往外取。AB线程的动作不一致,也就需要有两个run方法。两个run方法就要存在两个线程当中。什么时候可以取,什么时候可以存,这就需要线程之间的通信。例子:一个写入线程负责写,读取线程负责读,两者操作的是同一个资源,但是操作的动作是不同的。这时就要进行线程间通信。package fight
2013-06-26 11:13:32 558
原创 jdk1.5新特性
"JDK1.5"的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each循环,自动装包/拆包,枚举,可变参数,静态导入。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。下面我们简单介绍一下这些新特性。1.泛型(Generic)C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合
2013-06-24 14:11:14 407
原创 集合框架(类图)
集合框架的类图关系:List接口简介:java.util.HashMap类实现了java.util.Map接口,基于哈希表实现键值对的映射关系。HashMap不确定key-value对的先后顺序,允许使用null'key'和null‘value’。java.util.Hashtable实现了java.util.Map接口,也是采用哈希表的形式将key映射到value,用法与
2013-06-23 22:33:25 951
原创 测试题
package fighting;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.util.Arrays;public class Test6 { /** * 6、 已知
2013-06-22 14:22:20 492
原创 总结:内部类
内部类可以为四种⒈ 静态内部类⒉ 成员内部类⒊ 局部内部类⒋ 匿名内部类几种内部类的共性:A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。B、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。2、成员内部类:形式如下c
2013-06-21 21:58:34 397
转载 总结:Java转换流
转换流Reader |--InputStreamReader |--FileReader:专门用于处理文件的字符读取流对象。Writer |--OutputStreamWriter |--FileWriter:专门用于处理文件的字符写入流对象。转换流Reader |--InputStream
2013-06-21 08:43:53 534
原创 总结:线程同步和通讯
什么是线程同步? 当使用多个线程来访问同一个数据时,非常容易出现线程安全问题(比如多个线程都在操作同一数据导致数据不一致),所以我们用同步机制来解决这些问题。 实现同步机制有两个方法: 1。同步代码块: synchronized(对象){需要被同步的代码} 同一个数据:就是N条线程同时访问一个数据。 2。同步方法: public synchronized 数据返回类型 方法
2013-06-20 20:07:02 599
原创 总结:正则表达式
一,正则表达式简介及四种具体操作功能:匹配,切割,替换,获取package fighting;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexDemo { /** * 正则表达式:符合一定规则的表达式。 * 作用:专门用于操作字符串
2013-06-20 14:14:07 528
原创 总结:集合框架(LinkedList,ArrayList,HashSet)
一,Collection集合的简介: 集合的一些常用方法介绍及两种不同迭代方法的语句package fighting;import java.util.ArrayList;import java.util.Iterator;public class CollectionDemo { /** * 1,集合的add方法的参数类型时Object,以
2013-06-19 18:31:27 904
原创 学习笔记之多线程
------- android培训、java培训、期待与您交流! ----------一,创建线程的第一种方式:继承Thread类 线程的一些小知识package fighting;public class ThreadDemo { /** * 线程: * 创建线程的第一种方式:继承Thread类。 * 步骤: * 1,定义类继承T
2013-06-18 22:27:12 539
转载 java表达式类型的自动提升
当一个java算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升。Java定义如下的自动提升规则:1. 所有byte型、short型和char型将被提升到int型。2. 整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。操作数的等级排列如下图所示,位于箭头右边类型的等级高于位于箭头左边类型的等级。下面程序示范了一个典型的错误:
2013-06-17 23:49:51 518
原创 总结:集合框架(TreeSet)
TreeSet描述的是Set的一个变体--可实现排序功能的集合。将对象插入到TreeSet中时,会按照某种规则将对象插入到一个有序序列中,以保证TreeSet集合中的对象序列保持"升序"排列。TreeSet中的排序方法是根据什么确定对象之间的“大小”关系呢?所有可能排序的类都实现了java.lang.Comparable接口,该接口中只有一个抽象方法:public int compar
2013-06-16 22:29:00 848
原创 黑马程序员之类加载器
------- android培训、java培训、期待与您交流! ----------一,类加载器:加载类的工具。在java程序里,用到一个类,出现类名,JVM首先要把类的字节码加载到内存中,通常类的字节码的原始信息存放在classpath指定目录下,把.classpath加载到硬盘中,再对它进行一些处理,处理成字节码。把.class文件从硬盘加载进来,然后进行一些处理,这些工作由类加
2013-06-16 11:22:31 554
原创 黑马程序员之银行业务调度系统
------- android培训、java培训、期待与您交流! ----------银行业务调度系统的总结:1,对象有客户、号码、业务窗口2,客户是根据号码来区分的,一个客户对应一个号码。号码有贵宾、普通和快速三种区分。所以要产生三个号码管理器对象,各自管理一类用户的排队号码。这三个号码管理器对象统一由一个号码机器进行管理,这个号码机器在整个系统中始终只能有一个,所以,它要被设计成单
2013-06-16 10:13:02 512
原创 黑马程序员之交通灯管理系统
------- android培训、java培训、期待与您交流! ----------由于路只有12个方向,所以需要12个方向的灯来分别控制每一条路:南北灯(直行),南西灯(左转),南东灯(右转)北南灯(直行),北东灯(左转),北西灯(右转)东西灯(直行), 东南灯(左转),东北灯(右转)西东灯(直行), 西北灯(左转), 西南灯(右转)1,Road类 Road
2013-06-15 11:30:41 561
原创 学习笔记之枚举
------- android培训、java培训、期待与您交流! ---------- package fighting;/** * 枚举就是一个类 * 注意:枚举只有一个成员时,就可以作为一种单例的实现方式 */public class EnumDemo { public static void main(String[] args) { //枚举就相当
2013-06-10 20:58:27 385
转载 Java动态代理一——动态类Proxy的使用
代理机制及特点通过实现 InvocationHandler 接口创建自己的调用处理器;通过为 Proxy 类指定 ClassLoader 对象和一组 interface 来创建动态代理类;通过反射机制获得动态代理类的构造函数,其唯一参数类型是调用处理器接口类型;通过构造函数创建动态代理类实例,构造时调用处理器对象作为参数被传入。1.什么是动态代理? 答:
2013-06-08 22:30:47 407
原创 黑马程序员之动态代理类的使用与分析
------- android培训、java培训、期待与您交流! ---------- 原理:要为已存在的多个目标类的各个方法增加一些系统功能,例如,异常处理、日志、计算方法运行的时间、事务管理等等,就可以使用代理。编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同方法,并在调用方法时加上系统功能的代码。客户端原来直接调用Target,现在客户端调用代理类,
2013-06-08 17:19:16 493
原创 黑马程序员之编写对class文件进行加密的工具类
------- android培训、java培训、期待与您交流! ---------- //①加密的方法以及调用加密方法的类public class ClassLoaderTest2 { public static void main(String[] args) throws Exception { String srcPath = args[0];//要加密的cl
2013-06-08 11:45:31 1019
原创 黑马程序员之泛型的类型参数的类型推断
------- android培训、java培训、期待与您交流! ----------泛型的类型参数的类型推断 编译器判断泛型方法的实际类型参数的过程称为类型推断,类型推断是相对于知觉推断的,其实现方法是一种非常复杂的过程。 根据调用泛型方法时实际传递的参数类型或返回值的类型来推断,具体规则如下: A:当某个类型变量只在整个参数列表中的所有参数和返回
2013-06-07 16:23:05 850
原创 黑马程序员之泛型实例
------- android培训、java培训、期待与您交流! ----------泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实
2013-06-07 12:31:14 557
转载 有关字符串分割的问题(正则表达式)
Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组,下面是string.split的用法实例及注意事项:java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回。 stringObj.split([separator,[limit]]) stringObj 必选项。要被分解
2013-06-06 22:52:34 970
原创 黑马程序员之注解入门
------- android培训、java培训、期待与您交流! ----------注解类:@interface A{ }应用了注解的类:@A Class B{ }对“应用了注解的类”进行反射操作的类:Class C{
2013-06-06 17:35:31 548
原创 学习笔记之BeanUtils工具包及common-logging的下载及应用
------- android培训、java培训、期待与您交流! ----------Sun公司的内省API过于繁琐,所以Apache组织结合很多实际开发中的应用场景开发了一套简单、易用的API操作Bean的属性——BeanUtils,在Beanutil中可以直接进行类型的自动转换。BeanUtils工具包下载:1,登录http://commons.apache.org/beanu
2013-06-06 15:26:56 5064
原创 学习笔记之内省和JavaBean
内省:IntroSpector,意思为检查、视察。对内部进行检查,了解内部细节。主要用于对JavaBean进行操作。 JavaBean是一种特殊的类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合一定的规则。譬如:要获取age属性,那么方法名要写成getAge()。方法名要以get或set,符合这个规则的类就叫JavaBean。这种javabean
2013-06-06 12:12:44 612
原创 利用myeclipse的重构自动抽取成方法
public class IntroSpectorDemo { public static void main(String[] args) throws Exception { ReflectPoint2 pt1 = new ReflectPoint2(3,5); String propertyName="x"; //"x"-->"X"-->"getX"--
2013-06-06 11:03:22 3341
转载 黑马程序员之IO流
输入与输出I/O :一、知识点:(4)、流的概念:InputStream 、OutputStream ; FileInputStream、FileOutputStream类 ; Reader、Write类 ; PipedInputStream、PipedOutputStream类。ByteArrayInputStream、ByteArrayOutputStream类。代码的复用性。
2013-06-06 09:37:39 469
原创 黑马程序员之多态中成员变量与成员函数的异同
------- android培训、java培训、期待与您交流! ---------先举个小例子引出问题吧://多态例子://父类class Fu{int num = 3;void print(){System.out.println("父类");}}//子类class Zi extends Fu{int num =
2013-06-06 09:10:58 680
转载 有关反射的总结(转载)
Java基础知识加强视频的学习:一、知识点:21、成员变量反射的综合实例: 将任意一个对象中的所有String类型的成员变量所对应的字符串中的“b”改成“a”。(1)、P124:当比较的两个对象的所引用的值,都只有一份值,那么我们可以使用 == 来比较。(2)、对字节码使用方法getFields(),得到字节码内所有的字段,用Field类的对象数组返回。(3)、对象.getTy
2013-06-05 22:31:41 484
原创 黑马程序员之反射的两个小例子
------- android培训、java培训、期待与您交流! ----------第一个小问题:如何使用myeclipse给一个类的main方法传递参数?在要传递参数的类里,右键-->run as-->run configurations-->可以看到如下图所示:选中arguments选项卡,在下面的Program arguments里填写要传递的参数即可。第二个小
2013-06-03 23:38:24 488
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人