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

原文地址:https://www.cnblogs.com/wh1997/p/10510837.html