javaSE
Ascend2015
这个作者很懒,什么都没留下…
展开
-
正则表达式替换Nth个匹配项
正则表达式提取第N个匹配项原创 2022-11-03 17:19:11 · 247 阅读 · 0 评论 -
深入理解ThreadLocal
Struts2的笔记中,在学习关于调用ServletAPI的过程中,我们接触到关于如何获取ActionContext对象,它是通过ThreadLocal设定一个为线程所独享的对象。关于ThreadLocal,我有所疑惑,所以单独列出来探索一下。ThreadLocal的介绍ThreadLocal在java.lang包下,译为线程局部变量,它并不是为了解决多线程共享变量而存在的,而是为每个线程创建一个独原创 2017-09-11 17:05:38 · 460 阅读 · 0 评论 -
Java反射机制
讲道理其实这个并不是很难的东西,之前学的时候也不觉得难,但是学完之后也并没有觉得有什么卵用,毕竟当你使用框架的时候,核心的东西都是别人实现好的,没错,就是指例如Struts2中的各种invoke方法。但是直到我在Spring中看到动态代理,我觉得还是有必要把它拎出来,复习一下。简介根据百科的定义,所谓java反射,是指Java程序在运行过程中,对于任意一个类,依然能够获取其方法、属性;对于任意一个对原创 2017-09-29 20:49:05 · 231 阅读 · 0 评论 -
Java动态代理
所谓动态代理,就是在程序运行时生成代理类,而无需像静态代理那样一个个得编写代理类,动态代理的实现方式比较多:有java代理、CGlib代理、ASM库等等。依次了解一下。Java动态代理InvocationHandler接口Java动态代理需要代理类实现InvocationHandler接口,当我们通过代理类调用一个方法时,这个方法就会被转发给代理类的invoke方法来调用,InvocationHan原创 2017-09-30 22:34:26 · 292 阅读 · 0 评论 -
JDK原装动态代理
JDK的动态代理类是指这样一种class,它是在运行时产生的class,在生成它时,你需要给它们提供一组接口,然后该class宣称它实现了这些接口。也因此你可以将该class的实例当做这些接口的任意实例来使用。当然这些动态代理类本质上还是Proxy,你需要为它指定InvocationHandler,由handler来接管实际的调用。在使用动态代理类时,我们为其实现handler。impor原创 2018-01-14 11:43:37 · 185 阅读 · 0 评论 -
动态代理——CGlib动态代理
CGlib简介Code Generation Library的简称,一个开源项目,一个强大、高性能、高质量代码生成类库。可以在运行期扩展和增强Java类。Hibernate用它来实现持久对象的字节码动态生成,Spring用它来实现AOP编程。CGlib动态代理的实现为什么用CGlib因为jdk动态代理的实现必须要求代理类和目标类实现相同的接口,而一个类没有实现接口的类,就显原创 2018-01-14 20:10:53 · 300 阅读 · 0 评论 -
Java线程池的使用(2)
回顾上一篇中我们主要介绍了ThreadPoolExecutor的继承关系以及它的核心方法execute(),我们知道它的顶层接口是Executor——线程执行的工具,真正的线程池接口是ExecutorService。ThreadPoolExecutor 直接继承自抽象类AbstractExecutorService,由AbstractExecutorService 实现ExecutorServ...原创 2018-05-19 20:53:09 · 193 阅读 · 0 评论 -
Java反射机制
1. 简介Java反射机制是让我们能够在运行期访问和调用类、接口的属性、方法的机制,它通过将上述的类、接口、属性、方法映射成一个个对象来实现,所以,简言之,Java反射机制是使我们能够像操作对象一样来操作上述目标的一种机制。 Java语言的反射机制是强大而实用的,例如,大名鼎鼎的Spring中的IOC底层实现原理就是Java反射机制,由Spring容器创建实例,通过解析xml文件中的id和c...原创 2018-06-02 20:55:55 · 211 阅读 · 0 评论 -
Java线程池的使用(3)
前言上一章其实是介绍了ThreadPoolExecutor中的addWorker()方法,解析该方法我们了解了ThreadPoolExecutor添加新任务的一整套流程:判断线程池是否处于Running状态,因为SHUTDOWN下的线程池是不能添加任务的,而后更新线程池内的线程数并于corePoolSize比较,接着才能添加任务。Worker是实现了Runnable接口的。execut...原创 2018-05-31 19:10:40 · 201 阅读 · 0 评论 -
Java类的生命周期
1. Java虚拟机和程序的生命周期当通过java命令运行一个Java程序时,就启动了一个Java虚拟机进程。Java虚拟机进程从启动到终止时,称为Java虚拟机的生命周期。在以下情况下,Java虚拟机将结束生命周期:程序正常结束。程序在执行中因为出现异常或者错误而异常终止。执行了System.exit()。由于操作系统出现错误而导致Java虚拟机进程终止。 Java程序从开始运原创 2017-09-01 23:58:39 · 313 阅读 · 0 评论 -
Hibernate(3)——一对多映射关系
本篇为慕课网hibernate课程笔记。数据库中,可以通过添加外键的方式实现一对多的关系。Java程序中则可以通过集合的方式实现。举例:一个班级可以有多个学生,这就是一个一对多的关系,那么在一个学生表中,就可以将“班级”这个字段设置为外键。CREATE TABLE grade( gid INT PRIMARY KEY , gname VARCHAR(20) NOT NULL原创 2017-08-31 00:12:46 · 229 阅读 · 0 评论 -
java线程池的使用(1)
简介java翻译 2017-06-17 11:52:27 · 341 阅读 · 0 评论 -
java多线程笔记(1)
1.Java线程的生命周期和基本状态关于Java线程的生命周期,有这样一张图可以作为参考 该图基本描绘了Java线程的生存周期。 主要包括五种基本状态: - 新建状态(New):当新建线程创建后,就进入了新建状态,比如Thread t=new Thread(); - 就绪状态(Runnable):线程的start()方法被调用时,线程即进入了就绪状态,进入了可运行线程池。进入了就绪状态的原创 2017-06-18 20:15:57 · 281 阅读 · 0 评论 -
Java注解学习笔记——自定义注解
学习自定义注解之前,我们有必要了解一下java为我们所提供的元注解以及定义注解的相关语法。java为我们提供的元注解一共有4个:1.@Target2.@Retention3.@Documented4.@Inherited这些注解类型可以在java.lang.annotation下找到。下面是介绍1.@Target说明Annotation所修饰的对象的范围,有以下几个原创 2016-10-22 15:16:18 · 387 阅读 · 0 评论 -
java关键字的补充
保留字goto保留字,但是没有任何作用,结构化程序设计不需要goto语句就能够完成各种流程,而goto的出现可能会导致程序可读性的降低,因而,不允许出现const类型修饰符,使用该修饰符修饰的类型不能进行更新。nativejava不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java原创 2016-11-23 20:52:43 · 313 阅读 · 0 评论 -
深入理解JVM
深入理解JVM1.Java代码编译和执行的整个过程Java代码编译和执行的整个过程包含了以下三个重要的机制Java 源码编译机制类加载机制类执行机制Java源码编译机制Java源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成class文件class文件的组成:结构信息。包括 class 文件格式版本号及各部分的数量与大小的信息。元数据。对应于 Java 源码中转载 2017-06-07 20:43:45 · 238 阅读 · 0 评论 -
深入理解JVM(2)——内存区域与内存溢出
内存区域JVM在执行java程序的过程中会将内存分为几个不同的数据区域。java虚拟机规范将JVM所管理的内存区域分为这样几个运行时数据区。线程共享内存区java堆方法区线程私有内存区程序计数器虚拟机栈本地方法栈 程序计数器一块较小的内存空间,它是当前线程所执行的字节码的行号指示器,字节码解释器工作时通过改变该计数器的值来选择下一条需要执行的字节码指令,分支、跳转、循环等基础功能都要依赖转载 2017-06-09 15:32:00 · 326 阅读 · 0 评论 -
java多线程笔记(2)——关于synchronized关键字一些注意事项
synchronized关键字的作用域有两种:一、在某个对象的实例内,synchronized对实例方法的作用,它可以防止多个线程同时访问同一对象的synchronized方法; 二、类的static方法上进行修饰,可以防止多个线程访问这个类的同步静态方法。同步代码块中的做用对象应当是当前实例对象。 synchronized关键字不能继承,也就是说,如果基类的某个方法被synchronized所原创 2017-08-21 23:23:33 · 324 阅读 · 0 评论 -
慕课网Hibernate错误记录
org.hibernate.MappingException: Unknown entity原创 2017-08-30 01:09:45 · 239 阅读 · 0 评论 -
并发性和多线程(1)
同步块同步关键字synchronizedjava中的同步代码块用synchronized标记,同步在某个对象上。对象上的同步块只能被一个线程进入并进行操作,其它线程等待,进入阻塞状态。直到进入同步块的线程退出。java中有四种不同的同步块: 1. 实例方法; 2. 静态方法; 3. 实例方法中的同步块; 4. 静态方法中的同步块。实例方法同步public synchronized void原创 2017-06-16 11:06:38 · 331 阅读 · 0 评论