
java
文章平均质量分 86
Crazy_Tortoise
A Crazy Tortoise
展开
-
Java代码编译和执行的整个过程
Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java 源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成cla转载 2013-09-07 17:05:40 · 717 阅读 · 0 评论 -
Java线程(五):线程池
自JDK5之后,Java推出了一个并发包,java.util.concurrent,在Java开发中,我们接触到了好多池的技术,String类的对象池、Integer的共享池、连接数据库的连接池、Struts1.3的对象池等等,池的最终目的都是节约资源,以更小的开销做更多的事情,从而提高性能。 我们的web项目都是部署在服务器上,浏览器端的每一个request就是一个线程,那转载 2014-04-07 13:38:55 · 404 阅读 · 0 评论 -
Java线程(四) 生产者-消费者实现
Timer和TimerTask可以做为实现线程的第三种方式,前两中方式分别是继承自Thread类和实现Runnable接口。 Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。原创 2014-04-07 12:44:04 · 545 阅读 · 0 评论 -
java 网络编程
http://www.2cto.com/special/javanet/转载 2014-04-07 20:40:59 · 521 阅读 · 0 评论 -
Java GridBagLayout
试着用用你会发现其实GridBagLayout真的能解决几乎所有界面布局的问题,窗口大小的随意改变也不会影响到整体布局,更重要的是它可以实现任何你想要的布局设计,只要你做到更有计划和更有耐心一点就行了。对于简单的程序使用Boborderlayout和Gridlayout就绰绰有余了, 但如果要把程序提到实际应用上你就得考虑使用GridBagLayout。当然, 做复杂的应用程序时,一开始就使用Gr转载 2014-03-26 17:03:13 · 801 阅读 · 0 评论 -
java 线程(九)
1、swing 线程安全性 java swing 不是线程安全的,在多个线程中操纵swing控件会出问题。故一般不能在工作者线程中操纵swing界面元素,swing界面元素更改是在专门的事件分派线程中进行处理。swing程序在main方法中生成第一个界面之后就开始事件分派线程,用来进行事件处理。 若想在一个工作线程中修改swing界面元素显示,可以通过事件队列实现,使用 E原创 2014-04-07 15:39:05 · 516 阅读 · 0 评论 -
Java集合类详解
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Ele转载 2014-04-07 15:43:17 · 564 阅读 · 0 评论 -
Java线程(七):阻塞队列BlockingQueue
BlockingQueue最终会有四种状况,抛出异常、返回特殊值、阻塞、超时,下表总结了这些方法: 抛出异常特殊值阻塞超时插入add(e)offer(e)put(e)offer(e, time, unit)移除remove()poll()take()poll(time, unit)检查e转载 2014-04-07 15:14:04 · 626 阅读 · 0 评论 -
java 线程(二)可见性与同步
要说明线程同步问题首先要说明Java线程的两个特性,可见性和有序性。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现。在多个线程之间共享了Count类的一个对象,这个对象是被创建在主内存(堆内存)中,每个线程都有自己的工作内存(线程栈),工作内存存储了主内存Count对象的一个副本,当线程操作Count对象时,首先从主内存复制Count对象到工作内存中,然后执行代码cou转载 2014-04-07 10:55:45 · 608 阅读 · 0 评论 -
java 集合类
java集合类1、java类库中的集合接口和迭代器接口java类库中用于集合类的基本接口是Collection接口,该接口有如下两个基本方法:public interface Collection{ public boolean add(E element); Iterator iterator();}迭代器接口 Iterator有如下方法:原创 2014-04-07 20:03:42 · 615 阅读 · 0 评论 -
java 数据库编程
文件之上,再进一步对数据简单而有效的存储(方便读写)便是数据库了,显然,程序与数据库的交互也必是重点! 当然,对于基于桌面的程序,那么,主要还是关系数据库。一、关系数据库简介 1.关系数据库模型 关系模型由Codd提出,它是考虑数据和数据间关系而得到的数据逻辑模型 一个关系型数据库通常由一个或多个表格的对象组成,数据库中的所有数据都被保存在这些表中。转载 2014-04-07 20:44:33 · 737 阅读 · 0 评论 -
java 线程(一)
创建Java线程在Java程序中创建线程有几种方法。每个Java程序至少包含一个线程:主线程。其它线程都是通过Thread构造器或实例化继承类Thread的类来创建的。Java线程可以通过直接实例化Thread对象或实例化继承Thread的对象来创建其它线程。在线程基础中的示例(其中,我们在十秒钟之内计算尽量多的素数)中,我们通过实例化CalculatePrimes类型转载 2014-04-07 10:21:12 · 605 阅读 · 0 评论 -
java 线程(八)线程本地变量ThreadLocal
首先说明ThreadLocal存放的值是线程内共享的,线程间互斥的,主要用于线程内共享一些数据,避免通过参数来传递,这样处理后,能够优雅的解决一些实际问题,比如Hibernate中的OpenSessionInView,就是使用ThreadLocal保存Session对象,还有我们经常用ThreadLocal存放Connection,代码如:[java] view pla转载 2014-04-07 15:15:31 · 713 阅读 · 0 评论 -
Java线程(六):Callable和Future
Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值,下面来看一个简单的例子:[java] view plaincopypu转载 2014-04-07 14:09:27 · 469 阅读 · 0 评论 -
解释性语言和编译性语言的区别
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。编译性语言编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次原创 2013-09-07 18:23:58 · 1274 阅读 · 0 评论 -
虚函数、虚基类、纯虚函数、接口
1. 多态在面向对象语言中,接口的多种不同实现方式即为多态。多态是指,用父类的指针指向子类的实例(对象),然后通过父类的指针调用实际子类的成员函数。多态性就是允许将子类类型的指针赋值给父类类型的指针,多态是通过虚函数实现的。多态可以让父类的指针有“多种形态”,这是一种泛型技术。(所谓泛型技术,就是试图使用不变的代码来实现可变的算法)。2. 虚函数 2.1虚函数定义在基类的类转载 2013-10-04 17:24:35 · 785 阅读 · 0 评论 -
Java语法笔记(一)
一个.java文件里可以有多个class,但是只能有一个class是public的。.java文件里 可以没有类是public的。包含main的那个类也可以不是public的。3. .java文件里如果有public的class,那么文件名必须和该类名一致(大小写相关)。如果没有public类,那么文件名也必须和其中某个类(随便哪个都行)相同。 4. Java程序大小写相关,原创 2013-10-04 17:28:17 · 716 阅读 · 0 评论 -
[Charset]UTF-8, UTF-16, UTF-16LE, UTF-16BE的区别
charset里的问题, 一般我们都用unicode来作为统一编码, 但unicode也有多种表现形式 首先, 我们说的unicode, 其实就是utf-16, 但最通用的却是utf-8, 原因: 我猜大概是英文占的比例比较大, 这样utf-8的存储优势比较明显, 因为utf-16是固定16位的(双字节), 而utf-8则是看情况而定, 即可变长度, 常规的128个ASCII只需要8位转载 2013-10-09 19:57:38 · 1107 阅读 · 0 评论 -
JAVA线程之三:线程的挂起和恢复
(1)概述:线程的挂起操作实质上就是使线程进入“非可执行”状态下,在这个状态下CPU不会分给线程时间片,进入这个状态可以用来暂停一个线程的运行。在线程挂起后,可以通过重新唤醒线程来使之恢复运行。 run() 和start() 是大家都很熟悉的两个方法。把希望并行处理的代码都放在run() 中;stat() 用于自动调用run(),这是JAVA的内在机制规定的。当一个线程进入转载 2013-09-26 22:39:35 · 692 阅读 · 0 评论 -
Unicode 编码
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 Unicode 编码系统,可分为编码方式和实现方式两个层次。Unicode用数字0-0x10FFFF (( {注意,这并不表示最多用三个字节就可以原创 2014-01-10 10:55:31 · 1217 阅读 · 0 评论 -
Java IO流学习总结
Java流操作有关的类或接口:Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流 字符流和字转载 2014-04-04 21:18:15 · 477 阅读 · 0 评论 -
java abstract类 和 interface
1, 定义一个抽象的方法..abstract void eat(); //注意! 1,抽象方法的定义无方法体!!2, 抽象类错误!!class Person{ //2,只要一个类里面有抽象的方法,这个类就必须是抽象的!!String name;int age;abstract void eat(); }abstract class转载 2014-04-06 11:08:18 · 483 阅读 · 0 评论 -
java 异常
在java程序设计语言中,异常对象都是派生于Throwable类的一个实例。如果java内置的异常类不能满足需要,用户还可以创建自己的异常类。原创 2014-04-06 10:29:24 · 530 阅读 · 0 评论 -
java 线程(三) 互斥和同步
线程的同步 多线程的安全问题来自于当不同线程切换时,对同一数据的操作引起的混乱。例如两个线程并发同时对同一个文件修改时就有可能造成异常。对于线程的同步,Java提供了如下几种方式解决: a. 同步代码块 Java的多线程支持引入同步监视器来解决这个问题。 synchronized(obj){ //括号中的obj转载 2014-04-07 12:34:02 · 538 阅读 · 0 评论 -
java rmi
java rmi即java远程接口调用,实现了2台虚拟机之间的程序调用,这样,网络上的任何两台计算机就可以相互调用对方的程序(如果允许)。开发rmi的步骤如下。1、编写远程接口,远程接口实现类2、编译3、生成接口实现类存根4、在服务器端启动rmiregistry命令5、在服务端注册发布远程对象6、在客户端获取远程对象实例:下面通过一个简单的例子来说明转载 2014-04-12 11:25:49 · 749 阅读 · 0 评论