
JavaSE
文章平均质量分 58
zhangzeyuaaa
这个作者很懒,什么都没留下…
展开
-
Java获取classpath根路径的方式
上述几种方法在不同场景下有各自的优势,可根据具体需求来选择合适的方法。能获取类路径,该路径由多个路径组成,以分隔符分隔。分隔符将其分割成多个路径元素,最后输出这些元素。方法来获取类路径的根路径,最后输出其路径。方法来获取类路径的根路径,然后输出该路径。方法可用于获取类路径下资源的。时,就能得到类路径的根路径。在上述代码中,先获取当前类的。即可得到类路径的根路径。方法获取类路径,再使用。原创 2025-03-31 11:08:20 · 341 阅读 · 0 评论 -
Linux安装JDK
完成JDK安装后,接下来开始配置环境变量。原创 2025-01-16 13:32:25 · 189 阅读 · 0 评论 -
Java 线程池的核心线程数已满,什么情况下会创建新的线程?
是创建新线程的必要条件。此时,线程池会突破核心线程数限制,创建新线程直至达到最大线程数,后续任务将。原创 2025-03-09 19:55:25 · 236 阅读 · 0 评论 -
Java线程池 execute方法和submit方法,异常处理有何不同?
execute方法execute方法是Executor接口定义的方法,在类中实现,用于提交一个Runnable任务到线程池执行。submit方法submit方法是接口定义的方法,有多个重载版本,可接受Runnable或Callable任务,并且会返回一个Future对象,用于获取任务的执行结果。execute方法提交的任务抛出异常时,异常会直接影响工作线程,需要在任务内部或通过线程的进行处理。submit方法提交的任务抛出异常时,异常会被封装在Future对象中,需要通过调用Future的get。原创 2025-03-09 13:10:23 · 335 阅读 · 0 评论 -
Java主线程能拿到子线程抛出的异常吗?
在Java中,主线程默认情况下不能直接拿到子线程抛出的异常。原创 2025-03-08 11:35:45 · 255 阅读 · 0 评论 -
httpclient4.5 的 httpclient对象是可以作为单例复用的吗?
Apache HttpClient 4.5 的 `HttpClient` 对象可以作为单例复用,且这是官方推荐的最佳实践原创 2025-03-06 13:13:59 · 831 阅读 · 0 评论 -
Java| Charset.defaultCharset()和file.encoding的关系
返回此 Java 虚拟机的默认 charset。默认 charset 在虚拟机启动时决定,通常根据语言环境和底层操作系统的 charset 来确定。是操作系统的编码,可以通过虚拟机启动时指定属性,来更改指的是jvm输入流、输出流默认使用的编码/解码方式。当我们需要指定编码格式,可以通过JVM参数在启动的时候进行设置,从而不受操作系统和语言环境的影响.获取默认编码格式的源码如下:①当我们不手动设置JVM参数。转载 2024-06-26 11:57:06 · 462 阅读 · 0 评论 -
Java位运算在程序设计中的使用:位掩码(BitMask)
Java位运算在程序设计中的使用:位掩码(BitMask)转载 2022-06-01 13:47:09 · 769 阅读 · 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 · 1790 阅读 · 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 · 379 阅读 · 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 · 635 阅读 · 0 评论 -
【JavaSE】Java中BigDecimal的8种舍入模式
java.math.BigDecimal不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以10的负scale次幂。因此,BigDecimal表示的数值是(unscaledValue × 10-scale)。与之相关的还有两个类:转载 2014-12-06 12:19:35 · 1014 阅读 · 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 · 2123 阅读 · 1 评论 -
为什么需要ThreadLocal模式
下面的变量都是指的引用变量。 如果我们在方法中要使用方法外的变量(不包括当前类或者父类的成员变量),有两种方式可以引用到方法外的变量: 1.方法传参。 2.将需要被引用的变量定义为类的静态变量。 两种方式都有弊端:方法传参的弊端是可能需要在很多地方传递这个参数(因为变量的存储和获取可能在不同的模块中);定义为类的静态变量则会引发线程安全问题。 为了解决以上两个问题,SUN公司的技术人员提出原创 2015-02-06 14:52:17 · 3521 阅读 · 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 · 42019 阅读 · 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 · 661 阅读 · 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 · 4470 阅读 · 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 · 1013 阅读 · 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 · 1163 阅读 · 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 · 6210 阅读 · 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 · 6462 阅读 · 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 · 12257 阅读 · 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 · 3721 阅读 · 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 · 17100 阅读 · 0 评论 -
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 · 1318 阅读 · 0 评论 -
【JavaSE】Java高精度计算类:BigInteger和BigDecimal
Java提供了两个用于高精度计算的类:BigInteger和BigDecimal,这两个类都在java.math包下。BigIntegerBigInteger表示不可变的任意精度的整数。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、原创 2014-12-06 11:31:29 · 1409 阅读 · 0 评论 -
【JavaSE】注解简介
简单介绍一个最简单的注解定义如下:public @interface Test {}跟接口的定义很类似,只是多了一个@符号。我们可以只定义一个空注解(标记注解),但是也可以给注解指定元素:public @interface UseCase { public int id(); public String desc();}定义注解元素就像在接口中声明方法,但是注解元素可以指定默原创 2015-01-10 15:46:01 · 799 阅读 · 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 · 644 阅读 · 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 · 814 阅读 · 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 · 3400 阅读 · 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 · 3696 阅读 · 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 · 946 阅读 · 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 · 1755 阅读 · 1 评论 -
深入Java对象的比较
深入Java对象的比较 一、简单类型比较 Java中,比较简单类型变量用“==”,只要两个简单类型值相等即返回ture,否则返回false; 二、引用类型比较 引用类型比较比较变态,可以用“==”,也可以用“equals()”来比较,equals()方法来自于Object类,每个自定义的类都可以重写这个方法。Object类中的equa转载 2013-08-17 14:02:57 · 740 阅读 · 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 · 981 阅读 · 0 评论 -
Java多个屏幕
以下代码示例演示了如何在 GraphicsEnvironment 中针对每个屏幕设备的每个 GraphicsConfiguration 创建JFrame 对象。 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] gs = ge.getScree原创 2013-08-01 16:25:33 · 1850 阅读 · 0 评论 -
静态内部类(嵌套类)
如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称为嵌套类(nested class)。Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。想要理解static应用于内部类时的含义,你就必须记住,普通的内部类对象隐含地保存了一个引用,指向创建它的外围类转载 2013-12-08 15:53:13 · 1296 阅读 · 0 评论 -
Java的四种代码块
Java代码块 一.在Java中,使用”{}”括起来的代码称为代码块,代码块可以分为以下四种: 1.普通代码块:就是类中方法的方法体 public void xxx(){ //code } 2.构造块:用{}裹起来的代码片段,构造块在创建对象时会被调用,每次创建对象 时都会被调用,并且优先于类构造函数执行。转载 2013-11-23 22:03:22 · 11558 阅读 · 0 评论 -
Java强引用、软引用、弱引用、虚引用
1.对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。图1为对象应用类层次。转载 2014-08-23 21:56:01 · 963 阅读 · 0 评论 -
ThreadLocal类浅析
类图原创 2014-05-26 15:56:01 · 782 阅读 · 0 评论