
java
文章平均质量分 58
jdk学习
A__17
这个作者很懒,什么都没留下…
展开
-
ThreadLocal - InheritableThreadLocal
InheritableThreadLocal原创 2018-01-07 21:54:50 · 365 阅读 · 0 评论 -
线程池中线程的数量
前言: 在设置线程池中线程的数量时,我们通常先会对任务的特性进行分析,根据任务的特性来确定一个大致的线程数并执行任务,然后依据任务执行的效果来适当地对线程数进行调整,最终找到最优的线程数。 线程池线程数量如何确定? CPU密集型任务 Ncpu+1 个线程 减少上下文的切换,提高吞吐率。 IO密集型任务 或 依赖外部资源型任务: 2*Ncpu个线程,或者更多的线程,主要取决于等待外部资源的时间。 常见的外部资源: 任务需要调用其它系统的接口:在请求返回前,cpu处于空闲的状态,此时该线程.原创 2015-06-28 12:31:00 · 3004 阅读 · 0 评论 -
java中动态地切换当前的工作目录cwd
java中动态地切换当前的工作目录: 原理:使用jnr来实现对本地库的调用。 说明: Java Native Interface(JNI) 编写Java本地代码的标准编程接口,实现了java与其它语言(c/c++等)的通信。 Java Native Access(JNA) 基于JNI的框架。 Java Native Runtime(JNR) 基于JNI的框架,它对不同平台的JNA...原创 2019-06-19 22:42:18 · 3811 阅读 · 0 评论 -
ThreadLocal - 内存泄露
1.内存泄漏 内存溢出: Memory overflow 没有足够的内存提供申请者使用. 内存泄漏: Memory Leak 程序中已经动态分配的堆内存由于某种原因, 程序未释放或者无法释放, 造成系统内部的浪费, 导致程序运行速度减缓甚至系统崩溃等严重结果. 内存泄漏的堆积终将导致内存溢出 2. key=ThreadLocal是强引用 假设ThreadLocalMap中的key使用了强引用, 那么会出现内存泄漏吗? 假设在业务代码中使用完ThreadLocal, ThreadLocal r转载 2021-03-31 15:52:10 · 724 阅读 · 0 评论 -
logback.groovy配置
第十二章:Groovy 配置 领域特定语言或者 DSL 更加普遍。logback 基于 XML 的配置可以看做 DSL 的实例。由于 XML 的本质,基于 XML 的配置文件变得非常的啰嗦以及臃肿。另外,logback 中的 Joran 有一个相对庞大的代码,用来专门处理基于 XML 的配置文件。Joran 支持一些非常好的特性,例如变量替换,条件处理,以及动态扩展。但是,不但 Joran 非常...转载 2019-12-16 22:14:17 · 2556 阅读 · 1 评论 -
java中创建进程
Java中提供了两种方法来启动其它进程: 方法一: Process process = new ProcessBuilder(cmd).start(); 方法二: Process process = Runtime.getRuntime().exec(cmd); 注意:底层也是调用方法一。 Process的waitFor()方法: 说明:等待Process结束后返回Process的返...原创 2019-11-05 21:27:47 · 2772 阅读 · 0 评论 -
java中使用SimpleDateFormat实现字符串和日期的相互转换
java中使用SimpleDateFormat实现字符串和日期的相互转换 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateTool { /** * 字符串转换为日期 * @param string原创 2016-11-10 20:58:48 · 13990 阅读 · 0 评论 -
java中的注解
1)自定义注解: 1)定义注解: 语法:public @interface 注解名{} 举例: public @interface MyAnnotation{ String name() default "jack"; } 2)定义注解的属性: 语法: 类型 属性名(); 类型 属性名() default 默认值; 赋值: 说明原创 2017-08-28 22:12:17 · 465 阅读 · 0 评论 -
java中的Bean Validation
概念:java中的Bean Validation是一个数据验证的规范。 说明:Hibernate Validator是Bean Validation的一个具体实现。 举例:在springMVC中使用Hibernate Validator 1)maven依赖: <dependency> <groupId>javax.validation</group...原创 2017-09-01 21:44:11 · 973 阅读 · 0 评论 -
final、finalize、finally
final: 概念:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 说明:final声明的成员变量,必须在声明的同时赋值;final 声明的局部变量和普通的局部变量一样,可以在声明的同时不赋初值,但是在使用前必须赋值。 finalize(): 概念:是Object类的一个方法,在GC的时候会调用被回收对象的此方法。 说明:可以覆盖此方法提供垃圾收集时的其他资源原创 2015-03-01 20:43:37 · 708 阅读 · 0 评论 -
java8的新特性
Java语言的新特性 1)Lambda表达式 概念:java8中增加了一个新的语法--Lambda表达式,并且引入了一个新的操作符(Lambda操作符): -> Lambda操作符 -> : -> 将Lambda表达式分为两个部分: 左侧:指定了Lambda表达式需要的参数,参数的数据类型可以由编译器的“类型推断”机制推断得出,故可以省略。 右侧:指原创 2017-11-08 23:26:14 · 442 阅读 · 0 评论 -
java中的序列化
关于继承 1,如果不想让配置文件中的bean创建对象,则把bean的abstract属性设为true即可 2,如果想让一个子类拥有父类的属性,则需要指定bean的parent属性原创 2015-09-23 16:17:11 · 1194 阅读 · 0 评论 -
Java远程调试
Java 远程调试: 概念: JPDA(Java Platform Debugger Architecture)是Java平台调试体系结构的缩写,通过JPDA提供的API,开发人员可以方便灵活的搭建Java调试应用程序。 JPDA 主要由三个部分组成:Java虚拟机工具接口(JVMTI),Java调试线协议(JDWP),以及Java调试接口(JDI) 实战: 第一步:让服务器支持远程...原创 2019-05-04 22:39:58 · 1484 阅读 · 0 评论 -
java.lang.Enum 枚举类型
枚举的使用: since 1.5 case1:定义常量 public enum Color { RED, YELLOW, GREEN, BLUE; } 说明:枚举的实例序列是用【逗号】隔开的;如果没有定义属性和方法,则实例序列最后的分号可以省略。 case2:switch语句 public enum Color { RED, YEL原创 2014-01-15 19:51:38 · 1213 阅读 · 0 评论 -
ThreadLocal - 基础
【代码】ThreadLocal - 基础。原创 2020-03-05 21:34:20 · 814 阅读 · 0 评论 -
Interface
说明: 接口的定义:(1)接口中的成员变量都是 public 、static 、final 的常量。 在接口定义属性时,不管是否使用了 public static final 修饰符,其结果都是一样的,因为系统会自动增加这些修饰符。 (也就是说,public、static、final 都可以省略;注意:但必须有返回类型!无论是否在接口中,所有的方法都必须有返回类型!!!)原创 2013-12-06 10:42:59 · 1171 阅读 · 0 评论 -
java中的位运算符
java中的位运算符: 带符号右移位运算符:>> 举例:capacity >> n 表示capacity除以2的n次方。 说明:若值为正,则在高位补0;若值为负,则在高位补1。 无符号右移位运算符:>>> 举例:capacity >>> n 表示capacity除以2的n次方。 说明:无论值为正负,都在高位补0。...原创 2014-01-17 10:07:54 · 942 阅读 · 0 评论 -
java中的 i++ 与 C中的 i++ 的区别
C语言中: ++ 是一元运算符:+ 与 = 都是二元运算符 对于一元操作符来说,其返回值为:i++为i的值,++i是i加一后的值 i++ 操作意味着 在二元操作符对应的指令生成之后再生成一个自增指令(即:在 “+” 和 “=” 运算都结束后,才自增)。 ++i 操作意味着 在二元操作符对应的指令生成之前生成一个自增指令(即:在 “+” 和 “=” 运算执行前,就已经自增了)。原创 2014-11-22 11:13:42 · 1445 阅读 · 1 评论 -
Java中的异常
异常: Throwable(java.lang.Throwable) Error 通常指JVM出现重大问题如:运行的类不存在或者内存溢出等。 不需要编写针对代码对其处理,程序无法处理。 Exception 在运行时运行出现的一些情况,可以通过try,catch,finally处理 Throwable中的方法 String getMessage() 获取异常信息,返回字符原创 2015-10-04 12:58:14 · 494 阅读 · 0 评论 -
java中的正则表达式
java doc中: . 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \D 非数字: [^0-9] \s 空白字符:[ \t\n\x0B\f\r] \S 非空白字符:[^\s] \w 单词字符:[a-zA-Z_0-9] \W 非单词字符:[^\w] 故 ===> ([\s\S]*) 表示所有字符 ([\d\D]*) 表示所有字符 ...原创 2015-10-04 13:03:00 · 438 阅读 · 0 评论 -
java泛型
1.Java泛型的实现方法:类型擦除 大家都知道,Java的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦掉,正确理解泛型概念的首要前提是理解类型擦除。Java的泛型基本上都是在编译器这个层次上实现的,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程成为类型擦除。 如在代码中定义List<Object>和List<String>等类型,在编译后都会变成List,JVM看到的只是List,而由泛型附加的类型转载 2014-09-27 18:15:47 · 1066 阅读 · 0 评论 -
Reflection 反射
【概述】所谓的反射,可以理解为在运行时获取对象类型信息的操作。java.lang.Class 类是 Java 反射的起源,针对任何一个想要探测的类,只有先为它产生一个 Class 对象,才能通过 Class 对象获取其他想要的信息。Java 程序在运行时,系统会对所有的对象进行所谓的运行时类型标识,用来保存这些类型信息的类就是 Class 类。Class 类封装一个对象或接口运行时的状态。原创 2014-06-13 23:00:56 · 1239 阅读 · 0 评论 -
System.getProperty("属性名")方法的使用
说明:可以通过System.getProperty("属性名")方法获得下面这些列表中的值: 举例:System.out.println(System.getProperty("os.name")); --> Windows 7 属性列表: java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.原创 2017-04-01 18:00:11 · 4169 阅读 · 0 评论 -
java中内部类的实例化
/** * 内部类的实例化 */ public class OuterClass { class InnerClassA { } static class InnerClassB { } // 若内部类声明为public,则其它包中的类可以访问该内部类 public class InnerClassC { } public static cla...原创 2017-05-24 19:03:31 · 963 阅读 · 0 评论