JavaSE
文章平均质量分 63
zhangzeyuaaa
这个作者很懒,什么都没留下…
展开
-
Java位运算在程序设计中的使用:位掩码(BitMask)
Java位运算在程序设计中的使用:位掩码(BitMask)转载 2022-06-01 13:47:09 · 567 阅读 · 0 评论 -
使用sleep避免java死循环导致的CPU占用率过高
sleep(long millis) 线程睡眠 millis 毫秒使用sleep方法可以避免cpu空转,防止cpu占用率过高。public static void main(String[] args) { while (true) { // you code... try { Thread.sleep(3); } catch (InterruptedException e) { e.printS原创 2021-11-02 11:40:31 · 1617 阅读 · 0 评论 -
Java try catch finally执行顺序
package com.zzj.exception.demo1;public class ExeOrder { static int i = 0; public static void main(String[] args) { System.out.println(getInt()); System.out.println(i); } static int get...原创 2020-03-01 11:15:52 · 331 阅读 · 0 评论 -
Java只读集合与同步集合
直接上代码:package com.xs.collection;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class ReadOnly { /** * @param args */ public static void main(Str原创 2015-02-09 11:42:28 · 4392 阅读 · 0 评论 -
Java包装类常量池
Java的8种基本类型(Byte, Short, Integer, Long, Character, Boolean, Float, Double), 除Float和Double以外, 其它六种都实现了常量池, 但是它们只在大于等于-128并且小于等于127时才使用常量池。由如下例子可以看出:[java] view plaincopy原创 2013-08-17 15:20:01 · 2063 阅读 · 1 评论 -
【JavaSE】Java中BigDecimal的8种舍入模式
java.math.BigDecimal不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以10的负scale次幂。因此,BigDecimal表示的数值是(unscaledValue × 10-scale)。与之相关的还有两个类:转载 2014-12-06 12:19:35 · 949 阅读 · 0 评论 -
【JavaSE】注解实例
下面通过一个例子模拟Spring使用注解读取配置。注解@Bean:package org.zzj.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java原创 2015-01-10 16:17:01 · 608 阅读 · 0 评论 -
【JavaSE】Java高精度计算类:BigInteger和BigDecimal
Java提供了两个用于高精度计算的类:BigInteger和BigDecimal,这两个类都在java.math包下。BigIntegerBigInteger表示不可变的任意精度的整数。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、原创 2014-12-06 11:31:29 · 1345 阅读 · 0 评论 -
【JavaSE】注解简介
简单介绍一个最简单的注解定义如下:public @interface Test {}跟接口的定义很类似,只是多了一个@符号。我们可以只定义一个空注解(标记注解),但是也可以给注解指定元素:public @interface UseCase { public int id(); public String desc();}定义注解元素就像在接口中声明方法,但是注解元素可以指定默原创 2015-01-10 15:46:01 · 774 阅读 · 0 评论 -
Java内部类
class Out{ private int i = 0; public class In{ private int i = 1; public void print(int i){ i++; //局部变量i this.i++; //内部类成员变量i Out.this.i++; //外部类成员变量i } }}原创 2013-12-08 14:56:37 · 617 阅读 · 0 评论 -
【JavaSE】javac 命令讲解
命令结构javac [ options ] [ sourcefiles ]|[ @files ]参数可按任意次序排列。options命令行选项。sourcefiles一个或多个要编译的源文件(例如 MyClass.java)。@files一个或多个对源文件进行列表的文件。结构说明该命令实际上由两部分组成。1.需要被编译的源文件。有两种方法可将源代码文原创 2015-01-07 12:30:41 · 942 阅读 · 0 评论 -
为什么需要ThreadLocal模式
下面的变量都是指的引用变量。 如果我们在方法中要使用方法外的变量(不包括当前类或者父类的成员变量),有两种方式可以引用到方法外的变量: 1.方法传参。 2.将需要被引用的变量定义为类的静态变量。 两种方式都有弊端:方法传参的弊端是可能需要在很多地方传递这个参数(因为变量的存储和获取可能在不同的模块中);定义为类的静态变量则会引发线程安全问题。 为了解决以上两个问题,SUN公司的技术人员提出原创 2015-02-06 14:52:17 · 3449 阅读 · 1 评论 -
一种给Map赋值的优雅方式
直接上代码:public static void main(String[] args) throws Exception { Map<String, String> map = new HashMap<String, String>(){ private static final long serialVersionUID = 1L;原创 2015-02-06 17:12:33 · 41880 阅读 · 4 评论 -
【JavaSE】关于foreach
foreach语句可用于遍历数组或集合。遍历数组好说,但是能遍历哪些集合呢?Java规定,一个集合要能被foreach遍历,必须实现java.lang.Iterable接口。Set, List,Queue都继承Collection接口,而Colleciton接口继承与Iterable,所以Java库中提供的Set,List,Queue都可以使用foreach来遍历持有的元素。原创 2015-01-01 21:22:04 · 612 阅读 · 0 评论 -
Java泛型的擦除是完全的吗?
我们都知道,Java的泛型在运行期会被擦除,但是真的是这样的吗?看下面的例子:package com.zzj.generic;import java.lang.reflect.Field;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.ArrayList原创 2015-01-21 22:48:25 · 964 阅读 · 0 评论 -
【JavaSE】Class.getResource(String name)和ClassLoader.getResource(String name)
ClassClass.getResource("") 获取当前类路径Class.getResource("/") 获取类的根路径ClassLoaderClassLoader.getResource("") 获取类的根路径ClassLoader.getResource("/") null假设包名为org.zzjClassClass.getResou原创 2015-01-05 18:08:42 · 1128 阅读 · 0 评论 -
java的debug和release编译方式
java编译成.class 有两种方式使用javac,默认使用的release方式。release模式下对于函数参数会改变public class Test{ private static void sayHello(){ System.out.println("Hello world"); } public转载 2015-06-04 22:38:39 · 5979 阅读 · 0 评论 -
JavaBean getter/setter命名规范[特例]
一般JavaBean属性以小写字母开头,驼峰命名格式,相应的 getter/setter 方法是 get/set 接上首字母大写的属性名。例如:属性名为userName,其对应的getter/setter 方法是 getUserName/setUserName。但是,还有一些特殊情况:1、如果属性名的第二个字母大写,那么该属性名直接用作 getter/setter 方法中 get/set原创 2015-06-26 13:39:59 · 6117 阅读 · 2 评论 -
Java获取字符的Unicode编码以及如何过滤特殊字符ZWNJ
获取Unicode编码package com.xs.test;public class Test { public static void main(String[] args) throws Exception { int decimal = ((int)'中'); System.out.println(decimal); // Unicode十进制编码 String he原创 2016-01-07 13:28:47 · 11775 阅读 · 0 评论 -
解惑tomcat如何将标准输出保存到文件——重定向System.out
看代码就懂:package com.xs.test;import java.io.FileOutputStream;import java.io.PrintStream;public class Test { public static void main(String[] args) throws Exception { String outPath = "C:\\out.log原创 2016-01-13 15:07:36 · 3644 阅读 · 0 评论 -
Java Class类以及获取Class实例的三种方式
java.lang 类 ClassT - 由此 Class 对象建模的类的类型。例如,String.class 的类型是Class。如果将被建模的类未知,则使用 Class。public final class Class extends Object implements java.io.Serializable, java.lang.r原创 2013-12-12 21:53:24 · 16887 阅读 · 0 评论 -
【JavaSE】方法重载和重写
下面的例子展现了重写和重载的区别:原创 2014-11-20 16:45:08 · 959 阅读 · 0 评论 -
【JavaSE】协变返回类型
Java SE5中添加了协变返回类型,它表示在原创 2014-11-20 11:23:40 · 940 阅读 · 0 评论 -
【JavaSE】初始化顺序
Java的初始化主要包括:静态成员变量(以及静态)初始化、原创 2014-11-19 14:00:50 · 907 阅读 · 0 评论 -
回调机制与好莱坞原则
《编程导论(Java)》在9.3.1回调中,介绍了好莱坞法则/好莱坞原则(Hollywood principle)第287页,并将它作为回调的近义词,即当程序中使用了回调,那么你的程序应用了"好莱坞法则"。Hollywood principle:"Don't call me; I'll call you." (don't call us, we'll call you)转载 2013-12-08 11:21:03 · 3630 阅读 · 1 评论 -
模拟Java对象克隆
浅度克隆先定义一个克隆的抽象类,专门负责克隆:package com.xs.object;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public abstract class AClone原创 2014-01-24 14:14:01 · 906 阅读 · 0 评论 -
Java九种数据类型
代码如下:package zzj.test.main;/** * Java九种基本数据类型 * @author lenovo * */public class Main { /** * @param args */ public static void main(String[] args) { //byte System.out.println("Clas原创 2013-08-17 11:36:20 · 1680 阅读 · 1 评论 -
Java Integer装箱和拆箱
装箱:把基本类型用它们相应的引用类型包装起来,使其具有对象的性质。int包装成Integer、float包装成Float。拆箱:和装箱相反,将引用类型的对象简化成值类型的数据。Integer a = 100; 这是自动装箱 (编译器调用的是static Integer valueOf(int i))int b = new Integer(1原创 2013-08-17 15:28:30 · 1274 阅读 · 0 评论 -
深入Java对象的比较
深入Java对象的比较 一、简单类型比较 Java中,比较简单类型变量用“==”,只要两个简单类型值相等即返回ture,否则返回false; 二、引用类型比较 引用类型比较比较变态,可以用“==”,也可以用“equals()”来比较,equals()方法来自于Object类,每个自定义的类都可以重写这个方法。Object类中的equa转载 2013-08-17 14:02:57 · 701 阅读 · 0 评论 -
java path,classpath的概念解析
java中的path,classpath经常容易引起混淆,现做以下总结: 首先是JAVA_HOME环境变量,我们先来掌握这个环境变量的设置内容,JAVA_HOME这个环境变量的设置内容是JDK的安装目录,比如说您的JDK安装在d:\jdk1.6.0这个目录下,请您查看一下这个目录下是不是有一个子目录bin,bin目录中是不是有java.exe这个文件,如果是,那么您的JAVA_HOME转载 2012-12-14 17:28:37 · 920 阅读 · 0 评论 -
Java多个屏幕
以下代码示例演示了如何在 GraphicsEnvironment 中针对每个屏幕设备的每个 GraphicsConfiguration 创建JFrame 对象。 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] gs = ge.getScree原创 2013-08-01 16:25:33 · 1782 阅读 · 0 评论 -
静态内部类(嵌套类)
如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称为嵌套类(nested class)。Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。想要理解static应用于内部类时的含义,你就必须记住,普通的内部类对象隐含地保存了一个引用,指向创建它的外围类转载 2013-12-08 15:53:13 · 1246 阅读 · 0 评论 -
Java的四种代码块
Java代码块 一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 1.普通代码块:就是类中方法的方法体 public void xxx(){ //code } 2.构造块:用{}裹起来的代码片段,构造块在创建对象时会被调用,每次创建对象 时都会被调用,并且优先于类构造函数执行。转载 2013-11-23 22:03:22 · 11498 阅读 · 0 评论 -
Java自引用以及陷阱
自引用是构造链表的基础Java自引用如下:class Node{ int data; Node node;}就是在类里定义一个指向自身的引用,但是这里有一个陷阱,我们把代码改为如下:class Node{ int data; Node node = new Node();}当我们创建这个类的对象时,会抛出java.lang.StackOverflowError,也就是栈溢出原创 2014-01-26 14:37:10 · 3282 阅读 · 0 评论 -
Java时间格式转换
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class DateFormat { /** * @param args */ public static void main(String[] args) { System.out原创 2013-12-24 10:03:27 · 777 阅读 · 0 评论 -
【JavaSE】关于switch case的陷阱
看下面的例子。package p;public class Test { public static void main(String[] args) { int i = 2; switch (i) { case 1: System.out.println(1); case 2: System.out.println(2); case 3: Sys原创 2014-11-02 17:28:35 · 995 阅读 · 0 评论 -
使用命令生成Jar包
Jar包分两种,一种是可运行的,一种是原创 2014-09-30 13:56:37 · 1290 阅读 · 0 评论 -
局部内部类为什么能访问局部变量
看下面的例子:package com.xs.localinnerclass;import java.util.HashMap;import java.util.Map;public class Main { /** * @param args */ public static void main(String[] args) { final Map map = new原创 2014-10-22 21:36:00 · 775 阅读 · 0 评论 -
关于Java向上转型和向下转型以及类型还原
在Java继承体系中,认为基类原创 2014-10-18 23:12:18 · 2943 阅读 · 0 评论 -
Java反射异常处理之InvocationTargetException
InvocationTargetException异常由Method.invoke(obj, args...)方法抛出原创 2014-09-27 14:27:33 · 333868 阅读 · 17 评论