<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
		<meta name="apple-mobile-web-app-capable" content="yes">
		<meta name="apple-mobile-web-app-status-bar-style" content="black">
		<meta name="format-detection" content="telephone=no">
		<title>比较难的java经典面试题及答案-思洋互动</title>
		<meta name="keywords" content="比较难的java经典面试题及答案">
	    <meta name="description" content="一个扎手的Java问题，假如Java编程言语不是你规划的，你怎么能答复这个问题呢。Java编程的常识和深化了解有助于答复这种扎手的Java核心方面的面试问题。
为什么wait，notify和notifyAll是...">
		<meta name="renderer" content="webkit" />
		<link href="/css/main.css?v=39" rel="stylesheet">
		<link href="/css/base.css?v=39" rel="stylesheet">
        <link href="/css/swiper-3.4.2.min.css" rel="stylesheet">
		<script type="text/javascript" src="/js/jquery.min.js"></script>
        <script type="text/javascript" src="/js/swiper-3.4.2.min.js"></script>
		<!--[if lt IE 9]>
            <script src="/js/html5shiv.min.js"></script>
            <script src="/js/respond.min.js"></script>
            <link href="/css/ie.css" rel="stylesheet">
        <![endif]-->
		<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?8914d517c927d8e794148d05e387fb17";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
<link rel="canonical" href="https://www.ciya.cn/article/3646.html">
		</head>
	<body class="no-banner">
		<div class="container">
			<div class="header">
	<div class="header-top">
		<div class="w1700">
			<a href="https://www.ciya.cn/"><img src="/images/logo.png?v=2"></a>
		</div>
	</div>
	<div class="header_b">
		<header class="slide">
			<div id="navToggle" class="menu-handler">
				<span class="burger burger-1 trans"></span>
				<span class="burger burger-2 trans-fast"></span>
				<span class="burger burger-3 trans"></span>
			</div>
		</header>
	</div>
	<nav class="slide">
		<div class="w1700">
			<a class="index" href="/"></a>
			<ul>
								<li><a href="https://www.ciya.cn/case/12.html">项目案例</a></li>
								<li><a href="https://www.ciya.cn/website/9.html">网站建设</a></li>
								<li><a href="https://www.ciya.cn/marketing/10.html">网络营销</a></li>
								<li><a href="https://www.ciya.cn/media/11.html">新媒体</a></li>
								<li class="active"><a href="https://www.ciya.cn/news/16.html">动态</a></li>
								<li><a href="https://www.ciya.cn/about/8.html">关于</a></li>
								<li><a href="https://www.ciya.cn/contact/13.html">联系</a></li>
							</ul>
		</div>
	</nav>
</div>            <div class="content slide">
                <div class="position bgf1">
                    <div class="w1700">
                        <a href="https://www.ciya.cn/">首页 ></a>
                        <a href="https://www.ciya.cn/news/16.html">动态 ></a>
                        <a href="https://www.ciya.cn/news/35.html">网站知识</a>
                    </div>
                </div>
                <div class="case-type">
                    <div class="w1700">
                                                <a href="https://www.ciya.cn/news/32.html" >品牌合作</a>
                                                <a href="https://www.ciya.cn/news/31.html" >新闻动态</a>
                                                <a href="https://www.ciya.cn/news/38.html" >网站建设</a>
                                                <a href="https://www.ciya.cn/news/41.html" >网站制作</a>
                                                <a href="https://www.ciya.cn/news/40.html" >网站设计</a>
                                                <a href="https://www.ciya.cn/news/42.html" >运营推广</a>
                                                <a href="https://www.ciya.cn/news/35.html"  class="active">网站知识</a>
                                            </div>
                </div>
                <div class="padding-tb80">
                    <div class="w1700 clear">
                        <div class="fl xwxq-l">
                            <div class="noselettext">
                                <div class="xwxq-title mg-bt60 wow slideUp">
                                    <h1 class="mg-bt35">比较难的java经典面试题及答案</h1>
                                    <span>时间：2023-05-16</span>
                                </div>
                                <div class="edit2 mg-bt60 wow slideUp">
                                                                        <p>一个扎手的Java问题，假如Java编程言语不是你规划的，你怎么能答复这个问题呢。Java编程的常识和深化了解有助于答复这种扎手的Java核心方面的面试问题。<br />
为什么wait，notify和notifyAll是在Object类中界说的而不是在Thread类中界说<br />
这是有名的Java面试问题，招2~4年经历的到高级Java开发人员面试都或许碰到。<br />
这个问题的好在它能反映了面试者对等候通知机制的了解,以及他对此主题的理解是否明确。就像为什么Java中不支撑多承继或者为什么String在Java中是final的问题相同，这个问题也或许有多个答案。<br />
为什么在Object类中界说wait和notify办法，每个人都能说出一些理由。从我的面试经历来看,wait和nofity仍然是大多数Java程序员最困惑的，特别是2到3年的开发人员，假如他们要求运用wait和notify,他们会很困惑。因而，假如你去参加Java面试，请确保对wait和notify机制有充沛的了解，而且能够轻松地运用wait来编写代码，并经过生产者-消费者问题或完成阻塞行列等了解通知的机制。<br />
为什么等候和通知需求从同步块或办法中调用,以及Java中的wait，sleep和yield办法之间的差异，假如你还没有读过，你会觉得风趣。为何wait，notify和notifyAll属于Object类?为什么它们不应该在Thread类中?以下是我以为有含义的一些主意：<br />
1)wait和notify不仅仅是一般办法或同步东西，更重要的是它们是Java中两个线程之间的通讯机制。对言语规划者而言,假如不能经过Java关键字(例如synchronized)完成通讯此机制，同时又要确保这个机制对每个方针可用,那么Object类则是的正确声明位置。记住同步和等候通知是两个不同的范畴，不要把它们看成是相同的或相关的。同步是供给互斥并确保Java类的线程安全，而wait和notify是两个线程之间的通讯机制。<br />
2)每个方针都可上锁，这是在Object类而不是Thread类中声明wait和notify的另一个原因。<br />
3)在Java中为了进入代码的临界区，线程需求确定并等候确定，他们不知道哪些线程持有锁，而仅仅知道锁被某个线程持有，而且他们应该等候获得锁,而不是去了解哪个线程在同步块内，并恳求它们开释确定。<br />
4)Java是根据Hoare的监视器的思想(http://en.wikipedia.org/wiki/&#8230;。在Java中，一切方针都有一个监视器。<br />
线程在监视器上等候，为履行等候，咱们需求2个参数：<br />
一个线程<br />
一个监视器(任何方针)<br />
在Java规划中，线程不能被指定，它总是运行当前代码的线程。但是，咱们能够指定监视器(这是咱们称之为等候的方针)。这是一个很好的规划，因为假如咱们能够让任何其他线程在所需的监视器上等候，这将导致“侵略”，导致在规划并发程序时会遇到困难。请记住，在Java中，一切在另一个线程的履行中侵入的操作都被弃用了(例如stop办法)。<br />
为什么Java不支撑运算符重载？<br />
另一个相似扎手的Java问题。为什么C++支撑运算符重载而Java不支撑?有人或许会说+运算符在Java中已被重载用于字符串连接，不要被这些论据所欺骗。<br />
与C++不同，Java不支撑运算符重载。Java不能为程序员供给自在的标准算术运算符重载，例如+，-，*和/等。假如你曾经用过C++，那么Java与C++比较少了很多功用，例如Java不支撑多重承继，Java中没有指针，Java中没有引证传递。另一个相似的问题是关于Java经过引证传递，这首要表现为Java是经过值仍是引证传参。尽管我不知道背后的真实原因，但我以为以下说法有些道理，为什么Java不支撑运算符重载。<br />
1)简略性和明晰性。明晰性是Java规划者的方针之一。规划者不是只想复制言语，而是希望具有一种明晰，真实面向方针的言语。添加运算符重载比没有它肯定会使规划更杂乱，而且它或许导致更杂乱的编译器,或减慢JVM，因为它需求做额定的工作来辨认运算符的实际含义，并削减优化的时机,以确保Java中运算符的行为。<br />
2)避免编程错误。Java不允许用户界说的运算符重载，因为假如允许程序员进行运算符重载，将为同一运算符赋予多种含义，这将使任何开发人员的学习曲线变得峻峭，工作变得更加混乱。据观察，当言语支撑运算符重载时，编程错误解添加，然后添加了开发和交付时间。因为Java和JVM已经承担了大多数开发人员的职责，如在经过供给废物收集器进行内存办理时，因为这个功用添加污染代码的时机,成为编程错误之源,因而没有多大含义。<br />
3)JVM杂乱性。从JVM的角度来看，支撑运算符重载使问题变得更加困难。经过更直观，更干净的办法运用办法重载也能完成相同的工作，因而不支撑Java中的运算符重载是有含义的。与相对简略的JVM比较，杂乱的JVM或许导致JVM更慢，并为确保在Java中运算符行为确实定性然后削减了优化代码的时机。<br />
4)让开发东西处理更简单。这是在Java中不支撑运算符重载的另一个优点。省掉运算符重载使言语更简单处理，这反过来又更简单开发处理言语的东西，例如IDE或重构东西。Java中的重构东西远胜于C++。<br />
为什么char数组比Java中的String更适合存储暗码？<br />
另一个根据String的扎手Java问题，相信我只有很少的Java程序员能够正确答复这个问题。这是一个真实艰难的核心Java面试问题，而且需求对String的扎实知识才干答复这个问题。<br />
这是最近在Java面试中向我的一位朋友问询的问题。他正在接受技能主管职位的面试，而且有超越6年的经历。假如你还没有遇到过这种状况，那么字符数组和字符串能够用来存储文本数据，但是挑选一个而不是另一个很难。但正如我的朋友所说，任何与String相关的问题都必须对字符串的特殊特点有一些线索，比方不变性，他用它来说服访发问的人。在这里，咱们将讨论为什么你应该运用char[]存储暗码而不是String的一些原因。<br />
字符串：1)因为字符串在Java中是不可变的，假如你将暗码存储为纯文本，它将在内存中可用，直到废物收集器清除它.而且为了可重用性，会存在String在字符串池中,它很或许会保留在内存中持续很长时间，然后构成安全威胁。<br />
因为任何有权拜访内存转储的人都能够以明文方式找到暗码，这是另一个原因，你应该一直运用加密暗码而不是纯文本。因为字符串是不可变的，所以不能更改字符串的内容，因为任何更改都会发生新的字符串，而假如你运用char[]，你就能够将一切元素设置为空白或零。因而，在字符数组中存储暗码能够显着下降窃取暗码的安全危险。<br />
2)Java自身主张运用JPasswordField的getPassword()办法，该办法回来一个char[]和不引荐运用的getTex()办法，该办法以明文方式回来暗码，因为安全原因。应遵循Java团队的主张,坚持标准而不是反对它。<br />
3)运用String时，总是存在在日志文件或操控台中打印纯文本的危险，但假如运用Array，则不会打印数组的内容而是打印其内存位置。尽管不是一个真实的原因，但仍然有道理。<br />
StringstrPassword=“Unknown”;<br />
char[]charPassword=newchar[]{&#8216;U&#8217;，&#8217;n&#8217;，&#8217;k&#8217;，&#8217;w&#8217;，&#8217;o&#8217;，&#8217;n&#8217;};<br />
System.out.println(“字符暗码：”+strPassword);<br />
System.out.println(“字符暗码：”+charPassword);<br />
输出<br />
字符串暗码：Unknown<br />
我还主张运用散列或加密的暗码而不是纯文本，并在验证完成后立即从内存中清除它。因而,在Java中,用字符数组用存储暗码比字符串是更好的挑选。尽管仅运用char[]还不行，还你需求擦除内容才干更安全。<br />
以上便是小编介绍的“比较难的java经典面试题及答案”的内容，希望对我们有帮助，关注动力节点，想了解更多Java技能知识留言给小编。</p>


		
										                                </div>
                            </div>
                                                        <div class="wzbq wow slideUp mg-bt30">
                                <span>文章标签：</span>
                                <div class="bqnr">
                                                                                                             <a href="https://www.ciya.cn/tags/website-building/">网站建设</a>
                                                                                                                                                                                                                                                                                                                                                                    </div>
                            </div>
                                                        <div class="xwxq-bot bgf1 wow slideUp">
                                <div class="xwxq-fy clear">
                                    <a class="fl" href="/article/3647.html"><i></i>Java查找和高亮Word文本</a>
                                    <a class="fr" href="/article/3645.html"><i></i>Java访问权限控制</a>
                                </div>
                                <a class="fhlb" href="#"></a>
                            </div>
                        </div>
                        <div class="fr xwxq-r">
                            <div class="xwxq-tj-page bgf1 mg-bt40 wow slideUp">
                                <div class="xwxq-tj-warp bgfff">
                                    <div class="tjxw-title mg-bt30">
                                        <h3>最新案例</h3><span>LATEST CASES</span>
                                    </div>
                                    <div class="zxal">
                                        <div class="swiper-container">
                                            <div class="swiper-wrapper">
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/409.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214103120.jpg" alt="广州呼吸研究院"/></div>
                                                            <p>广州呼吸研究院</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/433.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214102846.jpg" alt="融创集团"/></div>
                                                            <p>融创集团</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/268.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214102923.jpg" alt="粤海集团"/></div>
                                                            <p>粤海集团</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/414.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211216/20211216115258.jpg" alt="恒大足球学校"/></div>
                                                            <p>恒大足球学校</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/477.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214102958.jpg" alt="侨鑫集团"/></div>
                                                            <p>侨鑫集团</p>
                                                        </a>
                                                    </div>
                                                                                                </div>
                                        </div>
                                        <div class="zxalDot text-center swiperDot"></div>
                                    </div>
                                </div>
                            </div>
                            <div class="xwxq-tj-page bgf1 mg-bt40 wow slideUp">
                                <div class="xwxq-tj-warp bgfff">
                                    <div class="tjxw-title tjxw-title-line mg-bt20">
                                        <h3>热点新闻</h3><span>TOP NEWS</span>
                                    </div>
                                    <ul class="rdxw">
                                                                                <li><a href="https://www.ciya.cn/article/3559.html">1  java heap space(解决方法)</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/1222.html">2  如何在网站后台上传附件</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/1643.html">3  如何在网站后台上传PDF文件</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/1142.html">4  什么是流？</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/3543.html">5  java swing还有人用吗(swing为什么会被淘汰)</a></li>
                                                                            </ul>
                                </div>
                            </div>
                            <div class="xwxq-tj-page bgf1 wow slideUp">
                                <div class="xwxq-tj-warp bgfff">
                                    <div class="tjxw-title tjxw-title-line mg-bt20">
                                        <h3>最新动态</h3><span>NEWS</span>
                                    </div>
                                    <ul class="rdxw">
                                                                                <li><a href="https://www.ciya.cn/article/7318.html">1  商务网站的维护与更新：持续优化，保持竞争力</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7317.html">2  商务网站的社交媒体营销：扩大品牌影响力，吸引更多潜在客户</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7316.html">3  商务网站的广告投放：增加收益，提高知名度</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7315.html">4  商务网站的在线客户服务：提供优质客服，提升用户满意度</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7314.html">5  商务网站的支付系统集成：安全、便捷的交易方式</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7313.html">6  商务网站搜索引擎优化（SEO）：提升排名，增加流量</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7312.html">7  商务网站响应式设计：实现多设备兼容，提升用户体验</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7311.html">8  商务网站开发：选择合适的编程语言和技术栈</a></li>
                                                                            </ul>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="footerbox">
	<div class="footer">
		<div class="w1700">
			<ul>
				<li>
					<span class="fttitle">思洋 · 广州总部</span>
					<div>
						<p>广州天河区珠江新城富力盈力大厦北塔2706</p>
						<p>020-38013166（网站咨询专线）</p>
					</div>
					<p>400-001-5281 （售后服务热线）</p>
				</li>
				<li>
					<span class="fttitle">思洋 · 深圳</span>
					<div>
						<p>深圳市坂田十二橡树庄园F1-7栋</p>
						<p>Site/ http://www.szciya.com </p>
						<p>E-mail/ itciya@vip.163.com</p>
					</div>
					<p>品牌服务专线：400-001-5281 </p>
				</li>
				<li>
					<span class="fttitle">思洋 · 湖南</span>
					<div>
						<p>长沙市天心区芙蓉中路三段398号新时空大厦5楼</p>
						<p>联系电话/ (+86 0731)88282200</p>
					</div>
					<p>品牌服务专线/ 400-966-8830</p>
				</li>
				<li class="lastli">
					<p class="mt10">旗下运营网站：</p>
					<div class="mt10">
						<img src="/images/ftlogo2.png">
						<img src="/images/gogo.png">
						<img src="/images/ftlogo3.png">
						<img src="/images/ftlogo4.png">
						<img src="/images/ftlogo11.png">
					</div>
				</li>
			</ul>
		</div>
	</div>
	<div class="ft_bottom">
		<div class="w1700">
			<p class="cop">Copyright © 2016 广州思洋文化传播有限公司，保留所有权利。 <a href="https://beian.miit.gov.cn/" target="_blank">粤ICP备09033321号</a>
			</p>
		</div>
	</div>
</div>
<div class="le-box active">
	<div class="t show780">
		<a href="tel:13570966600">
			<img src="/images/ml9-1.png?v=1" alt="" class="sow i">
			<img src="/images/ml9-1.png?v=1" alt="" class="iove i">
		</a>
	</div>
	<div class="t">
		<img src="/images/ml1-1.png?v=1" alt="" class="sow i">
		<img src="/images/ml1-1.png?v=1" alt="" class="iove i">
		<div class="iov">
			<div class="img">
				<img src="/images/qr.jpg" alt="与项目经理交流">
			</div>
			<div class="h">扫描二维码<br>与项目经理交流</div>
		</div>
	</div>
	<div class="t">
		<img src="/images/ml2-1.png?v=1" alt="" class="sow i">
		<img src="/images/ml2-1.png?v=1" alt="" class="iove i">
		<div class="iov">
			<div class="img">
				<img src="/images/qq001.jpg" alt="">
			</div>
			<div class="h">扫描二维码<br>与项目经理交流</div>
		</div>
	</div>
	<!--<div class="t">-->
		<!--<a href="http://wpa.qq.com/msgrd?v=3&amp;uin=1607245872&amp;site=ciya.cn&amp;menu=yes" target="_blank">-->
			<!--<img src="/images/ml2-1.png?v=1" alt="" class="sow i">-->
			<!--<img src="/images/ml2-1.png?v=1" alt="" class="iove i">-->
		<!--</a>-->
	<!--</div>-->
	<div class="t hide780">
		<a href="https://affim.baidu.com/unique_510425/chat?siteId=19536215&userId=510425&siteToken=8914d517c927d8e794148d05e387fb17" target="_blank">
			<img src="/images/ml3-1.png?v=1" alt="" class="sow i">
			<img src="/images/ml3-1.png?v=1" alt="" class="iove i">
		</a>
	</div>
</div>
<script>
	$(window).scroll(function(){
//		if($(window).scrollTop()>200){
//			$(".le-box").addClass("active");
//		}else{
//			$(".le-box").removeClass("active");
//		}
	})
</script>
<div class="wap_fx">
	<a href="tel:13570966600" class="phone"></a>
	<a href="mqqwpa://im/chat?chat_type=wpa&uin=1607245872&version=1&src_type=web&web_src=ciya.cn" target="_blank" class="qq"></a>
	<a href="javascript:;" class="wx2"></a>
	<a class="kef986" style="background:rgba(0,0,0,.6) url(/images/ml3-1.png?v=1) no-repeat center;background-size: cover;border-radius: 4px;" href="https://p.qiao.baidu.com/cps/chat?siteId=18513940&userId=510425&siteToken=e5e1bde478969b43bf99b7703a694c0b" target="_blank"></a>
</div>
<div class="wap-wxcode">
	<div class="middle-box">
		<div class="middle-inner">
			<div class="wap-wxcode-con">
				<img src="/images/ff_ewm.jpg" alt=""/>
				<div class="wap-wxcode-bot"><span class="wxname">ciya68</span><button class="copy-btn" data-clipboard-text="ciya68">点击复制</button></div>
				<div class="gb1002"></div>
			</div>
		</div>
	</div>
</div>
<input id="hide" type="hidden">
<script src="/js/clipboard.min.js"></script>
<script>
	$(function(){
		$(".wx2").click(function(){
			$(".wap-wxcode").show();
		});
		$(".gb1002").click(function(){
			$(".wap-wxcode").hide();
		});
		var copyBtn=new ClipboardJS('.copy-btn');
		copyBtn.on("success",function(e){
			// 复制成功
			// alert(e.text);
			showMessage('已成功复制微信号','success',2000)
			e.clearSelection();
		});
		copyBtn.on("error",function(e){
			//复制失败；
			showMessage('复制微信号失败','error',2000)
			console.log( e.action )
		});
		function showMessage(message,type,time) {
			let str = ''
			switch (type) {
				case 'success':
					str = '<div class="success-message" style="width: 100%;height: 50px;background-color: #030026;font-size:17px;text-align: center;color:#fff;position: fixed;left: 0%;bottom: 0%;line-height: 50px;z-index: 9999">\n' +
							'    <span class="mes-text">'+message+'</span></div>'
					break;
				case 'error':
					str = '<div class="error-message" style="width: 100%;height: 50px;background-color: #030026;font-size:17px;text-align: center;color: #fff;position: fixed;left: 0%;bottom: 0%;line-height: 50px;z-index: 9999">\n' +
							'    <span class="mes-text">'+message+'</span></div>'
			}
			$('body').append(str)
			setTimeout(function () {
				$('.'+type+'-message').remove()
			},time)
		}


		var ua = navigator.userAgent.toLowerCase();
		var isWeixin = ua.indexOf('micromessenger')!= -1;
		if(isWeixin){
			$(".kef986").hide();
		}

	})
</script>
            </div>
        </div>
		<script type="text/javascript" src="/js/trunk.js?v=2"></script>
        <script>
            var zxal=null;
            var len=$(".zxal .swiper-slide").length;
            if(len>1){
                zxal = new Swiper('.zxal .swiper-container',{
                    speed:600,
                    loop:true,
                    autoplay : 5000,
                    autoplayDisableOnInteraction : false,
                    pagination : '.zxalDot',
                    paginationClickable :true,
                })
            }else{
                $(".zxalDot").hide();
            }
        </script>
	</body>
</html>

