Java基础
文章平均质量分 54
wang77777
这个作者很懒,什么都没留下…
展开
-
Java多线程启动方式
1.Java新建线程的方式:实现Runnable接口,或者继承Thread类。简单代码示例如下: 实现Runnable接口 [code="java"] public class ThreadByRunnable implements Runnable { private String name; public ThreadByRunnable(String name) { ...原创 2012-03-04 23:09:08 · 98 阅读 · 0 评论 -
Java与字符编码
Java支持很多字符编(这是一句废话,各种语言都支持很多字符编码)。 一、 首先,来通过一段程序看一下Java支持的字符编码有多少: [code="java"] private static void showAllCharsets() { Map charsetMap = Charset.availableCharsets(); System.out.println(ch...原创 2012-09-26 18:20:58 · 63 阅读 · 0 评论 -
Java垃圾回收机制
Java的垃圾回收器要负责完成3件任务:分配内存、确保被引用的对象的内存不被错误回收以及回收不再被引用的对象的内存空间。垃圾回收是一个复杂 而且耗时的操作。如果JVM花费过多的时间在垃圾回收上,则势必会影响应用的运行性能。一般情况下,当垃圾回收器在进行回收操作的时候,整个应用的执行是 被暂时中止(stop-the-world)的。这是因为垃圾回收器需要更新应用中所有对象引用的实际...原创 2013-04-02 17:03:56 · 220 阅读 · 0 评论 -
JVM(SUN)设置【转】
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置: java -Xmx3550m -Xms35...原创 2013-04-02 16:10:36 · 91 阅读 · 0 评论 -
Java nio
本文转载自http://www.iteye.com/topic/834447 1. [b]基本概念[/b] IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。 所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 ) 2.[...原创 2012-03-16 14:18:03 · 112 阅读 · 0 评论 -
Java API实现HTTP Server
JDK6提供了一个简单的Http Server API,据此我们可以构建自己的嵌入式Http Server,它支持Http和Https协议,提供了HTTP1.1的部分实现,没有被实现的那部分可以通过扩展已有的Http Server API来实现,程序员必须自己实现HttpHandler接口,HttpServer会调用HttpHandler实现类的回调方法来处理客户端请求,在这里,我们把一个...原创 2012-03-16 13:38:16 · 549 阅读 · 1 评论 -
Java基本数据结构
本文转载自:http://blog.sina.com.cn/s/blog_4b6de6bb010008gk.html 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。 Collection...原创 2012-03-09 23:04:02 · 73 阅读 · 0 评论 -
Java锁
说明:Java多线程相关相关几篇文章转自http://lavasoft.blog.51cto.com/62575/27069/。为以后查阅方便,转载到此处。 在Java5中,专门提供了锁对象,利用锁可以方便的实现资源的封锁,用来控制对竞争资源并发访问的控制,这些内容主要集中在java.util.concurrent.locks 包下面,里面有三个重要的接口Condition、Lock、R...原创 2012-03-09 22:50:51 · 55 阅读 · 0 评论 -
Java有返回值的线程
Java中可返回值的任务(线程)必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。 执行Callable任务后,可以获取一个Future的对象,在该对象上调用get就可以获取到Callable任务返回的Object了。 示例代码 [code="java"] package com.ajita; import java.util.c...原创 2012-03-09 22:42:45 · 87 阅读 · 0 评论 -
Java线程池
1.Java提供了若干的原生线程池,一般都能满足我们的需要。 包括固定大小线程池,单任务(线程)线程池,可变尺寸线程池,延迟线程池(支持延时调度),单任务延迟线程池。 2.Java也支持自定义线程池,就是自定义线程池内部线程的实现及管理。 自定义线程池使用ThreadPoolExecutor来实现,具体的构造方法为: [code="java"] ThreadPoolExe...原创 2012-03-09 22:33:18 · 68 阅读 · 0 评论 -
Java线程调度
Java线程调度是Java多线程的核心,只有良好的调度,才能充分发挥系统的性能,提高程序的执行效率。但是不管程序员怎么编写调度,只能最大限度的影响线程执行的次序,而不能做到精准控制。 1.线程休眠 线程休眠的目的是使线程让出CPU的最简单的做法之一,线程休眠时候,会将CPU资源交给其他线程,以便能轮换执行,当休眠一定时间后,线程会苏醒,进入准备状态等待执行。 [code=...原创 2012-03-07 00:11:51 · 68 阅读 · 0 评论 -
Java synchronized线程同步锁及线程间通过对象的wait,notify进行交互
1.synchronized关键字 synchronized是用来控制线程的并发执行的,它只能作用于一个方法或者一个代码块上,通过它能保证一段代码或一个方法有多个线程调用时能顺序执行。 工作机制: 当程序运行到非静态的synchronized同步方法上时,自动获得与正在执行代码类的当前实例(this实例)有关的锁。获得一个对象的锁也称为获取锁、锁定对象、在对象上锁定或...原创 2012-03-06 00:16:22 · 105 阅读 · 0 评论 -
JVM常用参数设置
堆内存设置示例:java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -Xmx3550m:设置JVM最大可用内存为3550M。-Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xmn2g:设置年轻代大小为2G。整个堆大小=年轻代大小 ...2013-12-04 15:24:21 · 145 阅读 · 0 评论