Java SE
披Zhe羊皮De狼
好记性不如烂笔头!
展开
-
Java开发基本DOS命令了解
Java开发基本DOS命令(d:、dir、md、cd、cd..、cd/、echo、rd、del、exit)d:(进入D盘命令)dir(列出当前目录下的文件及文件夹)directorymd (创建新目录(文件夹)) make directorycd (进入指定目录)cd.. (退回到上一级目录)cd/ (退回到根目录)echo (创建文件)rd (删除目录) remove dir原创 2015-11-15 10:05:30 · 515 阅读 · 0 评论 -
java.util.logging.Logger中log()
public void log(Level level, String msg, Throwable thrown)记录带有相关的可抛出信息的消息。 如果当前对于给定的消息级别而言 logger 是启用的,那么将给定的参数存储在 LogRecord 中,而 LogRecord 则被转发到所有已注册的输出处理程序。注意,原创 2016-04-11 14:30:26 · 526 阅读 · 0 评论 -
设计模式之Iterator(三)
容器中泛型的使用,取出更方便(不用转型)package com.awiatech.iterator.generic;public class GenericArrayList { Object[] objects = new Object[10]; // 定义一个长度为10的数组 int index = 0; // 数组索引指向 /** * 数组中添加元素 * @para原创 2016-04-27 23:05:48 · 286 阅读 · 0 评论 -
设计模式之Iterator(二)
在上一节的基础上,考虑遍历容器package com.awiatech.iterator;import com.awiatech.iterator.ArrayList;import com.awiatech.iterator.LinkedList;/** * 测试类用于测试容器的功能。 * @author Chicago * */public class Test {原创 2016-04-27 22:26:17 · 360 阅读 · 0 评论 -
Java中改变应用程序界面外观(javax.swing.UIManager类和LookAndFeel类)
javax.swing.UIManager类javax.swing.UIManager类是Swing界面管理核心,管理Swing应用程序样式。LookAndFeel抽象类与javax.swing.UIManager类密切相关的就是LookAndFeel抽象类。它除了提供static方法,还定义抽象的个性化设置方法由子类实现。Sun提供了三个LookAndFeel子类:jav原创 2015-11-15 10:10:56 · 24491 阅读 · 2 评论 -
java.awt.EventQueue.invokeLater(new Runnable(){public void run(){}})(三)
把这个事件(new Runnable(设置计算器可见))添加到awt的事件处理线程当中去awt的事件处理线程会按照队列的顺序依次调用每个待处理的事件来运行 使用该方式的原因是:awt是单线程模式的,所有awt的组件只能在(推荐方式)事件处理线程中访问,从而保证组件状态的可确定性。转载 2016-04-11 12:19:24 · 1704 阅读 · 0 评论 -
java.awt.EventQueue.invokeLater(new Runnable(){public void run(){}})(一)
public class EventQueueextends ObjectEventQueue 是一个与平台无关的类,它将来自于底层同位体类和受信任的应用程序类的事件列入队列。 它封装了异步事件指派机制,该机制从队列中提取事件,然后通过对此 EventQueue 调用 dispatchEvent(AWTEvent) 方法来指派这些事件(事件作为参数被指派)。该机制的特殊行为是与实现有关的原创 2016-04-11 12:18:10 · 2243 阅读 · 0 评论 -
java.awt.EventQueue.invokeLater(new Runnable(){public void run(){}})(二)
java.awt.EventQueue是与平台无关的类,将来自于底层同位体类和应用程序类的事件列入队列。它封装了异步事件指派机制,从队列中提取事件,通过对EventQueue调用dispatchEvent(AWTEvent)方法来指派事件(事件作为参数被指派)。只能按顺序指派,不允许同时从队列中指派多个事件,并且指派顺序与排队顺序相同。也就是说,如果AWTEventA比AWTEvent原创 2015-11-15 10:25:17 · 4572 阅读 · 0 评论 -
Java设置GUI的窗口图标
思路:JFrame类中的setIconImage()方法获取Image对象的实例方法方法一:ImageIcon类的getImage()方法ImageIcon icon = new ImageIcon(图片路径);setIconImage(icon.getImage());方法二:Toolkit类的getImage()方法Toolkit toolkit = Toolkit.原创 2016-04-17 22:25:14 · 7633 阅读 · 2 评论 -
设计模式之单例设计模式(Singleton)
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中只有一个对象实例存在。好处:1)某些类创建比较繁琐,对于一些大型的对象,这是一笔很大的系统开销。2)省去new操作符,降低了系统内存的使用频率,减轻GC压力。package com.usst.chicago;public class Singleton { //私有静态实例,防止原创 2016-05-11 13:10:08 · 406 阅读 · 0 评论 -
设计模式之抽象工厂模式(Abstract Factory)
工厂方法模式有一个问题:类的创建以来工厂类。也就是说,如果想要扩展程序,必须对工厂类进行修改,这违背了闭包原则。所以,从设计角度考虑,有一定的问题。如何解决呢?用到抽象工厂模式,创建多个工厂类。这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。定义接口:package com.usst.chicago;public interface Sender {原创 2016-05-12 17:03:30 · 394 阅读 · 0 评论 -
设计模式之工厂方法模式(Factory Method)
一、普通工厂模式:建立一个工厂类,对实现了同一接口的一些类进行实例的创建。创建共同接口:package com.usst.chicago;public interface Sender { public void send();}创建实现类:package com.usst.chicago;public class MailSender implements Se原创 2016-05-12 18:03:57 · 360 阅读 · 0 评论 -
设计模式之建造者模式(Builder)
工厂类模式提供的时创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性。其实,建造者模式就是前面抽象工厂模式和最后Test的结合。一个接口:package com.usst.chicago;public interface Sender { public void send();}两个是实现类:packag原创 2016-05-12 18:21:26 · 410 阅读 · 0 评论 -
设计模式之原型模式(Prototype)
原型模式虽然是创建型模式,但是与工厂模式没有关系。该模式的思想:是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。创建一个原型类:package com.usst.chicago;public class Prototype implements Cloneable { public Object clone() throws CloneNotSupport原创 2016-05-12 23:16:04 · 456 阅读 · 0 评论 -
SwingUtilities.invokeLater()和SwingUtilities.invokeAndWait()的区别
invokeAndWait:后面的程序必须等这个线程(参数中的线程)执行完才能执行invokeLater:后面的程序和这个参数的线程对象可以并行,异步地执行invokeLater一般用于在线程里修改swing组件的外观,因为swing组件是非同步的,所以不能在线程中直接修改,会不同步,得不到期望的效果,所以要把修改外观的代码放在一个单独的线程中,交给invokeLater:后面的程序和这个原创 2016-04-22 18:19:01 · 3662 阅读 · 0 评论 -
String.split()用法
在java.lang包中有String.split()方法,返回是一个数组1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");“.”和“|”原创 2016-04-22 18:45:40 · 1188 阅读 · 1 评论 -
java.util.logging.Logger基础教程
从JDK1.4开始即引入与日志相关的类java.util.logging.Logger,但由于Log4J的存在,一直未能广泛使用。综合网上各类说法,大致认为: (1)Logger:适用于小型系统,当日志量过大时性能有待提升。好处在于JDK集成了此类,无需引入新包。且性能也在逐步改善当中,我认为一般而言,使用Logger即可。 (2)Log4J:并发性较好,性能较强,适用于大型转载 2016-04-11 14:27:52 · 410 阅读 · 0 评论 -
java.util.logging.Logger使用详解
java.util.logging.Logger不是什么新鲜东西了,1.4就有了,可是因为log4j的存在,这个logger一直沉默着,其实在一些测试性的代码中,jdk自带的logger比log4j更方便。 一、创建Logger对象 static Logger getLogger(String name) 为指定子系统查找或创建一个 logger。 st原创 2016-04-11 14:23:47 · 935 阅读 · 0 评论 -
设计模式之Iterator(一)
实现动态添加对象的容器。实现一:手动编写ArrayListpackage com.awiatech.iterator;/** * 一个动态添加对象的容器,底层使用数组模拟。 * 与数组相比的好处:不用考虑数组的边界问题,可以动态扩展。 * @author Chicago * */public class ArrayList { Object[] objects原创 2016-04-27 13:29:51 · 301 阅读 · 0 评论 -
Java串口编程(开源RxTx实现串口)
RxTx是提供串口和并口通信的开源Java类库。该项目提供了Windows、Linux、Mac os X、Solaris操作系统下的兼容javax.comm串口通讯包API的实现。RXTXcomm.jar包是封装了comm.jar的方法。安装:1.copy rxtxSerial.dll to [JDK-directory]/jre/bin/rxtxSerial.dll2.c原创 2015-11-21 20:07:28 · 4057 阅读 · 0 评论 -
Java串口通信的通用模式及其问题
通常,串口通信应用程序有两种模式,一种是实现SerialPortEventListener接口,监听各种串口事件并作相应处理;另一种就是建立一个独立的接收线程专门负责数据的接收。但这两种方法在某些情况下存在很严重的问题。事件监听模型事件监听模型的运作方式首先需要在端口控制类(如SerialManager)加上“implements SerialPortEventListener”原创 2015-11-21 21:45:23 · 2692 阅读 · 1 评论 -
Eclipse中编译和运行时使用的JDK和JRE级别问题(关于"Bad version number in .class file"的异常解决)
"Bad version number in .class file"异常,意思是“错误的版本号”。这是由于在eclipse中编译Java程序时所用的JDK版本高于运行时所用的JRE版本所致。如编译用JDK1.6,而运行时的JRE为1.5版本。在1.5的运行时环境版本上运行1.6的程序,当然不行。而反过来却可以,因为软件通常都有所谓的“向后兼容性”。具体解决办法:在eclipse中设置JD原创 2015-11-17 23:53:16 · 589 阅读 · 0 评论 -
Java字符串String中contains与indexOf的区别
contains 是找指定字符串是否包含一个子串,返回的是boolean类型,即只有 true 和 false 。indexOf 有多个重载,但无论哪个,都是做一定的匹配,然后把匹配的第一个字符的位置返回,返回的是int类型。如果没找到,则返回-1。原创 2015-11-19 22:56:00 · 28130 阅读 · 3 评论 -
Java加载和解析XML文件的两种方法
对于Java来说,加载和解析XML文件有两种方法:一种:通过加载整个XML文件生成Document文档,然后解析Document文档内容的树和根。另一种:利用SAX封装类来逐步解析。这两种方法各有优点和缺点:第一种由于需要加载整个XML文件生成Document,在解析,所以假如XML文件内容过多、过大,就会造成加载延迟,缓慢(所以此方法只适用于XML文件比较小点 的XML文件);而第二转载 2016-04-11 23:07:22 · 1834 阅读 · 0 评论 -
Java的getClass()
JAVA反射机制JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的原创 2016-04-11 12:10:29 · 379 阅读 · 0 评论 -
Java多线程(一)
1、进程和线程的概念进程:运行中的应用程序称为进程,拥有系统资源(cpu、内存)线程:进程中的一段代码,一个进程中可以有多段代码。本身不拥有资源(共享所在进程的资源)在Java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程。区别: 1、是否占有资源问题 2、创建或撤销一个进程所需要的开销比创建或撤销一个线程所需要的开销大 3、进程为重量级组件,线程为轻原创 2016-04-13 23:29:17 · 344 阅读 · 0 评论 -
Java串口通信(CommunicationsAPI)(一)
Java串口通信API说明 Java提供了 CommunicationAPI(包含于javax.comm包中)用于通过与机器无关的方式,控制各种外部设备。Communications API,是标准的Java的扩展部分,它在JavaAPI中是没有附带的。因此,必须先在SUN公司网站的Java站点(www.java.sun.com)上下载这个扩展类库。1.1Communica转载 2015-11-15 11:01:55 · 1952 阅读 · 0 评论 -
Java中的setResizable()
public void setResizable(boolean resizable)设置此窗体是否可由用户调整大小。 参数为boolean类型:resizeable值为true时,表示生成的窗体可以自由改变大小;resizeable值为false时,表示生成的窗体大小是由程序员决定的,用户不可以自由改变该窗体的大小。原创 2016-04-11 11:35:10 · 25109 阅读 · 0 评论 -
Java的setLocationRelativeTo()
public void setLocationRelativeTo(Component c)设置窗口相对于指定组件的位置。 如果组件当前未显示或者 c 为 null,则此窗口将置于屏幕的中央。中点可以使用 GraphicsEnvironment.getCenterPoint 确定。原创 2016-04-11 11:41:20 · 57595 阅读 · 3 评论 -
Java的getClass()
Java反射学习 所谓反射,可以理解为在运行时期获取对象类型信息的操作。传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下,编程人员可以动态获取这些信息,从而编写更加具有可移植性的代码。严格地说,反射并非编程语言的特性,因为在任何一种语言都可以实现反射机制,但是如果编程语言本身支持反射,那么反射的实现就会方便很多。1,获得类型类 我们知道在Java中一切都原创 2016-04-11 12:14:26 · 370 阅读 · 0 评论 -
关于Class.getResource和ClassLoader.getResource的路径问题
Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题。Class.getResource(String path)path不以’/'开头时,默认是从此类所在的包下取资源;path 以’/'开头时,则是从ClassPath根下获取;什么意思呢?看下面这段代码的输出结果就明白了:转载 2016-04-11 12:23:09 · 350 阅读 · 0 评论 -
JScrollPane自动乡下滚动
public void setUpdatePolicy(int policy)设置文档更新时的插入符移动策略。通常,当在插入符位置之前或当前位置插入时,以及在插入符位置之前删除时,插入符会更新其在文档中的绝对位置。这里的“绝对位置”指的是相对于文档开头的位置。例如,在一个可编辑的文本组件中输入一个字符时,它将插入到插入符位置,而插入符由于此插入将移动到文档中下一个绝对位置,如果输入的是BA原创 2016-04-11 12:58:47 · 635 阅读 · 0 评论