Java面试题入门到高级

先给大家复习一下基础题!!!

Java基础是java初学者的起点,是帮助你从小白入门到精通必学基础课程!

 为初学者而著!

Java300集>>>适合准备入行开发的零基础员学习Java,基于最新JDK13、IDEA平台讲解的,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂,由浅入深。不仅适用于零基础的初学者,有经验的程序员也可做巩固学习。

 配套学习:Java初学者入门教程>>>

1:简述Java的基本历史

     java起源于SUN公司的一个GREEN的项目,其原先目的是为家用消费电子产品

     发送一个信息的分布式代码系统,通过发送信息控制电视机、冰箱等.

2:简单写出Java特点,写出5个以上,越多越好

简单的、面向对象的、分布式的、安全的、稳定的、与平台无关的、可解释的、多线的、动态的语言。

3:什么是Java?

   JAVA:一种编程语言

         一种开发环境

         一种应用环境

         一种部署环境

4:请写出Java的版本分类,以及每种版本的应用方向

   三种版本:

          J2ME:是面向内存有限的移动终端. 为消费性产品设计的

J2SE: 是SUN公司针对桌面开发和低端商务计算方案开发的版本。为笔记本电脑、PC机设计的

J2EE: 是一种利用JAVA 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。 为企业级的、服务器端的高端应用而设计的 

5:描述Java技术的主要特性 

   java虚拟机

   垃圾回收

   代码安全性

6:描述 Java虚拟机的功能

   提供硬件平台规范

   解读独立于平台的已编译的字节码

   可当作硬件或软件来实现

   可以在JAVA技术开发工具上或在WEB浏览器上实现

7:简述Java代码安全性

   1.字节码校验

   2.沙箱机制,提供的安全机制

8:简述Java代码的运行过程

     加载代码   通过类装载器装载CLASS文件

     校验代码   由字节码校验

     执行代码   由解释器将字节码转换成机器码

9:简述如何搭建Java开发环境

    首先下载安装JDK 然后配置环境 

    1. 配置PATH,

    2. 配置CLASSPATH 

    3. 配置JAVA_HOME

10:简述classpath,path,JAVA_HOME的意义和配置方法

    path          操作系统运行环境的路径

    classpath      JAVA运行应用程序时所需要的类包路径

    JAVA_HOME  供需要运行JAVA的程序使用

11:请描述:一个完整的Java文件的代码分几个部分,每部分都起什么作用,大致的写法

   package 当前类所在位置 

   import  当前类运行时所需要的包或类

   public class 类名 {

        属性定义;

        方法定义:

        构造方法定义;

        public static void main(String args []) 例外{   程序入口

          语句;

        }}

   注释

12:Java代码的注释有几种?分别举例说明

   1.  //  单行注解

   2.  /*     */ 块注释

   3.  /* *

        *  文档注释

        */

13:什么是Java代码的语句,什么是Java代码的块,举例说明 

   语句 是一行以分号终止的代码,例:int a;

   块 是以{ }为边界的一些语句的集合 例:public void tt(){}

14:什么是标示符?

   标识符:是赋予变量、类、方法的名称。

15:标示符定义的规则?

    1.首字母只能以字母、下划线、$开头,其后可以跟字母‘下划线、$和数字

    2.首字母小写中间用大写字母隔开

    3.标识符具有一定的含义 

16:什么是关键字?

   关键字就是编程语言与机器语言的编码约定

17:true、false、null、sizeof、goto、const那些是Java关键字 

    true 、false 、null    为JAVA的关键字

18:Java的基本数据类型有几种?分别是? 

    short int long  boolean float double char byte

19:请写出每种基本类型的默认值?取值范围?分别给出一个定义的例子

             默认值           取值范围         

   字节型 :  0                -2^7----2^7-1

   字符型 :  ' \u0000'            0----2^16-1

   short  :    0                 -2^15----2^15-1

   int    :    0                 -2^31----2^31-1

   long   :    0                -2^63----2^63-1

   float  :     0.0f               -2^31----2^31-1 

   double :    0.0d              -2^63----2^63-1

   boolean:    false              true\false 

20:在基本类型中,如果不明确指定,整数型的默认是什么类型?带小数的默认是什么类型? 

    整数类型 默认为  int

    带小数的默认为   double

21:如何定义float类型和long型

    float f = 1.2f

    long  l = 1.2L

22:什么是变量?  

     变量:一种在程序中可以改变的标识符

23:变量的定义规则?

    1.首字母小写中间用大写字母隔开 其后可以跟字母‘下划线、$和数字

    2.具有一定含义

    3.首字母必须是字母、$、下划线,

24:请写出Java编码约定中对下列部分的要求:类、属性、方法、包、文件名、变量、

常量、控制结构、语句行、注释

    类:    一个类文件中类名要和文件名相同,类名一定要以大写字母开头单词之间用大写字母分隔

    属性:  属性名首字母小写中间用大写字母隔开

    方法:  方法名首字母小写中间用大写字母隔开

    包:    引用包必须写在类文件的开头,有且只能有一个包 全部用小写字母

    控制结构:当语句是控制结构的一部分时,即使是单个语句,也应使用大括号将语句

封闭:

    语句行:每行只写一个语句,并使用四个缩进的空格,使代码更易读,注意用分号结束;

注释:  用注释来说明那些不明显代码的段落;

常量: 常量名一般用大写字母,单词之间用下划线分隔,一旦赋值不允许修改

25:什么是Javadoc?

    按照一定格式生成程序的文档的工具

26:什么是引用类型?

     一个用户定义类型, 它可引用类和数组。

27:什么是按值传递?什么是按引用传递?

    值传递 : 就是将该值的副本传过去(基本数据类型+String类型的传递,就是按值传递)

    按引用传递 : 就是将值的内存地址传过去(除基本数据类型+String以外类型的传递,就是引用传递)

28:那些是按值传递?那些是按引用传递?

    基本数据类型+String类型  按值传递

    除基本数据类型+String类型以外,比如Model s[] 按引用传递

29:如何创建一个新对象?如何使用对象中的属性和方法?

    public class  S{}

    通过对象的实例 用(.)来调用属性和方法;

     静态的方法和属性,也可以直接用类(.)来调用;

30:简述new关键字所做的工作

    new 关键字就是为事先声明的对象分配一块内存区域;

31:简述”=” 和”==”的功能和区别

"="赋值,"= ="判断= =前后两个值得内存地址是否相等;   

区别:

    = :为赋值表达式

    = = :为逻辑表达式

32:什么是实例变量?什么是局部变量?什么是类变量?什么是final变量?

   实例变量: 类中定义的变量,即类成员变量,如果没有初始化,会有默认值;

     局部变量: 在方法中定义的变量,必须初始化;

     类变量:   用static可修饰的属性;

     final变量: final属性只允许赋值一次,且只能通过构造方法赋值;定义后也就

是一个常量;

33:简述上述各种变量的定义规则和使用规则?

实例变量:它不需要static关键字来声明,只要对象被当作引用,实例变量就将存在;

      局部变量:在方法内任意定义变量即为局部变量;

      类变量:必须用static修饰;

      final变量:不可以在修改的

34:a++和++a的区别?

  a++ : 先使用,后加1

      ++a : 先加1,后使用

34:请描述instanceof、?:、&、&&各自的功能

     instanceof :用来判断某个实例变量是否属于某种类的类型。

     ?: 三目运算符:    

     表达式1?表达式2:表达式3

     如果表达式1为true,执行表达式2,否则执行表达式3

     &: 位运算:按位与

     &&: 逻辑运算:逻辑与

35:请描述>>、<<、>>>的功能

    >>  :算术或符号右移位运算符

    <<  :算术或符号右移位左移运算符

    >>> :逻辑或非符号右移位运算符

36:请描述什么是强制类型转换?什么是自动类型转换?什么是向上造型?

并分别举例说明

  强制类型转换:在一个类型前面加(),来强制转换

long l = 9L;

int i = (int)l;

     自动类型转换:

       int i = 5;

        String str = ""+i;

      向上造型:把范围小的造型为范围大的类型,

        int i = 2;

        long l = i;

37:请写出完整的if条件控制语句的结构

    if(布表达式){

        语

    }else{

    }

38:请写出完整的switch语句的结构

    switch(字符){

      case 字符: 语句

              break;

      case 字符: 语句

              break;

      default:语句

    }

39:请写出完整的for语句的结构

  for(初始语句;条件语句;步长){

  }

40: 请写出完整的while语句的结构

    while(boolean语句){

    }

41:请写出完整的do while语句的结构

    do{

    }while(boolean语句);

42:请描述break 和 continue的功能和用法

    break:终止最近的循环

    continue:跳出本次循环,执行下一次循环

//以上不完全

43:定义一个一维的int数组,先创建它,并初始化它,给它赋值,然后输出其中的一个值

   public class Arr{

     public static void main(String args[]){

    int a[] = new int[5];

    a={1,2,3,4,5};//错误 , 只能在初始化时这样做

        a[0]=1;

        a[1]=2;

    System.out.println(a[0]);

     }

    }

44:定义一个一维的A类型数组,直接定义并赋值,然后输出其中的一个值

    public class A{

     public static int i;

     public static void main(String args[]){

        A aa = new A();

        A bb = new A();

    A a[] = {aa,bb};

        a[0].i=2;

     System.out.println(a[0]);

     }

    }

45:把上面的数组改成2维的数组

   public class A{

     public static int i;

     public static void main(String args[]){

    A a[][] = new A[5][5];

     a[0][0].i=2;

    System.out.println(a[0][0]);

     }

    }

46:举例说明数组拷贝方法的使用:arraycopy方法

   public class A{

        public static void main(String args[]){

     int a[] = new int[5];

     int b[] = new int[5];

        System.arraycopy(a[5],0,b[5],0,a.length)

     System.out.println(b[0][0]);

     }

    }

大伙伴们需要巩固Java基础的可以复习一下>>>

Spring基础教程>>>

MyBatis基础教程>>>

小伙伴如果想要学习更多的知识,学习材料可以,工众号:编程领域

Java初学者学习教程:Java初学者入门教程>>>

Guess you like

Origin blog.csdn.net/asdfdghjkl/article/details/120825300