![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
码虫码农
这个作者很懒,什么都没留下…
展开
-
两种动态代理方式及其区别(代理模式)
什么是动态代理?假如我有一个user对象,该对象里面有4个方法,增、删、改、查,外界能直接调用这4个方法吗?拿百度来说,你能随便对百度上的内容进行增、删、改、查操作吗?你最多能执行查的操作,增、删、改的操作是不能执行的,你必须要加一个权限操作,应该看看你是否有权限执行这个操作。同理,谁操作了这个东西,你需要给我留下记录,免得我不知道是谁做的。所以,我应该在每一个方法的前面加权限校验,在每一个方法的后面加日志记录。该怎么做呢?有人说,很简单,直接在user对象的实现类里面去改,在增、删、改查前面加转载 2020-07-05 22:09:29 · 1311 阅读 · 0 评论 -
抽象类(abstract class)和接口(interface)有什么异同?
相同点:(1)不能直接实例化。如果要实例化,抽象类变量必须实现所有抽象方法,接口变量必须实现所有接口未实现的方法。(2)都可以有实现方法(Java8 以前的接口不能有实现方法)。* @since 1.8 */ default void replaceAll(UnaryOperator<E> operator) { Objects.requireNonNull(operator); final ListIterator<E>原创 2020-07-04 13:14:02 · 1496 阅读 · 0 评论 -
String 一些理解
先上点题吧 String str1 = "计算机"; String str2 = "计算机"; System.out.println("str1==str2:" + (str1 == str2)); String str3 = new String("计算机"); System.out.println("str1...原创 2020-03-23 18:32:50 · 320 阅读 · 0 评论 -
多线程之间通讯学习笔记
wait、notify方法1.因为涉及到对象锁,他们必须都放在synchronized中来使用.Wait、Notify一定要在synchronized里面进行使用。2.Wait必须暂定当前正在执行的线程,并释放资源锁,让其他线程可以有机会运行3. notify/notifyall: 唤醒因锁池中的线程,使之运行wait与sleep区别对于sleep()方法,我们首...原创 2020-01-06 21:40:34 · 96 阅读 · 0 评论 -
多线程安全和内存模型
同步方法使用的是什么锁?synchronized 修饰方法使用锁是当前this锁。synchronized 修饰静态方法使用锁是当前类的字节码文件Threadlocal什么是ThreadlocalThreadLocal提高一个线程的局部变量,访问某个线程拥有自己局部变量。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本...原创 2020-01-05 23:48:22 · 210 阅读 · 0 评论 -
多线程基础学习笔记
多线程应用场景?答:主要能体现到多线程提高程序效率。举例: 迅雷多线程下载、数据库连接池、分批发送短信,图片上传等。启动线程是使用调用start方法还是run方法?开始执行线程 注意 开启线程不是调用run方法,而是start方法多线程运行状态线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。新建状...原创 2020-01-05 19:58:37 · 94 阅读 · 0 评论 -
String,StringBuffer,StringBuilder有什么区别
1 String (1) String的创建机理 由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池。其运行机制是:创建一个字符串时,首先检查池中是否有值相同的字符串对 象,如果有则不需要创建直接从池中刚查找到的对象引用;如果没有则新建字符串对象,返回对象引用,并且将新创建的对象放入池中。但是,通过new方法创建的S...原创 2019-12-30 21:26:38 · 121 阅读 · 0 评论 -
强引用、软引用、弱引用、幻象引用有什么区别?
1 强引用 特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运 行时错误(OOM),使程序异常终止,也不会靠随意回收具有强引用的“存活”对象来解决内存不足的问题。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用...原创 2019-12-30 20:28:30 · 105 阅读 · 0 评论 -
谈谈fnal、fnally、 fnalize有什么不同?
final可以用来修饰类、方法、变量,分别有不同的意义,final修饰的class代表不可以继承扩展,final的变量是不可以修改的,final的方法也是不可以重写的(override)。fnally则是Java保证重点代码一定要被执行的一种机制。我们可以使用try-fnally或者try-catch-fnally来进行类似关闭JDBC连接、保证unlock锁等动作。fnalize是基础...转载 2019-12-29 23:46:24 · 610 阅读 · 0 评论 -
Exception和Error 区别
Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。 Exception和Error体现了Java平台设计者对不同异常情况的分类。Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。 Error是指在正常情况下,不大可...原创 2019-12-28 22:09:07 · 130 阅读 · 0 评论 -
Java解释执行和编译执行
首先,我们先解释一下在Java中解释执行和编译执行的区别。 解释执行:将编译好的字节码一行一行地翻译为机器码执行。编译执行:以方法为单位,将字节码一次性翻译为机器码后执行。 在编译示时期,我们通过将源代码编译成.class ,配合JVM这种跨平台的抽象,屏蔽了底层计算机操作系统和硬件的区别,实现了“一次编译,到处运行” 。 而在运行时期,目前主流的JVM 都是混合模式(-X...原创 2019-12-28 22:09:21 · 183 阅读 · 0 评论