我是靠谱客的博主 激情铅笔,最近开发中收集的这篇文章主要介绍java double转int_Java面试题大全(一),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

e34837b2b0c6ee852b51b7c8e88f737c.gif

是新朋友吗?记得先点蓝字关注我哦

1、 说一下JavaJavaSciprt的区别?
答:-基于对象和面向对象:Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象;JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(Object-Based)和事件驱动(Event-Driven)的编程语言,因而它本身提供了非常丰富的内部对象供设计人员使用。

- 解释和编译:Java的源代码在执行之前,必须经过编译。JavaScript是一种解释性编程语言,其源代码不需经过编译,由浏览器解释执行。(目前的浏览器几乎都使用了JIT(即时编译)技术来提升JavaScript的运行效率)

- 强类型变量和类型弱变量:Java采用强类型变量检查,即所有变量在编译之前必须作声明;JavaScript中变量是弱类型的,甚至在使用变量前可以不作声明,JavaScript的解释器在运行时检查推断其数据类型。

扩展:Java和JavaScript最重要的区别是一个是静态语言,一个是动态语言。目前的编程语言的发展趋势是函数式语言和动态语言。在Java中类(class)是一等公民,而JavaScript中函数(function)是一等公民,因此JavaScript支持函数式编程,可以使用Lambda函数和闭包(closure),当然Java 8也开始支持函数式编程,提供了对Lambda表达式以及函数式接口的支持。

2、Java有什么特性?面向对象的特征有哪些?Java的重要特征?

答;抽象、封装、继承、多态为Java面向对象的最重要的四个特征(其它特征还有诸如多线程、API多、安全性高、跨平台等等)

1)抽象:Java是面向对象的解释性编程语言,面向对象讲究的万物皆对象,是将一类对象的共同特征总结出来构造类的过程,包括数据抽象(属性)和行为抽象(方法/函数),而不会关注行为的细节是什么样子。

2)封装:将对象中的数据封闭包装起来,只能通过方法/函数操作数据,使用者只能使用对象的属性和方法/函数,而不知道对象的具体实现。

打个比喻就相当于一台自动贩卖机,这个贩卖机相当于对象,贩卖机中有各种饮料,贩卖机有贩售饮料的方法,你只需要投币,就能拿到等值的饮料,但是你不知道你投币以后你的饮料是怎样从贩卖机中出来的。(说到封装就不得不说Java中的访问限制private、default、protect、public),一个简单常见的例子就是set、get方法访问类中私有属性)。

3)继承:继承性:继承是有联系的类所构成的层次模型。它可以重用类,并且提供了明确表达共性的方式,即原始类的派生类(子类)可以从基类(父类)那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。这样使设计新类的过程大大简化。Object是所有类的超类。

4)多态:多态性:多态是在父类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。多态性包括参数多态性和包含多态性。Java编辑器会自动根据所传递的参数进行判断,根据运行时对象的类型不同而执行不同的操作,这样很好地解决了应用程序函数同名问题。多态性丰富了对象的内容,扩大了对象的适应性,改变了对象单一继承的关系。(多态就应该对重载和重写的概念很清楚,重载与重新是实现多态的重要机制)

3、 Java是如何实现“一次编译,随处运行的”?Java能跨平台的原因?

答:Java实现跨平台的原理是通过Java虚拟机来实现的,Java源文件为后缀.java的文件,经过编译器编译为后缀.class文件。这些.class文件可以在JVM(Java虚拟机)中运行,而JVM底层屏蔽了不同操作系统的差异,这样就使得能够“一次编译,随处运行”。

4、 public,private,protected修饰符的作用域,以及不写修饰符时的区别?

答:1)使用public修饰符的变量和方法,在任何一个类中创建对象后都可以访问到,包括当前类、同包的类、子孙类以及外包的类。

2)使用protected修饰符的变量和方法,不可以访问外包类创建的对象。

3)不写修饰符的变量和方法,为默认类,只可以访问同一个包中类创建的对象。

4)使用private修饰符的变量和方法,只能在当前类中使用。

访问修饰符

同一类中

同一包中

子类中

全局

public

可以

可以

可以

可以

protect

可以

可以

可以

不可以

不写默认下

可以

可以

不可以

不可以

private

可以

不可以

不可以

不可以

5、 重载和重写的区别?为什么不能根据返回类型来区分重载?

答:重载和重写是Java中实现多态的重要机制。重载(Overload):又称静态多态,编译时多态: 重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;

重载程序示例如下:

public class Overloading { public int test(){ System.out.println("test1");return 1; } public void test(int a){ System.out.println("test2"); } //以下两个参数类型顺序不同 public String test(int a, String s){ System.out.println("test3"); return "returntest3"; } public String test(String s,int a){ System.out.println("test4"); return "returntest4"; } public static void main(String[] args){ Overloading o = new Overloading(); System.out.println(o.test()); o.test(1); System.out.println(o.test(1,"test3")); System.out.println(o.test("test4",1)); }}

重写(Override): 又称动态多态,运行时多态:发生在两个类中;方法名、参数、返回类型都与父类一致,不可以修改,但是里面的实现可以与被重写方法不同。(可以使用@Overwrite标签校验),重写示例程序如下:

class Animal{    public void move(){        System.out.println("动物可以移动");    }}class Dog extends Animal{    @Override    public void move(){        System.out.println("狗可以跑和走");    }    public void bark(){        System.out.println("狗可以吠叫");    }}
6、 Java中的数据类型有哪些?

Java中的数据类型分为基本数据类型和引用数据类型两大类;

基本数据类型4类(整形、浮点型、布尔型、字符型)8种{byte(1个字节)、short(2个字节)、int(4个字节)、long(8个字节)、float(4个字节)、double(8个字节)、boolean(一个字节)};引用数据类型(类、接口、数组、枚举类型);1字节=16位,可推算出表示范围,有符号(即从负数表示到正数,boolean、char类型除外)例如byte可表示范围为:负2的8次方到正2的8次方-1,减去1是因为还有0要表示。boolean 类型只有true或false,char类型是2个字节16位Unicode字符,从0到2的16次方-1;数据类型字节数确定也是保证Java程序的可移植,跨平台的基础。

引用数据类型;类、数组、接口、枚举类型;

整理如下图:

d8f91466fdd2c8fe88e829cafe1fe0b7.png

7、 char 型变量中能不能存贮一个中文汉字,为什么?

char类型可以存储一个中文汉字,Java中默认使用的编码是Unicode(也叫万国码,能耐表示英文、中文以及其它国家文件和一些特殊符号等等),Unicode编码是能表示汉字的,一个char类型占2个字节(16比特),放一个中文没问题的。

扩展:使用Unicode意味着字符在JVM内部和外部有不同的表现形式,在JVM内部都是Unicode,当这个字符被从JVM内部转移到外部时(例如存入文件系统中),需要进行编码转换。所以Java中有字节流和字符流,以及在字符流和字节流之间进行转换的转换流,如InputStreamReader和OutputStreamReader,这两个类是字节流和字符流之间的适配器类,承担了编码转换的任务;

8、定义变量 float f = 5.2;是否有问题?能否通过编译?

有问题,不能通过编译;在Java中没小数点的默认是int,有小数点的默认是double。将double转换为float需要进行强制类型转换,如 float f = (float)5.2;或者float f = 5.2f; 表示这是一个float类型的数据。

扩展:隐式转换,即自动转换,它不要求加以声明,是系统默认的。它是由小至大的转换:

byte——>short——>int——>long——>float——>double

char——>int——>long——>float——>double

显式转换,即强制转换,它是由大至小的转换,它的格式为:

类型 变量=(类型) 变量2;

9short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

Java规范有这样的规则:1.高位转低位需要强制转换 2.低位转高位自动转.在Java中没小数点默认的为int类型,1是int 型,s1是 short型,通过加1运算后s1 自动转为int 型,所以要强制转换,改为 s1 = (short)s1 + 1;

short s1 = 1; s1 += 1;正确

这个不会发生类型的提升,JAVA规范上说 :

e1+=e2 实际上是 e1=(T1)(e1+e2) ,其中T1是e1的数据类型。

s1+=1等效于 s1=(short)(s1+1),所以是正确的。

10、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行向下取整。(这其实就是简单的数学概念,明白四舍五入就错不了)

e34837b2b0c6ee852b51b7c8e88f737c.gif

是新朋友吗?记得先点蓝字关注我哦

  后台回复【福利】可查看小编为大家准备的资源。

  后台回复【福利|面试题】即可获取面试题PDF文件。

  后台回复【福利|电子书】即可获取Java电子书。

  论文答辩PPT可查看历史文章,留言召集好友点赞以后可以获得!

72c76356a8742897067bc70d35d75bd3.gif 161a7e1ece30ea75e6ce77b6ea733e19.gif ed239b038b3ed30903b3885c762181d9.gif 161a7e1ece30ea75e6ce77b6ea733e19.gif 161a7e1ece30ea75e6ce77b6ea733e19.gif ed239b038b3ed30903b3885c762181d9.gif 161a7e1ece30ea75e6ce77b6ea733e19.gif fecad07c16de14f62789ebde43a93a1c.png

如有疑问,欢迎留言

您的建议是我们成长的动力

最后

以上就是激情铅笔为你收集整理的java double转int_Java面试题大全(一)的全部内容,希望文章能够帮你解决java double转int_Java面试题大全(一)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部