首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    干货 | 聊聊java并发(上)

    ,在Java中我们通过Thread类去抽象每个线程个体。...在Java中通过使用volatile关键字、Lock、synchronized关键字、原子类等手段来完成同步(以及通信,线程间通信与同步关系密切),以解决因为同步产生的竞争状态。...3.JMM JMM(Java memory model,通常说的是在JSR133中确定的JMM )定义了什么样的行为在Java多线程中合法。...开头先对比了java并发技术的优劣以及挑战,然后从线程间通信与线程间同步这两个最本质的问题切入,详细描述了什么是线程间通信、什么是线程间同步,并因此引入了JMM这个模型概念。...最后,关于JMM中的语义细节,用底层的实现原理讲解了java语言层面的两个重要关键字volatile、synchronized。

    53320

    干货系列之java注解

    干货系列之java注解 前言 java反射和注解在java里面很重要,但是很多人对这方面的知识理解不是很好,我来说说我自己对java反射和注解的理解,这两块内容本来应该出在一个博客文章里面讲解,但是由于我的...java反射说的内容有点小多,然后我就分开将讲解一下。...目录 注解的概念 注解的类别 注解用法 通过反射获取注解 反射注解一起使用拼写SQL语句实战演练 注解的概念 java注解: 比较官方的说法: 从JDK5开始,Java增加对元数据的支持,也就是注解,...注解的类别 java语言提供的注解 元注解 其他注解 java语言提供的注解 1.Override 学过java你就知道,你肯定见过这种 @Override public Object clone(...) throws CloneNotSupportedException {} 没错,@Override就是一个java提供的注解。

    33140

    干货 | 聊聊java并发(上)

    ,在Java中我们通过Thread类去抽象每个线程个体。...在Java中通过使用volatile关键字、Lock、synchronized关键字、原子类等手段来完成同步(以及通信,线程间通信与同步关系密切),以解决因为同步产生的竞争状态。...3.JMM JMM(Java memory model,通常说的是在JSR133中确定的JMM )定义了什么样的行为在Java多线程中合法。...开头先对比了java并发技术的优劣以及挑战,然后从线程间通信与线程间同步这两个最本质的问题切入,详细描述了什么是线程间通信、什么是线程间同步,并因此引入了JMM这个模型概念。...最后,关于JMM中的语义细节,用底层的实现原理讲解了java语言层面的两个重要关键字volatile、synchronized。

    91550

    Java HashMap工作原理及实现(干货)

    Java 8之前的实现中是用链表解决冲突的,在产生碰撞的情况下,进行get时,两步的时间复杂度是O(1)+O(n)。因此,当碰撞很厉害的时候n很大,O(n)的速度显然是影响速度的。...因此在Java 8中,利用红黑树替换链表,这样复杂度就变成了O(1)+O(logn)了,这样在n很大的时候,能够比较理想的解决这个问题,在Java 8:HashMap的性能提升一文中有性能测试的结果。...如果发生碰撞的时候,Hashmap通过链表将产生碰撞冲突的元素组织起来,在Java 8中,如果一个bucket中碰撞冲突的元素超过某个限制(默认是8),则使用红黑树来替换链表,从而提高速度。 3....关于Java集合的小抄中是这样描述的: 以Entry[]数组实现的哈希桶数组,用Key的哈希值取模桶数组的大小可得到数组下标。...iterator()时顺着哈希桶数组来遍历,看起来是个乱序 参考资料 HashMap的工作原理 Java 8:HashMap的性能提升 JEP 180: Handle Frequent HashMap

    1.4K40

    Java面试题-基础篇三(干货

    这些JAVA基础题确定都会了吗?...38、简单说说Java中的异常处理机制的简单原理和应用。...异常是指java程序运行时(非编译)所发生的非正常情况或错误,与现实生活中的事件很相似,现实生活中的事件可以包含事件发生的时间、地点、人物、情节等信息,可以用一个对象来表示,Java使用面向对象的方式来处理异常...Java对异常进行了分类,不同类型的异常分别用不同的Java类表示,所有异常的根类为java.lang.Throwable,Throwable下面又派生了两个子类: Error和Exception...栈:在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java 会自动释放掉为该变量分配的内存空间

    48210

    干货 | 写好Java代码的30个技巧

    成为一个优秀的Java程序员,有着良好的代码编写习惯是必不可少的。下面就让我们来看看代码编写的30条建议吧。 (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。...Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。...对于域名扩展名称,如com,org,net或者edu等,全部都应小写(这也是Java 1.1和Java 1.2的区别之一)。...(24) 在Java 1.1 AWT中使用事件”适配器”时,特别容易碰到一个陷阱。若覆盖了某个适配器方法,同时拼写方法没有特别讲究,最后的结果就是新添加一个方法,而不是覆盖现成方法。...作者:JAVA柯尼塞克丶

    40311

    干货Java多线程详解(内附源码)

    一. java内存模型(JMM) 1.1 java内存模型(JMM)介绍 java内存模型决定一个线程对共享变量的写入何时对另一个线程可见。...这个的具体解释,大家请看《深入理解Java内存模型》里面关于happens-before规则的讲解。...其实就是java对象,在Java中,每一个对象都拥有一个锁标记(monitor),也称为监视器,多线程同时访问某个对象时,线程只有获取了该对象的锁才能访问。...4.6 线程优先级以及守护线程 在java中线程优先级范围是1~10,默认的优先级是5。 在java中线程分为用户线程和守护线程,isDaemon返回是true,表示它是守护线程。...当所有的用户线程执行完毕后,java虚拟机就会退出,不管是否还有守护线程未执行完毕。

    1.4K51

    干货】2016高薪Java面试题集锦

    很多小伙伴毕业在即,找工作和面试又被提上了日程,为了解决小伙伴们的燃眉之急,老九君特地为大家整理了一份最新的Java面试题集锦与答案,希望能给近期将要找工作的小伙伴带来帮助。...将会不定期的推送给大家面试题,不仅有Java、Android、其他的编程语言与岗位也会有哦! Switch能否用string做参数?...1、在 Java 7 之前, switch 只能支持byte,short,char,int 或者其对应的封装类以及 Enum 类型。在JAVA 7中,String 支持被加上了。...Hashcode的作用,与 equal 有什么区别 1、同样用于鉴定2个对象是否相等的,java集合中有 list 和 set 两类,其中 set不允许元素重复实现,那个这个不允许重复实现的方法,如果用...JAVA 中堆和栈的区别,说下java 的内存机制 1、基本数据类型比变量和对象的引用都是在栈分配的 2、堆内存用来存放由new创建的对象和数组 3、类变量(static修饰的变量),程序在一加载的时候就在堆中为类变量分配内存

    89680
    领券