java
文章平均质量分 52
Pirate@f
天下事以难而废者十之一,以惰而废之者十之九
展开
-
2021-01-21
函数式接口的思考接口和抽象类的区别还在吗?抽象类还有意义吗? 接口中可以有抽象方法,默认方法,静态反方法;抽象类中可以有抽象方法,实例方法,静态方法。 接口中的属性是 public static final 的;抽象类中的属性则不是。 接口中的方法只能是public的,抽象了则不是 接口可以多实现,抽象类只能单继承 再看看JDK中对于抽象类和接口的应用,抽象类往往是实现接口中一些通用的方法,而子类只需要集成抽象类,实现个性化的方法即可。总而言之,接口定义了子类的行原创 2021-01-21 09:09:53 · 112 阅读 · 0 评论 -
2021-01-21
JDK8-2常见函数式接口JDK提供的常见函数式接口 Function 接受一个参数,产生一个返回值(代表一个函数)@FunctionalInterfacepublicinterfaceFunction<T,R>{//函数式方法Rapply(Tt);//组合函数,针对输入参数首先应用before函数,然后应用当前函数,如果对任一函数求值时抛出异常,异常会被传递到调用者default<V>Function<V,...原创 2021-01-21 09:09:04 · 103 阅读 · 0 评论 -
2021-01-21
JDK8-1 函数式接口的定义JDK8 历史渊源这是第一篇写 JDK8 的内容,先聊聊 JDK8 的历史渊源吧。2014 年 3 月 18 日,JDK8 的第一个正式版发布了,时间上虽比原定的 2013 年 9 月稍晚了一些,但是功能上还是值得肯定的,主要包括: JEP 126:对 Lambda 表达式的支持,让 Java 语言拥有了函数式表达的能力。 JEP 104:内置 Nashorn JavaScript 引擎的支持。 JEP 150:新的时间、日期 API。原创 2021-01-21 09:08:25 · 105 阅读 · 0 评论 -
进程通讯-Condition
进程之间通讯-Condition await/signal/signalAllawait(): 调用await方法的线程释放当前的lock,当前线程处于等待状态。类似于synchronized的wait()方法。signal(): 调用signal方法使得当前condition的wait线程处于唤醒状态。 类似于synchronized的notify()方法,如果存在多个wait线程,signal()方法可以指定唤醒某个线程,notify()只能随机唤醒一个。signalAll(): 调用sig原创 2020-10-20 22:37:40 · 172 阅读 · 0 评论 -
volatile的语义与实践
volatile是JVM虚拟机提供的最轻量级的同步机制,如果能恰当的使用volatile的话,它比synchronized的执行成本更低,因为它不会引起上下文的切换和调度。 Java语言规范第三版中对volatile的定义如下:Java语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排它锁单独获取这个变量。Java语言提供了volatile,在某些情况下比锁要更加方便。如果一个字段被声明为volatile,Java线程内存模型确保所有线程看到这个变量的值是一致的。...原创 2020-10-20 19:22:32 · 185 阅读 · 0 评论 -
源码分析-ThreadLocal
ThreadLocal 始于JDK1.2,提供了一个操作线程对象变量(ThreadLocal.ThreadLocalMap)的方法,进而达到线程安全和数据与线程绑定的目的。使用示例:import org.junit.Test;import java.util.concurrent.TimeUnit;/** * ThreadLocal类使用测试 */public class ThreadLocalTest { public ThreadLocal<Integer&g.原创 2020-05-28 22:36:42 · 143 阅读 · 0 评论 -
进程通讯-join
join:线程加塞。官方释义:Waits for this thread to die.(等待当前线程死掉)join()方法是java.lang.Thread类的成员方法,因此只有Thread的实例可以调用。join的用法实例:/** * Thread的join()线程加塞方法测试 */public class Join { @Test public void test(){ Thread joinThread = new Thread(..原创 2020-05-28 21:15:34 · 282 阅读 · 0 评论 -
进程通讯-wait notify
进程通讯之wait/notifywait():调用wait方法的线程释放当前的锁,并使当前线程处于等待状态。notify():使用notify方法,使得用notify调用者对象作为Monitor的wait线程随机一个被唤醒。notifyAll(): 使得用notifyAll()调用者对象作为Monitor的wait线程都被唤醒。tip: 1. notifyAll()不是唤醒所有处于wait状态的线程,而是只唤醒使用当前调用notifyAll()对象作为Monitor的wait线程。.原创 2020-05-25 23:09:26 · 227 阅读 · 0 评论 -
Java连接mysql时区问题
ErrorCode=0 SQLState=01S00 The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone ...原创 2019-05-23 10:45:12 · 4890 阅读 · 0 评论 -
简单谈谈Java语言中String类的final作用
什么每个程序员避免不了操作字符串的废话我就不多说了,直接开始正题:Java中String类多处使用final关键字,为什么?String类的定义如下: public final class String implements java.io.Serializable, Comparable<String>, CharSequence {} 四个地方值得注意:1....原创 2019-04-07 00:26:29 · 310 阅读 · 0 评论 -
我要如何再去相信mybatis?
我之所以写这篇文章,只是为了表达三个字mmp,不是我没素质,只是坑实在太深(如果是我脑洞太浅,还望各位大牛留言多多指导)。从今天下午的问题说起吧!问题1:测试完全通过,等到发版的时候,线上产生了bug! 是测试不够专业?我觉得并不是,只能说测试库太脏。导致测试怀疑我发到线上的和测试环境的不是同一版本的代码,纳尼?ci直接deploy的同一个release,我都没敢二次build,,...原创 2018-08-02 21:56:08 · 181 阅读 · 0 评论 -
JVM产生以及引用一个对象
JVM如何产生一个对象? 程序员视角:new clone 反序列化 都可以生成一个对象在内存中。(JVM的给我们带来的方便,两个字:伟大) JVM视角:(大约需要以下5步骤) 1. (验证类加载)检查创建对象的指令参数,能否在常量池中定位到一个类符号的引用(Class信息存放在方法区中,常量池也是方法区的一部分)。并且检查...原创 2018-06-13 11:11:58 · 308 阅读 · 0 评论 -
JVM中的OOM异常(out of memory)
A.可能抛出oom异常的内存: 1.jvm运行时所管理的内存:除了程序计数器之外的内存(堆,方法区,虚拟机栈,本地方法栈)都有可能抛出oom异常。 当然栈中有可能会抛出OOM异常也可能会抛出stack overflow Error。当请求的深度大于栈所允许的最大的深度,则抛出stack overflow error ,当栈的容量扩充,分配不到空间时抛出OOM. 2...原创 2018-06-13 09:13:28 · 1600 阅读 · 0 评论 -
Java元注解(Annotation)及注解的解析处理器(AbstractProcessor)
元注解就是注解的注解。java中的四个元注解:@Retention,@Target,@Documented,@Inherited.四个元注解的含义:@Retention 注解的保留策略(该注解在代码中的声明周期)。(值为RetentionPolicy的枚举类型:RESOURCE@Target 注解的作用目标(该注解能应用的位置)。( 值为ElementType[ ]数组类型:@原创 2018-06-06 08:58:01 · 2642 阅读 · 0 评论 -
Java中的System.currentTimeMillis()和System.nanoTime()的区别
Java提供了两个获取时间的重要方法: 1. long System.currentTimeMillis(); 2. long System.nanoTime();currentTimeMillis()方法的精度是毫秒 milliseconds 可以异步机器同步 nanoTime() 方法的精度是纳秒 不能垮机器使用1 毫秒 = 1000000 纳秒cu...原创 2018-05-11 11:41:56 · 1484 阅读 · 0 评论