OnePlus——2020春招Java开发工程师部分笔试知识点

本文详细介绍了OnePlus公司2020年春招Java开发工程师笔试涉及的知识点,涵盖Math.round()函数的正负数处理、String遍历方式、构造器、重写与重载的区别、多态概念、i++与++i的用法、访问权限default、final和abstract的使用,以及Java局部变量的默认值、异常处理、文件I/O和泛型等核心概念。
摘要由CSDN通过智能技术生成

其实除了真正的热爱,还有一些人就是大学之后顺其自然就需要进入这个行业,我就是这样的,或许这样的人是大佬不齿的,我也清楚地知道自己不可能变得很厉害,一直以来也消极懈怠,想的总比做的多,面对现实之后幡然醒悟,符同学要加油啊。

面临着毕业的压力,自己毕设也不会做,春招也是孤立无援的状态,一直投,但是每个都没有做好充足的准备,能力才是敲门砖鸭,我知道自己弱小,但我会学着成长的(日常给自己灌鸡汤)。


目录

 

1、Math.round()函数关于正负数的结果

2、String的遍历

3、Java构造器

4、子类的创建过程的相关代码阅读——父类子类的关系

5、关于重写、重载、多态

6、i++和++i在使用过程的区别

7、default是什么,final、abstract的相关使用

8、Java局部变量的默认值,创建的时候为0还是null

9、异常相关,是否必须进行try-catch捕获,如何使用

10、文件相关的操作,就是输入输出流相关

11、Java泛型


1、Math.round()函数关于正负数的结果

Math.round()方法是用来执行四舍五入取整的关于负数则是不一样的处理。按小数部分的值可以总结为:>5正负整数部分绝对值全部+1,=5正数整数部分+1,<5正负全不加。

例如:

小数点后第一位>5:Math.round(11.68)=12 | Math.round(-11.68)=-12

小数点后第一位=5:Math.round(11.5)=12 | Math.round(-11.5)=-11

小数点后第一位<5:Math.round(11.46)=11 | Math.round(-11.46)=-11

 

2、String的遍历

  1. .length(), charAt():获取字符串长度,然后使用函数按下标遍历;

  2. .length(), substring(i ,i+1):获取字符串长度,然后使用函数遍历,substring函数截取的子串含头不含尾;

  3. .toCharArray():先将字符串转换成字符数组,然后按数组的方式遍历。

不能直接str[i]像数组那样遍历!!

 

3、Java构造器

用于创建对象并初始化对象属性的方法,叫“构造方法”,也叫“构造器”,构造器的名称必须与类名同名,包括大小写。具体参考这篇:https://blog.csdn.net/joxlin/article/details/81911330

 

4、子类的创建过程的相关代码阅读——父类子类的关系

  1. 在创建子类对象的时候,会从最顶端的父类的构造方法开始执行,直到执行到当前创建对象的构造方法;

  2. 调用子类中没有显式声明的方法,它会去他的父类中找对应的方法,如果父类中没有就向它的祖父去找(孩子没有的就向父亲要,只要父亲有就可以用);

  3. 如果在子类的独有的方法中用到了父类的方法,那么会按照代码书写的先后顺序,先后执行;

  4. 子类初始化的时候父类也会初始化,子类实例化的时候父类不会实例化;

  5. 子类初始化过程如下:

   a. 初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;

   b. 初始化子类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;

   c. 初始化父类的普通成员变量和代码块,在执行父类的构造方法;

   d. 初始化子类的普通成员变量和代码块,在执行子类的构造方法。

 

5、关于重写、重载、多态

重写(Override)是对两个类中的同名方法而言。子类对父类方法的实现过程进行重新编写, 返回类型和形参都不能改变。关于两个方法的声明,参数列表必须完全相同,返回类型可以不相同,但是子类的返回类型必须是父类返回类型的派生类。

重载(Overload)是对一个类中的同名方法而言。重载的方法名字相同,而参数列表必须不同,返回类型可以相同也可以不同。每个重载的方法都必须有一个独一无二的参数类型列表,无法以返回值类型作为重载函数的区分标准。

继承关系才能重写的,一个类里是重载。关于重写和重载可参考: 菜鸟教程|override和overload 特别清楚。

 

多态是同一个行为具有多个不同表现形式或形态的能力,是面向对象的三大特性之一。

多态的实现方法有:a.重写(Override)、b.接口、c.抽象类和抽象方法。

多态存在的三个必要条件:a.有继承关系  

                                           b.子类重写父类方法  

                                           c.父类引用指向子类对象(涉及向上造型)

(关于对重载是否体现多态性的讨论(?),我个人理解吧,从不同的角度出发,就行为而言,重载确实体现了多态哇,但是就对象而言,重载是没有体现多态性的,它并未涉及更多的对象)

 

6、i++和++i在使用过程的区别

i++是先用再加1,++i是先加1再用。

j=i++首先i拿出来用,赋值给j,然后i+1。此时j=i,i=i+1;

j=++i首先将i+1,再进行赋值。此时j=i+1,i=i+1;

而i=i++就涉及了三步,首先右边i赋给了左边i,然后右边i进行+1操作,然后再将+1后的i值赋给左边i。

(好绕啊(◎ロ◎)φ),可笔试就乐意考)

 

7、default是什么,final、abstract的相关使用

default(包访问权限)是和private(当前类访问权限)、protected(子类访问权限)、public(公共访问权限)一类的关键词,作为保护级别,相当于friendly,不可修饰或限制类型,default String s语句是错误。

当使用abstract修饰类时,表明这个类只能被继承;当使用abstract修饰方法时,表明这个方法必须由子类提供实现(即重写)。而final修饰的类不能被继承,final修饰的方法不能被重写。

因此final和abstract永远不能同时使用。

final可以修饰变量、方法、类,而default、abstract只能修饰方法和类,不能修饰变量。

 

8、Java局部变量的默认值,创建的时候为0还是null

首先要区别局部变量和类变量(成员变量),局部变量是定义在方法体中,语句块中的变量,而类变量定义在类中,方法体之外。

局部变量定义后,必须初始化,即赋值,才能使用(它没有默认值)。

类变量定义后可以不初始化,因为类在初始化的时候系统会自动为成员变量赋初值,基本类型的值为0,复合类型的值为null。

 

9、异常相关,是否必须进行try-catch捕获,如何使用

啊,这个也好复杂。。复习下来头晕了,先码住一篇博客后面再看吧!深入理解java异常处理机制

 

10、文件相关的操作,就是输入输出流相关

输入输出都是流,基于InputStream和OutputStream,这个也好多知识点,讲不明白了(我太菜了),这个也要复习的。

 

11、Java泛型

编程题目有一个题是涉及泛型编程的,即可对不同类型的输入数据进行进行排序操作(?还是别的啥操作,我忘了QAQ)。

泛型方法的定义:[public] [static] <T> 返回值类型 方法名(T 参数列表)

(写不明白不写了,又码住一篇博客,别人好厉害!夯实JAVA基本之一 —— 泛型详解(1):基本使用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值