- 浏览: 1507228 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (595)
- Java咖啡厅 (208)
- IT杂侃 (23)
- 程序员笑话 (7)
- 我的后现代文学 (1)
- WEB编程 (116)
- 软件评测 (8)
- 操作系统 (3)
- 炫目Ruby (2)
- 行业知识 (7)
- 我的动漫情结 (6)
- 其他 (8)
- Window DIY (6)
- 古文学 (3)
- 转载文章 (2)
- IT百科 (7)
- 动态网页Active (1)
- 文档 (1)
- 设计理论 (11)
- .NET 快速开发 (18)
- 英语学习 (6)
- 网站分析 (2)
- 开源软件 (4)
- 数据库 (28)
- 笔记 (4)
- 源代码共享 (8)
- IT人物 (2)
- 软件管理 (10)
- 小说创作 (0)
- 大众软件 (12)
- 网站评论 (3)
- 小虾乱说 (10)
- 游戏 (8)
- 心情 (3)
- 娱乐休闲 (2)
- Delphi编程 (1)
- PHP编程 (4)
- 中间件 (2)
- 移动开发 (2)
- Office应用 (2)
- Photoshop (1)
- Eclipse (5)
- 面试题 (1)
- 手机评测 (0)
- VBScript (1)
- WEB前端-EXT (3)
- 吐槽 (1)
- Java咖啡厅 Ibatis (1)
- javascript Ext (1)
- jquery ui (1)
- require (1)
- WEB编程 Javascript (1)
- jquery (1)
- Swing (1)
- 分布式 (1)
最新评论
-
zhangjihao:
28. 下面哪个Set是排序的? A. LinkedHas ...
Java面试题(选择题) -
zhangthe9:
ICMP报文被封装在IP包里,也就是说他是由IP协议承载的,从 ...
Java面试题(选择题) -
zhunengfei:
真的假的?
自已写的jquery ui框架 -
white_crucifix:
少年,发烫是所有智能手机的特点,而莫名发烫是所有安卓手机的特点 ...
【吐槽】三星手机的OS是一砣屎 -
suzu88:
试了一下,可以用。如果美化一下控件和窗体更有意思。
一个用XML构建Swing视图的框架
60 、 java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法 ? stop() 和 suspend() 方 法为何不推荐使用?
答: 有两种实现方法,分别是继承 Thread类与实现Runnable接口
用synchronized关键字修饰同步方法
反 对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果 很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此 时,其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就 会造成死锁。所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。若标志指出线程应该挂起,便用 wait()命其进入等待状态。若标志指出线程应当恢复,则用一个notify()重新启动线程。
61 、 sleep() 和 wait() 有什么区别 ?
答: sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。
62 、同步和异步有何异同,在什么情况下分别使用他们?举例说明。
答: 如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
63 、启动一个线程是用 run() 还是 start()?
答: 启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。
64 、当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法 ?
答: 不能,一个对象的一个synchronized方法只能由一个线程访问。
65 、请说出你所知道的线程同步的方法。
答: wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
66 、多线程有几种实现方法 , 都是什么 ? 同步有几种实现方法 , 都是什么 ?
答: 多线程有两种实现方法,分别是继承 Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
67 、线程的基本概念、线程的基本状态以及状态之间的关系
答: 线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身。
Java中的线程有四种状态分别是:运行、就绪、挂起、结束
68 、简述 synchronized 和 java.util.concurrent.locks.Lock 的异同 ?
答: 主要相同点: Lock能完成synchronized所实现的所有功能
主要不同点:Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放。
发表评论
-
原创程序- Web版数据库管理
2017-11-15 00:39 1177这是我自已写的Web版的数据库管理工具,主要是依赖于JDBC ... -
Eclipse创建Web项目
2017-07-29 10:53 7751. 打开创建Web项目的对话框 2 ... -
Ant常用的命令
2016-06-16 13:31 13481. 使用Ant生成War包: <war ... -
在Eclipse上使用Ant发布项目
2015-10-17 15:03 1370这里笔者使用是Eclip ... -
Resin中增加一个虚拟目录的方法
2015-09-13 12:53 1113打开resin.config 找到到<h ... -
一个用XML构建Swing视图的框架
2015-09-06 23:12 2600平常想用Java写一些 ... -
Eclipse常见问题
2015-08-24 19:41 738如果Eclipse被强制关闭时,Tomcat可能没有 ... -
Spring Tools Suite 入门教程
2015-05-09 09:15 0Spring Tools Suit,这里简称STS,是 ... -
使用FTP的方法
2015-03-01 17:49 9991. FlashFXP 收费的软件,但是比较好 ... -
关于Spring
2015-02-16 14:46 1998Spring是一个轻量级J2EE框架。 Sp ... -
用Java实现发送邮件到163
2014-12-28 14:50 3851/* 在java版经常看到有人问如何用javamai ... -
Hibernate入门
2014-12-27 01:34 925前言 使用面向对象的语言和关系型的数据库,开 ... -
修改date.toLocaleString()的警告
2014-10-15 11:31 2546我们在写程序的时候,经常要查看时间,所以我们经常会用到 ... -
Java基础题 -- 简述题
2014-04-26 13:44 726(1)简述Java的运行机制 答案:Java语言根 ... -
Java基础题 -- 填空题
2014-04-26 10:00 18851. ______是一个抽象的计算机,和实际的计算机一样, ... -
FreeMaker入门
2014-04-07 19:51 1010第一章 简介 1 什么是FreeMaker ... -
jdk8 新语法
2014-04-01 23:32 1279import java.util.*; public ... -
MyBatis 入门
2014-03-27 23:31 1721每个MyBatis的中心是SqlSessionFact ... -
Jetty入门
2014-02-26 23:48 1577Jetty是一个简易的WebServer框架,使用 ... -
用Swing做的H2管理器
2014-02-24 23:07 1566MainFrame 继承了 JFrame , 增加c ...
相关推荐
Java面试题整理集合 在Java领域,面试是评估求职者技术实力的重要环节。这份整理集合涵盖了Java编程语言的基础、进阶、并发、内存管理、框架等多个方面,旨在帮助准备面试的开发者全面了解并掌握Java的核心知识。...
这份“史上最全的Java面试题独家整理”无疑是准备Java面试者的宝贵资源。 面试题通常涵盖以下几个核心领域: 1. **基础语法**:包括变量、数据类型、运算符、流程控制语句(如if、switch、for、while)、类与对象...
本文将基于标题“Java面试题和练习题”以及描述中提到的内容,深入探讨Java相关的面试题和练习题,旨在帮助求职者或希望提升技能的开发者巩固知识,准备面试。 一、Java基础 1. Java的数据类型:了解Java的八种...
以上只是部分Java面试中常见的知识点,实际的“2021年Java大厂面试题整理大全”可能还包括设计模式、分布式、微服务、性能优化等方面的问题。通过深入学习和理解这些内容,可以有效提升面试成功的概率,为在Java大厂...
### Java基础面试题知识点解析 #### 一、面向对象的特征 面向对象编程(OOP)是Java编程的核心概念之一,其主要特征包括: - **封装**:将对象的状态信息(属性)隐藏在对象内部,仅对外提供有限的操作接口。封装提高...
Java 是一种广泛使用的...以上是Java面试中常见的知识点,深入理解和掌握这些内容将有助于你在面试中表现出色。同时,了解Spring框架的核心概念,如依赖注入和AOP,以及Ajax在Web交互中的应用,也会增加你的竞争力。
Java面试题涵盖广泛,从基础到进阶,再到算法、并发、中间件等方面,以下是根据题目内容整理出的知识点详解: 一、Java基础 1. Java的数据类型:包括基本数据类型(整型、浮点型、字符型、布尔型)和引用数据类型...
本文总结了《高级Java经典面试题2019》中关于并发编程、JVM和Spring框架等方面的重要知识点。通过深入理解这些概念和技术,可以帮助开发者更好地掌握Java核心技术,提高面试竞争力。希望本文能为读者提供有益的帮助...
Java面试题整理主要涵盖了许多Java编程的核心概念和实践问题,这些问题可以帮助面试者检验他们的技能和对Java语言的理解程度。以下是一些重点知识点的详细说明: 1. **面向对象**:这是Java的基础,包括封装、继承...
Java面试是检验开发者技术实力的重要环节,涵盖的领域广泛,包括基础知识、集合框架、多线程、JVM、设计模式、数据结构和网络/IO等。以下是对这些知识点的详细说明: 1. **基础篇** - **面向对象**:Java是一种...
本资料集合了多个面试题库,涵盖了Java的基础、进阶及热门技术,是准备Java面试的宝贵资源。 一、Java基础 1. Java语言特性:了解Java的面向对象特性,如封装、继承、多态,以及异常处理、垃圾回收机制等。 2. ...
Java面试题涵盖了许多核心概念,包括基础语法、JVM、线程、Spring框架以及MySQL数据库的相关知识。以下是对这些知识点的详细解释: 1. **接口与抽象类的区别**: - 接口是完全抽象的,只能包含方法签名,不能有...
为了帮助准备Java面试的求职者,以下是一份详细的2018年Java面试题及答案的概述,涵盖了基础到进阶的多个方面。 一、Java基础知识 1. Java的特性:Java具有跨平台性、面向对象、健壮性、安全性、高效性等特点。 2. ...
面试中,Java开发者需要对基础知识、容器、多线程、反射、对象拷贝、Java Web、异常处理、网络编程、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、消息中间件如RabbitMQ和Kafka、...
Java 面试题集是求职者在准备面试时的重要参考资料,涵盖了从基础知识到高级概念的各种问题。这篇摘要主要关注Java的基础部分,包括作用域、集合类的区别、字符编码、多线程实现及同步机制,以及内部类的创建。 1. ...
Java面试题涵盖了许多核心Java知识点,这些知识点对于理解和掌握Java编程语言至关重要。以下是根据题目内容整理的一些关键知识点: 1. **非静态方法调用**: - Java中,非静态方法需要对象实例才能调用。因此,...
### Java企业面试题知识点梳理 #### 一、Java面向对象基础 **1. super()与this()的区别** - **super()**: 是指父类构造器的引用,用于调用父类的构造方法或访问父类的成员。在子类构造器中使用 `super()` 可以调用...
张孝祥整理的JAVA面试题宝典,无疑为准备Java面试的求职者提供了一份宝贵的参考资料。下面,我们将深入探讨其中可能涉及的一些关键知识点。 1. **基础语法**:面试通常会从Java的基础开始,包括数据类型(原始与...
Java面试题涉及到的内容广泛,涵盖了语言基础、并发处理、内存管理、计算机网络等多个方面。以下是对这些知识点的详细解析: 1. **Java数据类型与JVM**: - Java中的`int`类型的长度是固定的32位,无论是在32位...
Java是世界上最流行的...提供的PDF文档,如"Java面试核心知识点整理"和"Java面试题2022最新版大合集",很可能会包含这些话题的详细解析和实例,是准备Java面试的宝贵资源。建议仔细研读,加深理解,以提高面试成功率。