java编程
文章平均质量分 85
最美的词
竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生
展开
-
在JFrame中设置JPanel的值
遇到了一个问题:在JFrame中设置JPanel的值,如果在JFrame中,直接使用JPanel的setSize(int,int)方法,是无法生效的。正确的方法应该是这样的:1. 在JPanel中加入如下设置控件大小的代码://设置panel的大小 public Dimension getPreferredSize() { return new Dimension(1原创 2013-03-06 18:35:03 · 2261 阅读 · 0 评论 -
Java中的volatile关键字
本文内容节选自:Java开发编程:volatile关键字解析原创 2014-08-27 20:25:27 · 1090 阅读 · 0 评论 -
Java多线程--生产者与消费者问题
说明Java中,线程之间的通信主要是由java.lang.Object类提供的wait、notify和notifyAll这3个方法来完成:①对象的wait方法被调用后,线程进入对象的等待队列中,并释放对象锁,其它线程可以竞争使用此对象锁;sleep方法使得一个线程进入睡眠状态,但是线程所占有的资源并没有释放。②当对象的notify方法被调用,该方法会从对象的等待队列中随机取出一个线原创 2014-08-13 11:45:18 · 1224 阅读 · 0 评论 -
暴力子字符串查找
子字符串查找:给定一段长度为N的文本和一个长度为M的模式字符串,在文本中找到一个和该模式相符的子字符串广泛使用的暴力算法,虽然在最坏情况下的运行时间与M*N成正比,但是在实际中,绝大多数比较在比较第一个字符时就会产生不匹配,它实际运行时间一般与M+N成正比下面是暴力子字符串查找算法的Java实现:/** * 暴力字符串查找,如果找到,返回pat在txt中第一次出现的位置;没有找到则原创 2014-08-16 16:01:44 · 1261 阅读 · 0 评论 -
关于“==”和“equals()”
问题引入请看下面的代码清单1 public void test1(){ String a = "a" + "b" + 1; String b = "ab1"; System.out.println(a == b); }上述这段代码来源自谢宇编著的书籍《Java特种兵》上册。代码清单1中的输出是true这是个考察Java基本功的问题,类似的问原创 2015-04-14 17:04:46 · 1056 阅读 · 0 评论 -
关于JVM一些知识的粗浅认识
1. Java是如何跨平台的Java将源代码编译成Class文件,是基于字节码的,字节码是以byte为单位存储的文件,和跨平台结合起来,它就是描述程序要运行的虚指令的集合,而这个虚指令与任何平台无关,Java虚拟机认识它,Java虚拟机将它翻译为对应的OS指令。Java虚拟机会为每个OS平台编写对应的JRE运行时环境,与OS动态链接,将这些虚指令编码翻译为对应操作系统的汇编指令信息,即可在对应原创 2015-05-06 20:30:36 · 1092 阅读 · 0 评论 -
Java运行时异常和非运行时异常
1.Java异常机制Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:图片来源:http://blog.csdn.net/wuwenxiang91322/article/details/103463372.Throwab原创 2014-08-25 11:19:07 · 63990 阅读 · 3 评论 -
Maven初探
本文描述了如何使用maven构建一个简单的Hello World项目1.编写POM Maven项目的核心是pom.xml(Project Object Model),pom定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。先为Hello World项目编写一个简单的pom.xml。 首先创建一个hello-world的文件夹,在该目录下新建一个名为p原创 2015-02-05 17:19:01 · 1295 阅读 · 0 评论 -
Java反射学习
1. Class类Java程序中的各个类属于同一类事物,描述这类事物的Java类名就是Class。Class类代表各个类和接口在内存中的字节码,比如ArrayList类的字节码,一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节码是不同的,所以它们在内存中的内容是不同的。如何获得各个字节码对应的实例对象?类名.class,例如,Sy原创 2015-12-12 15:30:01 · 1101 阅读 · 0 评论 -
Java自定义注解入门
1. 元注解 (meta-annotation)在Java 1.5以后,jdk提供了三个标准注解,定义在java.lang中: @Override: 用于修饰此方法覆盖了父类的方法 @Deprecated: 用于修饰已经过时的方法 @SuppressWarnnings: 用于通知java编译器禁止特定的编译警告而元注解的作用,就是负责注解其他注解的,包括上面三原创 2015-12-16 20:51:20 · 870 阅读 · 0 评论 -
Java泛型入门
使用Java泛型,我们可以写一个泛型方法来对一个对象数组排序,然后,调用该泛型来对整形数组、浮点数数组、字符串数组等进行排序。1. 泛型方法下面是定义泛型方法的规则:所有泛型方法什么都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前。下面是一个泛型方法的实例:public class GenericMethodTest{ //原创 2015-12-16 21:42:45 · 803 阅读 · 0 评论 -
为什么不能自定义java.lang.String
如果直接写一个java.lang.String类,并写一个main方法,即package java.lang;public class String { public static void main(String[] args) { System.out.println("Hello String"); }}运行之后会抛一个异常:错误原创 2015-12-17 21:02:11 · 7961 阅读 · 2 评论 -
Java动态代理
1. 代理在某些情况下,我们不希望,或者是不能直接访问对象A,而是通过访问一个中介对象B,由B去访问A达成目的,这种方式我们就称为代理。对象A所属类我们称为委托类,也被称为代理类,对象B所属类称为代理类。代理优点有:隐藏委托类的实现解耦,不改变委托类代码情况下做一些额外处理,比如添加初始判断及其他公共操作2. 静态代理代理类在程序运行前已经存在的代理方式称为静态代理原创 2015-12-21 12:09:44 · 792 阅读 · 0 评论 -
面试中的单例模式
最近的两次面试中,都被要求在纸上写代码实现单例(Singleton)模式。下文展示了三种不同的Singleton实现方式:1.不好的解法一:只适用于单线程环境public class Singleton1 { private static Singleton1 instance = null; private Singleton1() { } public stat原创 2014-08-17 12:11:11 · 1946 阅读 · 0 评论 -
Java线程池
本文大部分内容转自http://www.cnblogs.com/yydcdut/p/3890893.html1.Java线程池基本原理线程池基本原理是:系统先启动若干数量的线程,并让这些线程处于睡眠状态,当有新任务时,就会唤醒线程池中的某一个睡眠线程,让它来处理这个任务。当处理完这个任务后,线程又处于睡眠状态。Java 中,线程池的主要组成部分是工作者线程,这种类型的线程独立于它执行的原创 2014-08-13 17:50:08 · 1654 阅读 · 1 评论 -
动车组牵引计算仿真系统的研究
1.前言用了两周的时间,与电气学院的一个同学合作,开发出了这个“京津线城际动车组运行仿真系统”,他提业务,我根据他提出的业务,也就是需求,编程。系统所用的数据都来自京津城际的真实路线,比如坡道、弯道和限速数据。通过编程,模拟出列车运行的情况。2.数据准备列车在真实世界运行的过程中,速度、里程、加速度等都是连续的,而我想不出方法使得计算机能够模拟出连续的数据,于是我将采用离散的数据。系统原创 2013-03-13 18:50:42 · 4869 阅读 · 10 评论 -
Java判断字符串是字符或数字
方法传入参数是String类型,方法判断该字符串是否全是英文字符或全是数字:①判断是否全是英文字符:public boolean isString(String s) { return s.matches("^[a-zA-Z]*"); }②判断是否全是数字:public boolean isNumber(String s) { Pattern patt原创 2013-04-22 11:51:52 · 3653 阅读 · 0 评论 -
List,Set,Map和数组之间的相互转换
list,set,map,数组间的相互转换1.list转setSet set = new HashSet(new ArrayList()); 2.set转listList list = new ArrayList(new HashSet());3.数组转为listList stooges = Arrays.asList("Larry", "Moe", "Curly");或者St转载 2013-04-19 15:14:44 · 2807 阅读 · 0 评论 -
dom4j学习笔记
1.XML文件的一些概念1.1XML文件的常见应用①数据传送的通用格式②配置文件,例如程序的设置信息③充当小型数据库1.2XML的语法①文档声明其中standalone="yes|no"表示该xml文件是否独立使用,yes表示是独立使用,no表示不是单独使用。默认是no②一个xml文件,有且只有一个根元素③在xml文件中xiaom原创 2013-05-20 21:37:56 · 1871 阅读 · 0 评论 -
JDBC的批量插入操作
在今天之前,当我遇到需要使用JDBC对数据库进行批量插入操作的时候,我使用的方法如下:①使用Connection建立数据库连接;②使用PreparedStatement提交SQL语句,将数据插入;③关闭数据库连接,释放资源。但是今晚,我遇到一个问题,需要对MySQL数据库批量插入10000条记录,于是,我将插入操作封装成了一个方法,然后调用,没插入一条记录,都要打开、关闭一原创 2013-07-06 21:28:53 · 2638 阅读 · 0 评论 -
Java的值传递和引用传递
1.值传递public class MethodAndParameter { /** * @param args */ private int a = 2,b = 5; public static void main(String[] args) { // TODO Auto-generated method stub MethodAndParameter mp = n原创 2013-05-13 16:29:11 · 1236 阅读 · 0 评论 -
Java Swing的一些技巧总结
1.WindowBuilder安装这个Eclipse插件能够实现在Java Swing编程中各种控件的拖拽下载地址:http://www.eclipse.org/windowbuilder/download.phpEclipse 3.7的安装方法(其它版本Eclipse类似):http://download.eclipse.org/windowbuilder/WB/release/R2原创 2014-03-26 15:08:20 · 2234 阅读 · 0 评论 -
Java内存模型
1.Java的内存泄漏在Java中,内存泄漏指的是存在具备下面两个特点的对象:①这些对象是可达的,即在有向图中,存在通路可以与其相连;②这些对象是无用的,即程序以后不会再使用这些对象。如果对象满足这两个条件,就可以判定为Java中的内存泄漏,这些对象不会被GC所回收,却占用着内存。对于那些不可达的对象,GC会负责回收。我们可以通过调用System.gc()去访问GC,但是JVM原创 2014-08-24 14:50:26 · 1396 阅读 · 1 评论 -
几个集合类的比较
1.Hashtable和HashMap不同点总结如下① Hashtable是Dictionary的子类,实现了Map接口;HashMap是AbstractMap的子类,是Map接口的一个实现类;② Hashtable中的方法是同步的,大多数方法如put, get都用用synchronized关键字修饰。而HashMap是线程不安全的。在多线程程序中,可以不添加额外操作就可以安全原创 2014-08-23 21:14:42 · 1145 阅读 · 0 评论 -
Java中的String
参考资料:http://www.cnblogs.com/chenssy/p/3695271.htmlhttp://blog.csdn.net/yyaf2013/article/details/12168491首先先来看看下面这段代码的输出结果:public void strTest() { String a = "huhui"; String b = "huhui";原创 2014-08-25 17:23:23 · 1155 阅读 · 0 评论 -
Java死锁举例
死锁: 在多线程竞争使用共享资源的情况下,就有可能出现死锁的情况。比如,当一个线程等待另一个线程所持有的锁时,那个线程又可能在等待第一个线程所持有的锁。此时,这两个线程会陷入无休止的相互等待状态,这种情况就称为死锁。产生死锁的四个必要条件:1、互斥条件。进程对所分配的资源进行排它性控制,即在一段时间内某资源仅为一进程所占有。2、请求和保持条件。当进程因请求资源而阻原创 2014-08-13 00:58:46 · 2583 阅读 · 1 评论 -
Java并发编程:Lock
本文转自:http://www.cnblogs.com/dolphin0520/p/3923167.html Java中可以使用synchronized关键字来实现线程之间对共享变量的同步访问。从Java 1.5以后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问——Lock。一、synchronized的缺陷 如果一个代码块被s原创 2014-08-28 16:14:58 · 1207 阅读 · 0 评论 -
Java并发编程:Callable、Future
在Java中创建创建线程有两种方式,一种是直接继承自Thread类,另一种是实现Runnbale接口。而这两种方式都有一个缺陷:在线程执行完以后无法直接获取执行结果。如果想要获取执行结果可以通过共享变量或者使用线程通信的方式来达到效果,但是这样比较麻烦。而Callable和Future的作用,就是获得线程执行完以后的结果。1.CallableCallable是一个接口,类似于R原创 2016-01-26 17:57:18 · 942 阅读 · 0 评论