当前位置: 首页 > 编程日记 > 正文

经典的Java基础面试题集锦

问题:如果main方法被声明为private会怎样?

答案:能正常编译,但运行的时候会提示”main方法不是public

问题:Java里的传引用和传值的区别是什么?

答案:传引用是指传递的是地址而不是值本身,传值则是传递值的一份拷贝。

问题:如果要重写一个对象的equals方法,还要考虑什么?

答案:hashCode

问题:Java一次编写,处处运行是如何实现的?

答案:Java程序会被编译成字节码组成的class文件,这些字节码可以运行在任何平台,因此Java是平台独立的。

问题:说明一下public static void main(String args[])这段声明里每个关键字的作用

答案:public: main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。所以可见性设置为pulic.

static: Java平台调用这个方法时不会创建这个类的一个实例,因此这个方法必须声明为static

void: main方法没有返回值。

String是命令行传进参数的类型,args是指命令行传进的字符串数组。

问题:==equals的区别

答案:==比较两个对象在内存里是不是同一个对象,就是说在内存里的存储位置一致。两个String对象存储的值是一样的,但有可能在内存里存储在不同的地方 .

== 比较的是引用而equals方法比较的是内容。public boolean equals(Object obj) 这个方法是由Object对象提供的,可以由子类进行重写。默认的实现只有当对象和自身进行比较时才会返回true,这个时候和==是等价的。 String, BitSet, Date, File都对equals方法进行了重写,对两个String对象 而言,值相等意味着它们包含同样的字符序列。对于基本类型的包装类来说,值相等意味着对应的基本类型的值一样。

 1 public class EqualsTest {
 2     public static void main(String[] args) {
 3         String s1 = “abc”;
 4         String s2 = s1;
 5         String s5 = “abc”;
 6         String s3 = new String(”abc”);
 7         String s4 = new String(”abc”);
 8         System.out.println(”== comparison : ” + (s1 == s5));
 9         System.out.println(”== comparison : ” + (s1 == s2));
10         System.out.println(”Using equals method : ” + s1.equals(s2));
11         System.out.println(”== comparison : ” + s3 == s4);
12         System.out.println(”Using equals method : ” + s3.equals(s4));
13     }
14 }

结果:

== comparison : true
== comparison : true
Using equals method : true
false
Using equals method :true

问题:如果去掉了main方法的static修饰符会怎样?

答案:程序能正常编译。运行时会抛NoSuchMethodError异常。

问题:为什么oracle type4驱动被称作瘦驱动?

案:oracle提供了一个type 4 JDBC驱动,被称为瘦驱动。这个驱动包含了一个oracle自己完全用Java实现的一个TCP/IPNet8的实现,因此它是平台独立的,可以在运 行时由浏览器下载,不依赖任何客户端 的oracle实现。客户端连接字符串用的是TCP/IP的地址端口,而不是数据库名的tnsname

问题:介绍一下finalize方法

答案: final: 常量声明。 finally: 处理异常。 finalize: 帮助进行垃圾回收。

口里声明的变量默认是final的。final类无法继承,也就是没有子类。这么做是出于基础类型的安全考虑,比如StringInteger。这样也 使得编译器进行一些优化,更容易保证线程的安全性。final方法无法重写。final变量的值不能改变。finalize()方法在一个对象被销毁和回 收前会被调用。finally,通常用于异常处理,不管有没有异常被抛出都会执行到。比如,关闭连接通常放到finally块中完成。

问题:什么是Java API

答案:Java API是大量软件组件的集合,它们提供了大量有用的功能,比如GUI组件。

问题:GregorianCalendar类是什么东西?

答案:GregorianCalendar提供了西方传统日历的支持。

问题:ResourceBundle类是什么?

答案:ResourceBundle用来存储指定语言环境的资源,应用程序可以根据运行时的语言环境来加载这些资源,从而提供不同语言的展示。

问题:为什么Java里没有全局变量?

答案:全局变量是全局可见的,Java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间的冲突。

问题:如何将String类型转化成Number类型?

答案:Integer类的valueOf方法可以将String转成Number。下面是代码示例:

String numString = “1000″;int id=Integer.valueOf(numString).intValue();

问题:SimpleTimeZone类是什么?

答案:SimpleTimeZone提供公历日期支持。

问题:while循环和do循环有什么不同?

答案:while结构在循环的开始判断下一个迭代是否应该继续。do/while结构在循环的结尾来判断是否将继续下一轮迭代。do结构至少会执行一次循环体。

问题:Locale类是什么?

答案:Locale类用来根据语言环境来动态调整程序的输出。

问题:面向对象编程的原则是什么?

答案:主要有三点,多态,继承和封装。

问题:介绍下继承的原则

答案:继承使得一个对象可以获取另一个对象的属性。使用继承可以让已经测试完备的功能得以复用,并且可以一次修改,所有继承的地方都同时生效。

问题:什么是隐式的类型转化?

答案:隐式的类型转化就是简单的一个类型赋值给另一个类型,没有显式的告诉编译器发生了转化。并不是所有的类型都支持隐式的类型转化。

代码示例:

int i = 1000;long j = i; //Implicit casting

问题:sizeofJava的关键字吗?

答案:不是。

问题:native方法是什么?

答案:native方法是非Java代码实现的方法。

问题:在System.out.println()里面,System, out, println分别是什么?

答案:System是系统提供的预定义的final类,out是一个PrintStream对象,printlnout对象里面一个重载的方法。

问题:封装,继承和多态是什么?

答案:简单来说,多态是指一个名字多种实现。多态使得一个实体通过一个通用的方式来实现不同的操作。具体的操作是由实际的实现来决定的。

多态在Java里有三种表现方式:方法重载通过继承实现方法重写通过Java接口进行方法重写。

问题:显式的类型转化是什么?

答案:显式的类型转化是明确告诉了编译器来进行对象的转化。

代码示例:

long i = 700.20;int j = (int) i; //Explicit casting

问题:什么是Java虚拟机?

答案:Java虚拟机是能移植到不同硬件平台上的软件系统。

问题:类型向下转换是什么?

答案:向下转换是指由一个通用类型转换成一个具体的类型,在继承结构上向下进行。

问题:Java的访问修饰符是什么?

答案:Java访问修饰符包括private,default,protected和public。含义分别表示私有的,默认的,受保护的和公有的访问修饰符。这些访问修饰符既可以修饰类中的属性,又可以修饰类中的方法,而public和default还可以修饰类。在同一个java文件里,公有类有且仅有一个,并且该文件命名为类名.java。

Java访问修饰符就是确定类中属性或方法的访问权限,换句话说,就是这些属性和方法所起的作用范围。

private,私有的访问权限,也是最严格的访问权限,仅只能在设置了该权限的类中访问,利用这个访问权限,表现出封装思想。

default,默认的访问权限,也是可以省略的访问权限,它不仅能在设置了该权限的类中访问,也可以在同一包中的类或子类中访问。

protected,受保护的访问权限,它除了具有default的访问权限外,还可以在不同包中所继承的子类访问。

public,公有的访问权限,也是最宽松的访问权限,不仅可以是同一个类或子类,还是同一个包中的类或子类,又还是不同包中的类或子类,都可以访问。

要想更深入地理解这些访问权限,一方面需要明白各自的作用域,另一方面更是要弄清楚各自所体现出来的编程思想,比方说,prvite表现的封装思想,public表现的面向接口编程的思想等。

在面向对象设计和编程的过程中,归根结底就是类的设计。而要设计出不仅满足当前需求同时也能符合未来需求的类,就很有必要对类中属性和行为设置合适的访问权限。那些应该为私有的,那些又应该为公有的,还有那些又应该为受保护的等,都应该给予合理的规划和布局,一来保证程序的功能要求,二来要体现程序的扩展性能,三来要呈现程序友好性质。总之,程序应该更好地服务用户。而访问权限在这样宏伟目标里扮演着重要角色。

转载于:https://www.cnblogs.com/justdoitba/p/7634947.html

相关文章:

c语言组队,组队列问题。会做的高手帮帮忙啊

算法实验题4.10 组队列问题 问题描述:组队列是一个特殊的抽象数据类型,它所支持的运算类似于队列运算具有附加的组属性。因此入队运算 Enqueue(x)与通常定义的运算不eue(x)运算将元素x加入当前队列中与元素x 属于同一组的元素的尾有与x属于同一组的元素&…

算力超英伟达?华为推出两款“昇腾”芯片;五大AI战略正式公布

整理 | 非主流、费棋 出品 | AI科技大本营 华为也像是要 All in AI 了。 10 月 10 日,华为全联接大会 2018 上,华为轮值董事长徐直军带来了一系列的硬核 AI。在大会上,他系统公布了华为的 AI 发展战略,以及全栈全场景 AI 解决方案…

《SharePoint Portal Server 2003 深入指南》出版预告

《SharePoint Portal Server 2003 深入指南》在8月底、9月初应该就会上市了,如果您想得到这本书,方法包括: 1、等到书店到货之后,在书店购买。 2、网上订购。比如在Dearbook上:http://www.dearbook.com.cn/book/110838…

python内置数据结构之dict

字典是什么 key-value对的集合.可变的、无序、key不重复的序列.key只能是唯一标识,value不限定,只要是合法的value.key和value一一对应.字典的定义初始化空字典定义 dict() 和 {}例;d dict() 或 d {}字典定义初始化- 1dict(**kwargs) 使用namevalue的格式,定义字典例:…

Google发布三大新品,Pixel手机价格直逼苹果

整理 | 费棋出品 | AI科技大本营北京时间 10 月 9 日晚间,Google 在秋季发布会上推出了 Pixel 手机、平板电脑 Pixel Slate 以及智能音箱 Home Hub三大新品。最新旗舰手机 Pixel 3 和 Pixel 3 XL 如约而至,但由于产品信息在发布前就已被泄露,…

github上好的c语言项目,2019 github热门项目

zdogzdog是一款js 3D引擎,zdog不同于其他的js 3D引擎的地方在于所有的API引用全部都是2D绘图,所以zdog项目才会简单,但是高效。一起来做马里奥吧!craftcraft是Mojang工作室在github上的开源项目,craft完全采用c语言实现…

性能测试注意事项

作者:不详 性能测试注意事项: 1.服务器端和客户端一定要同一个局域网内,否则网络因素会成为性能测试的瓶颈。 2.在性能测试脚本中要注意检查点的设置,否则都不清楚脚本是否真的成功执行操作。 3&#xff0e…

【笔记】PIL 中的 Image 模块

Image 模块提供了一个同名类(Image),也提供了一些工厂函数,包括从文件中载入图片和创建新图片。例如,以下的脚本先载入一幅图片,将它旋转 45 度角,并显示出来: 1 >>>from P…

c语言万年历的设计报告,万年历设计报告

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#includechar* month_str[]{"January","February","March","April","May","June","July","August","September","Octob…

SQL Server的数据库开发工具

偶然的机会看到这个工具,看来比Oracle的PL/SQL Dev 有过之而无不及呀。而且是免费的哟这个工具看起来确实很牛呀,只是我还没有试用过。SQL Prompt 为Microsoft SQL Server 编辑器提供一种智能感知形式的自动完成功能,当你正在写你自己的SQL命…

国内首个深度学习工程师认证标准发布

10月10日,深度学习工程师认证发布会暨人工智能人才发展论坛在京召开。会上,基于中国软件行业协会发布的国内AI领域第一个专业技术人才培养标准——《深度学习工程师能力评估标准》(以下称《标准》),深度学习技术及应用…

对于未来的多种可能,这几位中国科学家想说

注:本文来自“ 2018 AI开发者大会”媒体合作伙伴深科技十年前,人工智能还被叫做模式识别,中本聪也才刚刚提出区块链概念。现如今,人类发现了石墨烯的新制法,利用 CRISPR-Cas9 战胜了过去不可治愈的病症,甚至…

android 虚方法,尝试在空对象引用上调用虚方法’android.view.View android.view.View.getRootView()’...

我收到这个错误,“Attempt to invoke virtual method ‘android.view.Viewandroid.view.View.getRootView()’ on a null object reference”这是我的代码.black.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {View bView findViewBy…

一个男人和一个女人的故事

一个男人和一个女人的故事,开始还有点意思,后来就有想打人的冲动.his_and_her_circumstance, 彼男彼女的事情. 还是一个男人和一个女人的故事简单. 曾经看到过介绍, 夸得天花乱缀. 我就下了,又花了一个星期的耐心终于看完了. 开始看,以为又是搞笑的青春校园故事. 后来越看越没…

Filezilla 二进制上传设定

大部份人都用這套吧,免費而且還不斷更新中。由於有些php源碼是有zend壓縮,沒用二進制傳送,會有問題,所以上傳模式最好是直接設定為二進制,如下圖:另外我建議最好也設定一次只傳一個檔,雖然慢了些…

android wear无法启用,android-wear – 无法创建Android虚拟设备,“没有为此目标安装系统映像”...

为了创建一个Android穿戴式模拟器,你需要按照下面的说明,1.如果您的Android SDK工具版本低于22.6,您必须更新2.在Android 4.4.2下,选择Android Wear ARM EABI v7a系统映像并安装它。3.Brolow Extras,确保您拥有最新版本…

全球物联网产业规模不断扩大 中国市场前景分析

近年来,物联网在行业领域的应用逐步深化。车辆远程信息服务管理、车联网、智能电网是近年来发展较快的应用领域,该等领域是物联网中率先形成完整产业链和内在驱动力的应用。拥有成熟产业链的车联网行业将率先发力,引领物联网行业的发展方向。…

月薪30k~50k,这个领域的人才正在被疯抢!

参加 2018 AI开发者大会,请扫描海报二维码 2016 年 IT 业年平均工资破 12 万元,首次超过金融业,排名各行业门类首位。2017 年,IT 业再次高居榜首,并一举超过 13 万元。挣得多花的少的程序员已经成为相亲市场上的香饽饽…

ADO.NET并发性

ADO.NET已经得到了广泛的应用,对于初学者搞懂基本的概念很重要,不如就写点基础的吧。首先介绍一下什么叫“并发”:我们在使用多用户数据库时常常会碰到数据更新失败、删除失等情况,如果有多个用户且同时访问一个数据库则当他们的事…

[JAVA] java仿windows 字体设置选项卡

想用java做一个像windows里一样的txt编辑软件,涉及到字体设置选项卡,在网上找了很久都没找到,就生气啦自己写一个,现在贴这里分享一下,下次再遇到这样的问题就不用自己亲自打代码啦! 1 package 实验;2 3 im…

android小球移动代码,Android自定义圆形View实现小球跟随手指移动效果

本文实例为大家分享了Android实现小球跟随手指移动效果的具体代码,供大家参考,具体内容如下一. 需求功能手指在屏幕上滑动,红色的小球始终跟随手指移动。实现的思路:1)自定义View,在onDraw中画圆作为小球;2…

从试用到使用:计算机视觉产业新一轮发展的起步年

参加 2018 AI开发者大会,请点击官网报名 CSDN 出品的《2018-2019 中国人工智能产业路线图》V2.0 版即将重磅面世! V1.0 版发布以来,我们有幸得到了诸多读者朋友及行业专家的鼎力支持,在此表示由衷感谢。此次 V2.0 版路线图将进行新…

被人恨,但感觉不错!

做销售四年多了,从来没有碰到目前遇到的情况,心中的郁闷,真的没办法排除,干脆写到BLOG上,也算发泄,也算记录!早两三年,一直在软件和IT服务行业打混,接触的多是企业老总&a…

android联动动画,利用 CollapsingToolbarLayout 完成联动的动画效果

最近项目中需要实现个动画效果,研究了下这里做下简单的分享.效果图如下:示例.gif最初的想法是自己去利用 Android 的嵌套滚动机制,去实现上面的嵌套滚动效果.但最后为了开发效率直接利用了 CollapsingToolbarLayout 和 CoordinatorLayout 的效果.实现效果的原理十分简单,监听 C…

波士顿动力机器人逆天,人类已无法阻挡它的三级跳!

一直刷新大众认知的波士顿动力又秀出了新花样。 如今,波士顿动力的 Atlas 人形机器人可以玩跑酷了!在该公司发布的一段最新视频中,Atlas 展示了它可以单脚越过障碍物、跳到交错的箱子上,毫不费力! 该公司表示&#xff…

自制程序清除系统垃圾文件

电脑用久了,系统分区内肯定会有很多垃圾文件,占据着大量空间,严重影响系统运行速度,这个程序能自动清理电脑里的垃圾而不会破坏系统。1. 在桌面上点鼠标右键,新建一个文本文件,把下面的字复制进去&#xff…

pylons中常用的paster命令

paster create -t pylons helloworld 创建一个以pylons为模板的项目,项目名字是helloworldpaster create --list-templates 显示当前的pylons中有多少可以使用的模板 paster serve --reaload development.ini 最常用的命令了,启动调式程序的时候都…

What-If 工具:无需写代码,即可测试机器学习模型

文 / Google AI 软件工程师 James Wexler 构建有效的机器学习 (ML) 系统需要提出许多问题。仅仅训练一个模型,然后放任不管,是远远不够的。而优秀的开发者就像侦探一样,总是不断探索,试图更好地理解自己的模型:数据点的…

linux如何安装neo4j,Ubuntu16.04 如何安装neo4j数据库

什么是neo4j数据库?neo4j数据库是图数据库的一种,属于nosql的一种,常见的nosql数据库还有redis、memcached、mongDB等,不同于传统的关系型数据库,nosql数据也有其独特之处,例如图数据库,在处理对…

MSI文件制作全过程

MSI文件制作全过程 这两天学习制作MSI文件用于组策略发布,试了一些做.MSI文件的软件包括Win2000Server光盘带的WinINSTALL LE,实际做出来的效果都不好。最后找到InstallShield AdminStudio5,用它做的MSI文件在组策略中成功发布。下面就以“石…