跳到正文
//

多线程

18 篇

Java面试基础知识--重点

1.面向对象的三大特性继承、封装、多态什么是继承?①继承是面向对象程序设计能够提高软件开发效率的重要原因之一。②继承是具有传递性的,就像现实中孙子不仅长得像爸爸而且还像他爷爷。③继承来的属性和方法是隐式的,也就是在本类里面是看不见的。④一个类只能有一个父类,也就是类只能是单继承。⑤一个接口可以有多个父类,也就是接口可以是多继承。实际项目开发中,一个类继承于另一个类,那么前者就是后者的子类,反则反之。什么是封装?对象数据和操作该对象的指令都是对象自身的一部分,能够实现尽可能对外部隐藏数据。实际项目

杂谈 1387

Java后端程序员1年工作经验总结

1.引言  毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西。这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护和发布当救火队员的苦恼。遂决定梳理一下自己所学的东西,为大家分享一下。   经过一年意识到以前也有很多认识误区,比如:   偏爱收集,经常收集各种资料视频塞满一个个硬盘,然后心满意足的看着容量不行动。   不重基础,总觉得很多基础东西不需要再看了,其实不懂的地方很多,计算机程序方面任何一

杂谈 1656

Java精选笔试题

合抱之木,生于毫末;九层之台,起于垒土;千里之行;始于足下。赶快测测你的Java基础知识掌握的如何?1,volatile关键字是否能保证线程安全?()>>>>答案:否volatile关键字用在多线程同步中,可保证读取的可见性,JVM只是保证从主内存加载到线程工作内存的值是最新的读取值,而非cache中。但多个线程对volatile的写操作,无法保证线程安全。假如线程1,线程2 在进行read,load 操作中,发现主内存中count的值都是5,那么都会加载这个最新的值,在

Java 1769

Java小技巧,从运行、控制到框架

1. JVM相关JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证java开发能力的高低。在JVM这个大类中,我认为需要掌握的知识有:JVM内存模型和结构GC原理,性能调优调优:Thread Dump, 分析内存结构class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程

Java 1752

Java小技巧,从运行、控制到框架

1. JVM相关JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透。我在面试有超过3年Java经验的开发者的时候, JVM几乎就是一个必问的问题了。当然JVM不是唯一决定技术能力好坏的面试问题,但是可以佐证java开发能力的高低。在JVM这个大类中,我认为需要掌握的知识有:JVM内存模型和结构GC原理,性能调优调优:Thread Dump, 分析内存结构class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程

杂谈 1297

java多线程高级教程,这些你都懂了吗?

一、countdownLatch和cyclicbarrier(这两个做多线程控制很好用,工作中会经常用到)countdownLatch:主线程阻塞,当多个线程countdown到0,主线程执行;cyclicbarrier:多个线程等待,当都处于等待状态了一起执行(类似于赛跑机制)countdownLatchcyclicbarrier二、volatile和threadlocal这两个也要很好掌握,不仅常用,而且面试时候也经常问到!volatile:使属性可见性。有个属性是共享属性,这个关键字会在每

Java 1887

Java入门学习进阶知识点汇总

入门阶段,主要是培养Java语言的编程思想。了解Java语言的语法,书写规范等,掌握Eclipse、MyEclipse等开发工具,编写Java代码的能力。学完这个阶段你应该可进行小型应用程序开发并且可以对数据库进行基本的增删改查管理。注意:此阶段知识点的学习,需要真实的项目进行驱动学习,让你轻松理解各知识点。 1 计算机基础知识 针对零基础学习的人,从对计算机操作等知识的了解,延伸到Java语言的发展与开发工具的使用上。主要是了解怎样执行计算机命令,认识Java这门语言,感受

Java 1523

深入解析Java垃圾回收机制

引入垃圾回收 哪些内存需要回收? 引用计数法 可达性分析 如何回收 Marking 标记 Normal Deletion 清除 Deletion with Compacting 压缩 为什么需要分代收集? JVM的分代 新生代 老年代 永久代 分代垃圾收集过程详述 引入垃圾回收JAVA程序计数器、 虚拟机栈、 本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。 每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的(尽管在运行期会由JI

Java 1805

服务端 I/O 性能大比拼:Node、PHP、Java 和 Go

理解应用程序的输入/输出(I/O)模型,意味着其在计划处理负载与残酷的实际使用场景之间的差异。若应用程序比较小,也没有服务于很高的负载,也许它影响甚微。但随着应用程序的负载逐渐上涨,采用错误的I/O模型有可能会让你到处踩坑,伤痕累累。正如大部分存在多种解决途径的场景一样,重点不在于哪一种途径更好,而是在于理解如何进行权衡。让我们来参观下I/O的景观,看下可以从中窃取点什么。在这篇文章,我们将会结合Apache分别比较Node,Java,Go,和PHP,讨论这些不同的语言如何对他们的I/O进行建模

杂谈 1451

死磕 Java 并发 :Java 内存模型之 happens-before

那么我们正确使用同步、锁的情况下,线程A修改了变量a何时对线程B可见?我们无法就所有场景来规定某个线程修改的变量何时对其他线程可见,但是我们可以指定某些规则,这规则就是happens-before,从JDK 5 开始,JMM就使用happens-before的概念来阐述多线程之间的内存可见性。在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须存在happens-before关系。happens-before原则非常重要,它是判断数据是否存在竞争、线程是否安全的主要依据

Java 1511