• Java常见面试题总结(一)


    一.简述Java语音的基础语法由哪些部分组成?

      1.关键字

      2.标识符

      3.注释

      4.常量和变量

      5.运算符

      6.语句

      7.函数(方法)

      8.数组

    二.简述你常用jdk中lang包和util包下类的名称

      Java.lang

          该包提供了Java编程的基础类,例如 Object、Math、String、StringBuffer、System、Thread等,不使用该包就很难编写Java代码了    

      java.lang:Boolean:将原始数据类型boolean对象化的类。该类的实例对象除了包含一个boolean值之外,还提供boolean String之间转化等处理boolean的方法。

        Long 、Integer 、Byte、Float:对象化类

        

        .Class :该类的实例对象表达Java应用中正在运行的类或者接口。该类没有公共的构造方法,所以不能由Java虚拟机自动实例化,而是由ClassLoader实例化

        .Math :供了基本的数学运算方法

      Java.util

          该包提供了包含集合框架、遗留的集合类、事件模型、日期和时间实施、国际化和各种实用工具类

        日期类Date

        随机数类Random

        向量类Vector:提供了向量(Vector)类以实现类似动态数组的功能。在Java语言中。正如在一开始就提到过,是没有指针概念的,为了弥补这点缺陷

        栈类Stack:Vecto的子类,提供了堆栈这种高级的数据结构

        LinkedList类、ArrayList类、HashMap类

        延伸

        java.io:该包通过文件系统、数据流和序列化提供系统的输入与输出。 

          java.awt:这两个包提供了GUI设计与开发的类。java.awt包提供了创建界面和绘制图形图像的所有类,而javax.swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同。

          java.sql:该包提供了使用Java语言访问并处理存储在数据源(通常是一个关系型数据库)中的数据API。

          java.net:该包提供实现网络应用与开发的类。

    三.如何提高反射的性能

          需要多次动态创建一个类的实例的时候写一个缓存

    四.有哪些主流的分布式数据库中间件

          

          

     五.jdbc如何实现具名参数

    https://www.cnblogs.com/longronglang/p/6271001.html

    六.写出两个正则表达式:验证十五号或者十八号的身份证号、以大写字母开头,长度6至12位,必须包含字母数字

      

    正则表达式

    十八位: ^[1-9]d{5}(18|19|([23]d))d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{3}[0-9Xx]$

    十五位: ^[1-9]d{5}d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{2}$

    简单的JS验证示例

      function isCardNo(card)
    {
    // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
    var reg = /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/;
    if(reg.test(card) === false)
    {
    alert("身份证输入不合法");
    return false;
    }
    }
    以大写字母开头,长度6至12位,必须包含字母数字js验证:^(?![^a-zA-Z]+$)(?!D+$)[a-zA-Z0-9]{6,}$
     

    七.写出Java中json遍历算法(请注意:有多级子节点) 

    八.基于Java反射技术设计ORM的解决思路 

    https://blog.csdn.net/u010005424/article/details/69789331

    九.什么是多线程,线程并发怎么解决

       进程可以简单的理解为一个可以独立运行的程序单位。它是线程的集合,进程就是有一个或多个线程构成的,每一个线程都是进程中的一条执行路径。

          那么多线程就很容易理解:多线程就是指一个进程中同时有多个执行路径(线程)正在执行。

    为什么要是用多线程(延伸)?

      优点:

      1.在一个程序中,有很多的操作是非常耗时的,如数据库读写操作,IO操作等,如果使用单线程,那么程序就必须等待这些操作执行完成之后才能执行其他操作。使用多线程,可以在将耗时任务放在后台继续执行的同时,同时执行其他操作。

      2.可以提高程序的效率。

      3.在一些等待的任务上,如用户输入,文件读取等,多线程就非常有用了。

      缺点:

      1.使用太多线程,是很耗系统资源,因为线程需要开辟内存。更多线程需要更多内存。

      2.影响系统性能,因为操作系统需要在线程之间来回切换。

      3.需要考虑线程操作对程序的影响,如线程挂起,中止等操作对程序的影响。

      4.线程使用不当会发生很多问题。

      总结:多线程是异步的,但这不代表多线程真的是几个线程是在同时进行,实际上是系统不断地在各个线程之间来回的切换(因为系统切换的速度非常的快,所以给我们在同时运行的错觉)

    线程并发怎么解决:

    十.列举最近阅读过的开源项目源码的项目名称  

      GitHub

  • 相关阅读:
    实现 (5).add(3).minus(2) 功能
    vue兄弟组件传值的三种方法
    Web渗透测试思路整理
    PHP代码审计基础
    简单易用,用Powershell劫持Windows系统快捷键
    javascript脚本混淆
    秒杀系统架构优化思路
    什么是OOP
    一分钟了解负载均衡的一切
    MVC
  • 原文地址:https://www.cnblogs.com/wh1997/p/10510837.html
Copyright © 2020-2023  润新知