Java
HHHheziyan
这个作者很懒,什么都没留下…
展开
-
搞定正则表达式
什么是正则表达式 正则表达式,又称规则表达式(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 开发中常见的正则表达式 匹配 IP 地址 ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5...原创 2019-11-20 14:26:32 · 388 阅读 · 0 评论 -
值传递和引用传递
在Java中所有的参数传递,不管基本类型还是引用类型,都是值传递,或者说是副本传递,没有引用传递。 只是在传递过程中: 如果是对基本数据类型的数据进行操作,由于原始内容和副本都是存储实际值,并且是在不同的栈区,因此形参的操作,不影响原始内容。 如果是对引用类型的数据进行操作,分两种情况,一种是形参和实参保持指向同一个对象地址,则形参的操作,会影响实参指向的对象的内容。一种是形参被改动指向新的...原创 2019-08-09 12:03:43 · 180 阅读 · 0 评论 -
throw和throws的主要区别
1.throw写在函数体内,throws写在函数定义语句中 2.throw是抛出一个异常对象,throws是有可能抛出的异常种类,所以throw后面的一般加上new 和exception名字();而throws后面不能加上new的 3.一个方法最多只能throw1个异常, 但是可以throws多个种类异常 因为一旦一个函数throw出1个异常, 这个函数就会被中断执行, 后面的代码被放弃, ...原创 2019-07-28 14:52:01 · 365 阅读 · 0 评论 -
synchronized和Lock的区别
synchronized和Lock都可以用来保持线程同步 区别: 1.首先synchronized是java内置关键字,在jvm层面,Lock是个java类; 2.synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁; 3.synchronized会自动释放锁(a线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放锁),Lock需在finally中手工...原创 2019-07-30 16:15:05 · 205 阅读 · 0 评论 -
堆
Java 中的堆是 JVM 管理的最大的一块内存空间,主要用于存放Java类的实例对象,其被划分为两个不同的区域:新生代 ( Young )和老年代 ( Old ),其中新生代 ( Young ) 又被划分为:Eden、From Survivor和To Survivor三个区域,如下图所示: 从JDK8开始...原创 2019-07-15 21:41:29 · 311 阅读 · 2 评论 -
TCP与UDP的区别
套接字(Socket) 为了方便开发网络应用程序,美国伯克利大学在Unix上实现的一种应用程序访问网络的通信协议Socket,Socket的出现使程序员可以很方便的访问TCP/IP。 TCP与UDP区别 一、TCP面向连接,发送数据前要先建立连接;UDP是无连接的,发送数据前不需要建立连接; 二、TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;...原创 2019-07-10 13:23:30 · 229 阅读 · 0 评论 -
自动装箱和自动拆箱
什么是自动装箱和自动拆箱 基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。自动装箱是java编译器在java原生类型和对应的对象包装类型上做的自动转换。例如,把int 装换成 Integer double转换成Double等等。如果是反过来转换,那么叫做自动拆箱,也是编译器为我们做的事情。 自动装箱 int ...原创 2019-07-09 21:39:24 · 324 阅读 · 0 评论 -
静态代理与动态代理以及区别
静态代理和动态代理: 一、静态代理在程序执行前需手动创建代理类,如果需要很多代理类,每一个都手动创建不仅浪费时间,而且可能产生大量重复性代码,此时我们就可以采用动态代理。 二、动态代理通过InvocationHandler接口invoke方法或MethodInterceptor接口intercept方法为被代理对象中的方法增加额外功能,这种方式比静态代理中通过代理类逐一为被代理对象中的方法增加...原创 2019-07-09 17:46:05 · 312 阅读 · 0 评论 -
使用CGLib实现动态代理
CGLib动态代理 程序执行时通过ASM(开源的Java字节码编辑库,操作字节码)jar包动态地为被代理类生成一个代理子类,通过该代理子类创建代理对象,由于存在继承关系,所以父类不能使用final修饰。CGLib动态代理实现 1、导入两个架包 package com.zzu.cglib; public class CalculatorService { p...原创 2019-07-09 17:35:47 · 374 阅读 · 0 评论 -
使用JDK实现动态代理
动态代理: 在程序运行期间JVM根据需要通过反射等机制动态地创建代理类及其代理对象,代理类是在程序运行期间创建的。 下面是实现运算器加减乘除的代码 package com.jd.calculator; public class CalculatorService implements ICalculatorService { @Override public ...原创 2019-07-09 12:04:08 · 209 阅读 · 0 评论 -
URL的常用方法以及用URL类获取一张图片
什么是URL java.net.URL 代表一个统一资源定位符,由协议、主机和端口号构成,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询。 URL常用的方法: 1. URLConnection openConnection():返回与资源定位符所代表资源相连接的URLConnection对象。 2. InputSt...原创 2019-03-26 10:28:47 · 1445 阅读 · 0 评论 -
ThreadLocal原理及使用方法
ThreadLocal原理: ThreadLocal是线程的局部变量,实现原理是Thread类中有一个ThreadLocalMap类的threadlocals变量,此变量是属于当前线程的,key为代码中声明的ThreadLocal变量,value为线程要保存的变量副本。 Threadlocal解决的不是线程间共享变量的问题,而是解决线程内全局变量的参数传递问题,即线程...原创 2019-07-07 19:43:19 · 288 阅读 · 0 评论 -
多线程实现的常用两种方式以及区别
第一种方法:继承java.lang.Thread类,重写run方法; class 类名 extends Thread{ //属性 public void run(){ //线程需要执行的核心代码 } //其他方法 } 例子: package com.kp.thread; public class ThreadTest extends Thread { @Override pub...原创 2019-03-25 16:39:28 · 1902 阅读 · 0 评论