当前位置: 首页 / 技术干货 / 正文
好程序员大数据培训分享大数据面试宝典六

2020-05-15

好程序员 大数据培训

好程序员大数据培训分享大数据面试宝典六1、数据类型之间的转换:

 1)如何将数值型字符转换为数字?

 2)如何将数字转换为字符?

 3)如何取小数点前两位并四舍五入? 【基础】

 答:

 1)调用数值类型相应包装类中的方法parse***(String)或valueOf(String)即可返回相应基本类型或包装类型数值;

 2)将数字与空字符串相加即可获得其所对应的字符串;另外对于基本类型数字还可调用String 类中的valueOf(…)方法返回相应字符串,而对于包装类型数字则可调用其toString()方法获得相应字符串;

 3)可用该数字构造一java.math.BigDecimal 对象,再利用其round()方法进行四舍五入到保留小数点后两位,再将其转换为字符串截取最后两位。

QQ截图20200311152024

1、 You need to insert an inner class declaration at line 3Which two inner class declarations are valid?(Choose two.)

 public class OuterClass {

private double d1 = 1.0;

//insert code here

}

 

 A. class InnerOne{

public static double methoda() {return d1;}

 }

 B. public class InnerOne{

static double methoda() {return d1;}

 }

 C. private class InnerOne{

double methoda() {return d1;}

 }

 D. static class InnerOne{

protected double methoda() {return d1;}

 }

 E. abstract class InnerOne{

public abstract double methoda();

 }

 答:答案为C、E;说明如下:

 1)静态内部类可以有静态成员,而非静态内部类则不能有静态成员;故A、B错;

 2)静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;故D 错;

 3)非静态内部类的非静态成员可以访问外部类的非静态变量;故C 正确。

 

2、 字符串操作:如何实现字符串的反转及替换?【基础】

 答:可用字符串构造一StringBuffer 对象,然后调用StringBuffer 中的reverse方法即可实现字符串的反转,调用replace 方法即可实现字符串的替换。

 

3、 编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串?【基础】

 答:示例代码如下:

 String s1 = "你好";

 String s2 = new String(s1.getBytes("GB2312"), "ISO-8859-1");

 

4、 写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。【基础】

 答:函数代码如下:

 public String[] split(String str, int chars){

int n = (str.length()+ chars - 1)/chars;

String ret[] = new String[n];

for(int i=0; i<n; i++){

if(i < n-1){

ret[i] = str.substring(i*chars , (i+1)*chars);

}else{

ret[i] = str.substring(i*chars);

}

}

return ret;

 }

 

5、 字符串操作:如何实现字符串的反转及替换?【基础】

 答:可用字符串构造一StringBuffer 对象,然后调用StringBuffer 中的reverse方法即可实现字符串的反转,调用replace 方法即可实现字符串的替换。

 

6、 日期和时间:

 1)如何取得年月日、小时分秒?

 2)如何取得从1970 年到现在的毫秒数?

 3)如何取得某个日期是当月的最后一天?

 4)如何格式化日期?【基础】

 答:

 1)创建java.util.Calendar 实例(Calendar.getInstance()),调用其get()方法传入不同的参数即可获得参数所对应的值,如:calendar.get(Calendar.YEAR);//获得年

 2)以下方法均可获得该毫秒数:

 Calendar.getInstance().getTimeInMillis();System.currentTimeMillis();

 3)示例代码如下:

 Calendar time = Calendar.getInstance();

 time.set(Calendar.DAY_OF_MONTH,

 time.getActualMaximum(Calendar.DAY_OF_MONTH));

 

7、 什么时候用assert?【中等难度】

 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。一般来说,assertion 用于保证程序最基本、关键的正确性。assertion 检查通常在开发和测试时开启。为了提高性能,在软件发布后, assertion 检查通常是关闭的。在实现中,断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true;如果表达式计算为false,那么系统会报告一个Assertionerror。

 断言用于调试目的:

 assert(a > 0); // throws an Assertionerror if a <= 0

 断言可以有两种形式:

 assert Expression1 ;

 assert Expression1 : Expression2 ;

 Expression1 应该总是产生一个布尔值。

 Expression2 可以是得出一个值的任意表达式;这个值用于生成显示更多调试信息的String 消息。

 断言在默认情况下是禁用的,要在编译时启用断言,需使用source 1.4 标记:

 javac -source 1.4 Test.java

 要在运行时启用断言,可使用-enableassertions 或者-ea 标记。

 要在运行时选择禁用断言,可使用-da 或者-disableassertions 标记。

 要在系统类中启用断言,可使用-esa 或者-dsa 标记。还可以在包的基础上启用或者禁用断言。可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。

 

8、 Java 中的异常处理机制的简单原理和应用?【基础】

 答:当JAVA 程序违反了JAVA 的语义规则时,JAVA 虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2 种情况。一种是JAVA 类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null 的对象时会引发NullPointerException。另一种情况就是JAVA 允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw 关键字引发异常。所有的异常都是java.lang.Thowable 的子类。

 

9、 error exception 有什么区别? 【基础】

 答:error 表示系统级的错误和程序不必处理的异常,是恢复不是不可能但很困难的情况下的一种严重问题;比如内存溢出,不可能指望程序能处理这样的情况;exception 表示需要捕捉或者需要程序进行处理的异常,是一种设计或实现问题;也就是说,它表示如果程序运行正常,从不会发生的情况。

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
IT培训IT培训
在线咨询
IT培训IT培训
试听
IT培训IT培训
入学教程
IT培训IT培训
立即报名
IT培训

Copyright 2011-2023 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号