【面试】Java基础的那些事-Thr

前言

面试中对于技术职位,一般分笔试与面谈,如果面试官的一些小问题你可以立马找到对应的知识点扩展开来,那么这就是你的优势,本系列将讲述一些java面试中的事,不会很详细,但是应该比较全面吧。

主要内容

  • assert有什么作用?

断言(assert)作为一种软件调试的方法,在实际开发中,assert主要用来保证程序的正确性,通常在程序开发和测试时使用。为了提高程序运行的效率,在软件发布后,assert检查默认是被关闭的。

java中的assert是关键字,C语言是库函数;C语言是编译时开启,Java语言是运行时开启。

  • static关键字有哪些作用

1、为某特定数据类型或对象分配单一的存储空间;

2、实现某个方法或属性与类而不是对象关联在一起;

3、其四种使用情况:成员变量、成员方法、代码块和内部类

4、static实现了单例模式

  • volatile有什么作用

被设计用来修饰被不同线程访问和修改的变量,被volatile类型定义的变量,系统每次用到它时都是直接从对应的内存当中提取,而不会利用缓存,在使用volatile后,所有线程在人和网时候所看到变量的值都是相同的。

注意:volatile不能保证原子性,不能代替sychronized,且其会阻止编译器对代码的优化。

  • instanceof 有什么作用

一个二元运算符,其作用是判断一个引用类型的变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例,即它左边的对象是否是它右边的类的实例,该运算符返回boolean类型的数据。

  • strictfp 有什么作用

是strict float point的缩写,指的是精确浮点,在这个关键字声明的范围内,所有浮点数的计算都是精确的。

  • 值传递与引用传递

原始数据类型的传递参数时是按值传递,而包装类型的传递参数时是按引用传递的。

  • Math中的round、ceil和floor方法的功能各是什么?

1、round四舍五入,Math.round(11.5)结果为12、Math.round(-11.5)结果为-11

2、ceil向上取整,返回值类型为Double

3、floor向下取整,返回值类型为Double

  • char型变量中是否可以存储一个中文汉字

Java默认使用Unicode编码方式,即每个字符占用两个字节,因此可以用来存储中文,英文占用一个字符,中文占用两个字符,采用这种存储方式的一个重要作用就是可以减少所需的存储空间,提高存储效率。

以下方法用来判断一个字符串中是否包含中文字符。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/** * @Author:UncleCatMySelf * @Email:zhupeijie_java@126.com * @QQ:1341933031 * @Date:Created in 10:10 2018\9\5 0005 */
public class Test {

    public static void judgeZChineseCharactor(String str){
        String regEx = "[\u4e00-\u9fa5]";
        //判断是否存在中文字符
        if (str.getBytes().length == str.length()){
            System.out.println("无汉字");
        }else{
            //如果存在中文字符,找出字符串中的中文字符
            Pattern p = Pattern.compile(regEx);
            Matcher m = p.matcher(str);
            while (m.find()){
                System.out.print(m.group(0)+"");
            }
        }
    }

    public static void main(String[] args) {
        judgeZChineseCharactor("Hello World");
        judgeZChineseCharactor("Hello 你好");
    }
}

结果为:

无汉字

你好

点赞