`
hz_chenwenbiao
  • 浏览: 1007961 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
String的getBytes方法和String(byte[] bytes,Charset charset)组合使用解决jsp传递中文参数乱码的情况 public byte[] getBytes(Charset charset) 使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。 此方法总是使用此字符 ...
1 线程池代码:  package org.biao.threadpool; import java.util.List; import java.util.Vector; //线程池,其实就是一些队列操作 public class ThreadPool { private static ThreadPool instance_ = null; // 定义优先级别常数,空闲的线程按照优先级不同分别存放在三个vector中 public static final int LOW_PRIORITY = 0; public static final int NOR ...
ThreadLocal<T> ThreadLocal中的基本存储结构是ThreadLocalMap。其中使用到了一个基础对象:WeakReference<T>,WeakReference(弱引用)指当需要某个指向某对象的引用,但又不影响此对象的垃圾收集,应该使用此对象代替一般的 reference。即,这个对象在除了WeakReference以外没有其他引用指向时,可以被垃圾回收,此时弱引用会变为null值。 ThreadLocalMap使用和普通Map相同的方式,只是每个元素都是WeakReference的子类。保证线程回收时,对象能够被垃圾回收。 ...
ThreadLocal<T>类在Spring,Hibernate等框架中起到了很大的作用,对于其工作原理,很多网上的文章分析的不够彻底,甚至有些误解。   首先,为了解释ThreadLocal类的工作原理,必须同时介绍与其工作甚密的其他几个类(内部类) ...
Java与Unicode: Java的class文件采用utf8的编码方式,JVM运行时采用utf16。 Java的字符串是unicode编码的。 总之,Java采用了unicode字符集,使之易于国际化 Java支持哪些字符集: 即Java能识别哪些字符集并对它进行正确地处理? 查看Charset 类,最新的JDK支持160种字符集。可以通过static方法availableCharsets拿到所有Java支持的字符集。 assertEquals(160, Charset.availableCharsets().size());       Set<Strin ...
Web应用程序在浏览器中显示字符串时,由于显示长度的限制,常常需要将字符串截取后再进行显示。但目前很多流行的语言,如C#、Java内部采用的都是 Unicode 16(UCS2)编码,在这种编码中所有的字符都是两个字符,因此,如果要截取的字符串是中、英文、数字混合的,就会产生问题,如下面的字符串: String s = "a加b等于c,如果a等1、b等于2,那么c等3";  上面的字符串既有汉字,又有英文字符和数字。如果要截取前6个字节的字符,应该是”a加b等",但如果用substring方法截取前6个字符就成了"a 加b等于c"。 ...
   使用JDBC时,我们都会很自然得使用下列语句:   Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8"; String user = ""; String psw = ""; Connection con = DriverManager.getConnection(u ...
分为定义,初始化,使用,消亡 写个例子测试一下: 第一步:建一个类User,代码如下: java 代码 package test.lyx;    publicclass User {        
好长时间没有用过Spring了. 突然拿起书.我都发现自己对AOP都不熟悉了.其实AOP的意思就是面向切面编程.OO注重的是我们解决问题的方法(封装成Method),而AOP注重的是许多解决解决问题的方法中的共同点,是对OO思想的一种补充!还是拿人家经常举的一个例子讲解一下吧:比如说,我们现在要开发的一个应用里面有很多的业务方法,但是,我们现在要对这个方法的执行做全面监控,或部分监控.也许我们就会在要一些方法前去加上一条日志记录,我们写个例子看看我们最简单的解决方案我们先写一个接口IHello.java代码如下: package sinosoft.dj.aop.staticaop; ...
一,servlet容器如何同时处理多个请求。Servlet采用多线程来处理多个请求同时访问,Servlet容器维护了一个线程池来服务请求。线程池实际上是等待执行处理的一组线程,也叫做工作者线程(Worker Thread),Servlet容器使用一个调度线程来管理工作者线程(Dispatcher Thread)。当容器收到一个访问Servlet的请求,调度者线程从线程池中选出一个工作者线程,将请求传递给该线程, 然后由该线程来执行Servlet的service方法。当这个线程正在执行的时候,容器收到另外一个请求,调度者线程将从池中选出另外一个工作者线程来服务新的请求;容器并不关心这个请求是否访问 ...
出自:http://fhz1980.blog.163.com/blog/static/355287712010101195442618/   JVM运行时数据区的内存模型由五部分组成: 【1】方法区【2】堆【3】JAVA栈【4】PC寄存器【5】本地方法栈 对于String s = "haha" ,它的虚拟机指令: 0: ldc #16; //String haha 2: astore_1 3: return     对于上面虚拟机指令,其各自的指令流程在《深入JAVA虚拟机》这样描述到(结合上面实例): ...
Java反射机制深入研究   Java 反射是Java语言的一个很重要的特征,它使得Java具体了“动态性”。   在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? ...
出处:http://hellosure.iteye.com/blog/918161   51CTO曾介绍过《深入Java核心 探秘Java垃圾回收机制》,Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃圾回收来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要垃圾回收,但是由于内存的有限性,JVM在实现的时候都有一个由垃圾回收所管理的堆。垃 ...
Java开发中,每当我们在程序中使用new生成一个对象,对象的引用存放在栈里,而对象是存放在堆里的。可以看出栈在Java核心的重要位置。今天我们就继续深入Java核心这个系列,为您介绍Java中的栈、局部变量及其之间的关系。 Java中的栈 每当启用一个线程时,JVM就为他分配一个Java栈,栈是以帧为单位保存当前线程的运行状态。某个线程正在执行的方法称为当前方法,当前方法使用的栈帧称为当前帧,当前方法所属的类称为当前类,当前类的常量池称为当前常量池。当线程执行一个方法时,它会跟踪当前常量池。 每当线程调用一个Java方法时,JVM就会在该线程对应的栈中压入一个帧,这个帧自然就成了当前帧。当执行 ...
出处:http://qiemengdao.iteye.com/blog/981119     1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.    2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)   3. 堆:存放所有new出来的对象。   4. 静态域:存放静态成员(static定义的)   5. 常量池:存放字符串常量和基本类型常量(public static final)。   6. 非RAM存储:硬盘等永久存储空间   这里我们主要关心栈, ...
Global site tag (gtag.js) - Google Analytics