
Java
欧米优
白俄罗斯国家技术大学 信息技术软件专业毕业。硕士研究生。请大家多多帮助
展开
-
连接失败重连时间间隔可变
hash wheel timer是一种算法,netty用来做心跳超时检查,这个算法有几个共有的属性:Ticks per Wheel (一轮的tick数),Tick Duration(一个tick的持续时间)以及 TimeUnit(时间单位)。关于Tick Duration我感觉应该解释为每一次tick时间间隔。HashedWheelTimer原文英语注释表达了这样一层意思:原创 2014-05-24 13:20:55 · 1920 阅读 · 0 评论 -
【编码与乱码】(01)---编码基础
Unicode中文“艺”字: 827A二进制的“艺”字编码:1000 0010 0111 1010UTF-8的中文编码规则: 1110xxxx 10xxxxxx 10xxxxxxUTF-8的“艺”字编码: 1110【1000】 10【0010】【01】 10【11】【1010】UTF-8的转码过程解析: 8对应的1000被填入第一字节剩余的4位。2对应的0010被填原创 2013-07-01 09:54:06 · 870 阅读 · 0 评论 -
package-info.java文件那点事
首先,它不能随便被创建。在Eclipse中, package-info文件不能随便被创建,会报“Type name is notvalid”错误,类名无效,Java变量定义规范是:字母、数字、下划线,还有那个不怎么常用的$符号(顺带说下,Java是支持中文名称的变量,习惯挑战的同学可以尝试下,分享一下这方面的经验),这个中划线可不再之列,那怎么创建这个文件呢?很简单,用记事本创建一个,然后转载 2013-06-27 13:52:44 · 627 阅读 · 0 评论 -
Base64实现
不多说,看源码和注释。package cn.goku.commons.util;import org.apache.commons.codec.binary.Base64;import sun.misc.BASE64Encoder;/** * 【Base64】 -base64的编码都是按字符串长度,以每3个8bit的字符为一组, -然后针对每组,首先获取每个字符的ASCII编原创 2013-07-10 10:24:58 · 795 阅读 · 0 评论 -
Java获取路径
在JSP、Servlet、Java中获取详细路径的的常见方法。假设现在有一个项目,项目名为java_path,有一个jsp文件test.jsp. 一、在JSP中获取文件的路径: 1) 得到包含工程名的当前页面的全路径:request.getRequestURI() 结果:/java_path/test.jsp 2)转载 2013-06-20 14:40:56 · 547 阅读 · 0 评论 -
获取字节码的文件路径、获取一个类的具体名称、获取一个类的简单名称、获取一个类的包名
获取字节码文件的文件路径、获取一个类的具体名称、获取一个类的简单名称、获取一个类的包名package com.get_src_path;import java.io.File;import java.net.URLDecoder;public class Path_Test { /** * 演示的功能: * 获取字节码的文件路径 * 取得代码路径下的全部文件 *转载 2013-04-18 09:00:17 · 861 阅读 · 0 评论 -
class 包名+类名 获取改class的字节码
项目中要有需求通过指定的class 包名+类名 获取改class的字节码 咋一下这个需求挺简单的,直接用classload获取当前classpath ,然后替换包名中的.为"/"加上".class"就可以读取到改class文件了.但当该类的class文件时存在某jar包中的时候,这个方法就行不通了.于是各种想办法,想过用JarFile 迭代的方法(迭代lib下所有jar包,然后在里边找原创 2013-04-18 08:58:16 · 982 阅读 · 0 评论 -
Java字符集
通常而言,把明文的字符序列转换成计算机能理解的二进制序列称为编码,把二进制序列转换成普通人能看懂的明文字符串称为解码。JDK1.4提供了Charset来处理字节序列和字符序列之间的转换关系,该类包含了用于创建解码器和编码器的方法,还提供了Charset所支持的字符集的方法,Charset类是不可变的。Charset类提供了一个availableCharset()的静态方法来获取当前JDK所转载 2013-04-23 09:59:21 · 613 阅读 · 0 评论 -
Java7遍历文件夹
Java遍历文件夹的方法有多种,之前我写了一种遍历文件夹的方法点击,使用File类的方法递归遍历,这次是使用Java7提供的新的方法遍历文件夹。File提供两个方法遍历文件夹,上面两个方法都需要FileVisitor参数,FileVisitor代表一个文件访问器,walkFileTree()方法会自动遍历start路径下的所有文件和子目录,遍历文件和子目录都会触发FileVisitor转载 2013-04-23 09:58:36 · 751 阅读 · 0 评论 -
根据ip地址获取主机名称
public static void main(String[] args) { InetAddress address; try { address = InetAddress.getByName("192.168.0.8"); System.out.println(address.getHostName()); // 需要访问DNS服务器原创 2013-04-09 17:24:39 · 752 阅读 · 0 评论 -
【编码与乱码】(02)---String的getBytes([encoding])方法
package example.encoding;import java.io.UnsupportedEncodingException;/** * The Class GetBytesTest. */public class GetBytesTest { /** * The main method. * * @param args the原创 2013-07-01 10:04:49 · 1442 阅读 · 1 评论 -
【编码与乱码】(05)---GBK与UTF-8之间的转换
【GBK转UTF-8】在很多论坛、网上经常有网友问“ 为什么我使用 new String(tmp.getBytes("ISO-8859-1"), "UTF-8") 或者 new String(tmp.getBytes("ISO-8859-1"), "GBK")可以得到正确的中文,但是使用 new String(tmp.getBytes("GBK"), "UTF-8") 却不能将GBK转换成原创 2013-07-01 10:08:42 · 1095 阅读 · 0 评论 -
【编码与乱码】(06)---字符的各种值转换
package example.encoding;/** * The Class ChineseValidator. */public class CharacterValueConveter { /** * The main method. * * @param args the arguments */ public sta原创 2013-07-01 10:10:50 · 785 阅读 · 0 评论 -
Java后台执行Shell脚本, Java方法不用等待Shell程序执行完成并保证关掉Java程序Shell脚本正常运行
首先说明,我现在要解决的两个问题:1、如果要调用的Shell脚本是常驻内存,也就是说里面有循环不会结束的脚本,我用Java方法调用,但是不能等Shell执行完成,即调用执行一下后,我的Java方法要结束,同时还要保证Shell已经运行了; 2、用Java调用后,把Java程序杀掉,这时由Java执行的Shell脚本要保证正常运行,不能随Java程序的关闭而停止。原创 2013-09-05 15:26:43 · 4408 阅读 · 2 评论 -
Simple trick to convert Date format with timezone in Java!
I am sure most of you got frustrated from the fact that SimpleDateFormat can not handle ISO8601 format. Here is my little trick to solve this nuisance. Create a list of Know format you know tha原创 2013-07-31 15:03:39 · 1021 阅读 · 0 评论 -
Java知识点:javac命令
javac命令初窥注:以下红色标记的参数在下文中有所讲解。用法: javac 其中, 可能的选项包括: -g 生成所有调试信息 -g:none 不生成任何调试信息 -g:{lines,vars,source} 只生成某些调试信息 -nowarn转载 2013-07-29 12:25:40 · 1131 阅读 · 0 评论 -
Java EE 7 Maven 坐标
ComponentMavenImplementationJava EE 7 Full Platform JSR 342 javax javaee-api 7.0 RI: GlassFish 4 Promoted BuildsJIRA: GLASSFISHJava EE 7 Web Profile转载 2013-07-02 09:03:06 · 1568 阅读 · 1 评论 -
【编码与乱码】(08)---JavaEE防止中文乱码的设置
在基于J2EE的B/S应用中,中文乱码是一个永恒的主题,永远都无法回避。诚然对于一般的程序员,我们没有必要对编码进行深刻的研究。但是至少我们需要了解: ①编码基础 ②String的getBytes([encoding])方法内幕 ③String的toCharArray()方法内幕 ④输出时的编码与乱码原因 ⑤UTF-8的编码规则和GBK如何转换到UTF-8 ⑥字符在各种原创 2013-07-01 10:24:44 · 1653 阅读 · 0 评论 -
【编码与乱码】(04)---输出时的编码与乱码
package example.encoding;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOExcept原创 2013-07-01 10:07:23 · 851 阅读 · 0 评论 -
【编码与乱码】(03)----String的toCharArray()方法
package example.encoding;import java.io.UnsupportedEncodingException;/** * The Class GetCharTest. */public class GetCharTest { /** * The main method. * * @param args the ar原创 2013-07-01 09:57:58 · 2141 阅读 · 0 评论 -
【编码与乱码】(07)---native2ascii命令的用法
【1】native2ascii命令的语法:native2ascii -[options] [inputfile [outputfile]]【2】native2ascii命令的功能:native2ascii命令可以帮助我们做两件事: ①把文件的字符转换成unicode字符输出到控制台或文件 ②把文件中的unicode字符转换成默认或指定编码的字符【3】native2ascii原创 2013-07-01 10:15:05 · 845 阅读 · 0 评论 -
Java线程总结
1.进程:在操作系统上运行的一个应用程序,每一个进程都拥有自己独立的内存空间 线程:一个应用程序可以有多个子任务,每一个子任务就是一个线程 并发:当进程中多个线程同时运行时,这种运行方式称为并发。 但是在同一时间点cpu只能处理一个线程,宏观上并行,微观上串行 java.exe就是jvm 进程 每一个进程都有一个主线程,也就是应用程序的入口函数ma原创 2013-03-12 09:30:09 · 601 阅读 · 0 评论 -
JDK所有历史版本
http://www.oracle.com/technetwork/java/archive-139210.html原创 2013-02-25 09:44:59 · 447 阅读 · 0 评论 -
java并发集合的优缺点
本文系 www.javady.com网站原创,转载请标明出处线程池 ExecutorService exec = Executors.newFixedThreadPool(100); 优点: 1、任务分配简单,任务少的情况下执行效率高 2、线程不需要控制,操作简单 缺点: 1、当每个任务执行时间很长的时候,占用的内存转载 2012-05-22 08:59:17 · 679 阅读 · 0 评论 -
java输出程序本身占用的内存
有些时候为了测试程序的性能或者定位问题需要输出java程序本身使用的内存,下面这种方式既可以直接通过java提供的API拿到内测信息log.info("-----------------------------------------------------------"); MemoryMXBean memoryMXBean = ManagementFactory.getMemory原创 2012-05-22 08:49:03 · 2264 阅读 · 0 评论 -
java内存原型分析-基本知识
java虚拟机内存原型寄存器:我们在程序中无法控制栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中堆:存放用new产生的数据静态域:存放在对象中用static定义的静态成员常量池:存放常量非RAM存储:硬盘等永久存储空间Java内存分配中的栈栈的基本单位是帧(或栈帧):每当一个java线程运行的时候, java虚拟机会为该线程分配一个jav原创 2012-05-22 08:46:01 · 393 阅读 · 0 评论 -
Java内存泄露_JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat
jstack -- 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到 当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung原创 2012-05-22 09:16:49 · 1238 阅读 · 0 评论 -
java并发包-AtomicInteger的并发处理
今天我们研究一下java并发包下面的 AtomicInteger 类 java.util.concurrent.atomic 包中添加原子变量类。所有原子变量类都公开“比较并设置”原语,这些原语都是使用平台上可用的最快本机结构(比较并交换、加载链接/条件存储,最坏的情况下是旋转锁)来实现的。 java.util.concurrent.atomic 包中提供了原子变量的 9 种风格(原创 2012-05-22 09:03:24 · 967 阅读 · 0 评论 -
java如何关闭一个线程
看到很多人在提问在不使用废弃的stop等方法下如何去实时关闭一个线程 先来说一下线程关闭后台要做哪些工作 1、线程异常关闭,如果当前线程设置了setUncaughtExceptionHandler,并且线程是因为未捕获的异常进行关闭的,线程会调用设置给它的 Thread.UncaughtExceptionHandler 来捕获异常。2、如果线程处于正常的关闭中,就会触发所有原创 2012-05-22 08:58:11 · 2103 阅读 · 1 评论 -
java安全-SQL注入漏洞
漏洞简介 SQL 注入漏洞在以下情况下出现: 1. 数据从一个不可信赖的数据源进入程序。2. 数据用于动态地构造一个 SQL 查询。String userName = ctx.getAuthenticatedUserName();String itemName = request.getParameter("itemName");String query原创 2012-05-22 08:54:39 · 1342 阅读 · 0 评论 -
java高并发-静态页面生成方案
提升网站性能的方式有很多,例如有效的使用缓存,生成静态页面等等。今天要说的就是生成静态页面的方式。这个也是我近期一直在搞的一个问题,近期在做使用html + servlet做个人网站,为什么是这2个东西呢? 1、直接用servlet是为了保证网站能以最快的速度执行命令..个人总感觉像Struts hibernate spring之类的虽然方便但是效能带来的损耗不太能接收原创 2012-05-22 08:53:17 · 1878 阅读 · 0 评论 -
java 反射知识总结
反射知识:1.Class类: 获取一个Class类有三种方法: //第一种获取方法,直接了当Class clazz1 = String.class; //第二种获取方法,对实体类运用方法String str = "just do it";Class clazz2 = str.getClass(); //第三种获取方法,直接传递一个类名,字符串形式Class原创 2012-05-11 09:04:05 · 326 阅读 · 0 评论 -
java整型数与网络字节序的 byte[] 数组转换关系
工作项目需要在java和c/c++之间进行socket通信,socket通信是以字节流或者字节包进行的,socket发送方须将数据转换为字节流或者字节包,而接收方则将字节流和字节包再转换回相应的数据类型。如果发送方和接收方都是同种语言,则一般只涉及到字节序的调整。而对于java和c/c++的通信,则情况就要复杂一些,主要是因为java中没有unsigned类型,并且java和c在某些数据类型上的长原创 2012-05-22 09:15:37 · 618 阅读 · 0 评论 -
overload和override的区别
override(重写)1、方法名、参数、返回值相同。2、子类方法不能缩小父类方法的访问权限。3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。4、存在于父类和子类之间。5、方法被定义为final不能被重写。overload(重载)1、参数类型、个数、顺序至少有一个不相同。 2、不能重载只有返回值不同的方法名。3、存在于父类和子类、同类中。原创 2012-08-23 08:14:08 · 480 阅读 · 0 评论 -
什么是Java的弱引用(Weak Reference)
之前一直没有接触过弱引用这个概念,今天看到以后觉得挺新鲜,就查了查资料总结一下,希望对大家有所帮助。 要理解弱引用,首先要先了解一下强引用(Strong Reference), 其实我之前也并不了解强引用,虽然天天都在用。举例来说: String abc = new String ("abcdf");这就是创建了一个String的实例然后在变量abc中转载 2012-12-13 12:23:31 · 458 阅读 · 0 评论 -
JAVA多线程,面试者的最爱!
多线程 线程:是指进程中的一个执行流程。 线程与进程的区别:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内存和系统资源。如何创建一个线程?创建线程有两种方式,如下: 1、 扩展java.lang.Thread类 2、 实现Runnable接口 Thread类代表线程类,它的两个最主要的转载 2013-03-07 14:23:25 · 610 阅读 · 0 评论 -
Java 正则表达式 - 命名捕获组
JDK1.7支持正则表达式的命名捕获组JDK1.6不支持import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { /** * @param args */ public static void main(String[] args) { String pStr =原创 2013-03-07 12:55:17 · 1166 阅读 · 0 评论 -
用正则表达式验证IPv6地址的例子
public class Hello { public boolean isIPv6(String address) { boolean result = false; String regHex = "(\\p{XDigit}{1,4})"; //没有双冒号 String regIPv6Fu转载 2013-03-07 15:41:21 · 3468 阅读 · 0 评论 -
我之于Java设计模式的理解
下面是我对一些常用设计模式的理解:模式分为:行为模式、对象模式、结构模式构建者模式:为产品的创建提供了统一模板,而且可以使用创建者指挥器对产品的构建结构或顺序进行调整。观察者模式:当一个事件发生,而去通知所有观察者状态改变。工厂模式:简单工厂不支持开闭原则,而工厂方法不支持多产品族问题,抽象对于产品族扩展是不支持的。适配器模式:把一种已有的接口适配为当前需要的接口类型,该模式是针对原创 2013-01-30 15:03:21 · 424 阅读 · 0 评论 -
识别英文格式日期
日期转换,识别英文格式日期。在SimpleDateFormat中添加参数Locale.US SimpleDateFormat sdf = new SimpleDateFormat("E MMM d HH:mm:ss yyyy", Locale.US); try { System.out.println(sdf.parseObject("sun Jan 6 13:42:12 20原创 2013-01-07 09:14:14 · 420 阅读 · 0 评论