首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java笔试题

Java笔试题

作者头像
chenchenchen
发布于 2022-11-29 13:01:40
发布于 2022-11-29 13:01:40
45800
代码可运行
举报
文章被收录于专栏:chenchenchenchenchenchen
运行总次数:0
代码可运行

推荐合集

https://blog.csdn.net/shakespeare001/article/details/51151650

牛客网

18-05-02

1、对属性使用getter和setter方法,体现的是注入性。

2、构造函数constructor

    A.构造函数可以省略,省略构造函数则new对象实例时,所有的数据类型赋值为0,bool类型赋值为FALSE,引用类型赋值为NULL。

    B.构造函数必须与类同名,而且不能有返回类型。而方法是可以与类同名的,但是必须声明返回数据类型,改变大小写即可。比如

    C. constructor在一个对象被new时执行,当new对象是首先调用静态初始数据块(可省略),然后调用父类构造函数(不是子类则不调用),最后调用自己的构造函数(一定调用),这样才能生成一个对象的实例。

    D. 一个类可以有多个重载的构造函数,重载的要求是参数不同。

3、Java初始化顺序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class A{
    static {
        System.out.println("父类静态代码块");
    }
    public A(){
        System.out.println("父类构造方法");
    }
    {
        System.out.println("父类初始化块");
    }
}
public class B extends A{
    static{
        System.out.println("子类静态代码块");
    }
    public B(){
        System.out.println("子类构造方法");
    }
    {
        System.out.println("子类初始化块");
    }
    public static void main(String[] args){
        new B();
    }
}

静态块:用static申明,JVM加载类时执行,仅执行一次,且按声明顺序执行, 静态成员初始化-->静态代码块初始化-->静态方法初始化

构造块:类中直接用{}定义,每一次创建对象时执行

顺序:父类静态代码块-->子类静态代码块-->父类普通代码块-->父类构造方法-->子类代码块-->子类构造方法;

类实例销毁:首先销毁子类部分,再销毁父类部分

4、线程中run()和start()的区别

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
创建一个线程  Thread t1 = new Thread()

t1.run();  只是调用了一个普通方法,并没有启动另一个线程,程序还是会按照顺序执行相应的代码。

t1.start();  则表示,重新开启一个线程,不必等待其他线程运行完,只要得到cup就可以运行该线程。

比如下边的一个例子:

[java] view plain copy
<pre name="code" class="java">public class demo1 {  
    public static void main(String args[]) {    
        Thread t = new Thread() {    
            public void run() {    
                pong();    
            }    
        };    
        t.start();    //pingpong
//        t.run();  //pongping
        System.out.print("ping");    
    }    
    static void pong() {    
        System.out.print("pong");    
    }  
}  

5、父类Super,子类Sub extends Super

static修饰的静态成员被所有的成员所共享,静态方法不支持多态性,用那种类型声明,调用方法时就是哪种类型的方法,eg:父类变量指向子类对象时,父类变量调用的静态方法是其本身的静态方法

加载子类之前先加载父类。

Sub   sub =  new Sub( ); 直接调用子类

Super supsub= new Sub( ); 调用静态方法时则调用申明类型,父类。

Super supsub=   new Super( ); 对于Super supsub=  new Sub( )的访问特点:成员变量是编译看左,运行看左,所以用的是父类的成员变量;成员方法是编译看左,运行看右,运行的是子类的方法;静态方法同成员变量,编译看左运行看左

6、现在有以下语句:

Integer i01 =  59 ; int i02 =  59 ; Integer i03 =Integer.valueOf( 59 ); Integer i04 =  new Integer( 59 )。

Integer i01=59 的时候,会调用 Integer 的 valueOf 方法,

1 2 3 4 5

public static Integer valueOf( int i) {       assert IntegerCache.high>=  127 ;       if (i >= IntegerCache.low&& i <= IntegerCache.high)       return IntegerCache.cache[i+ (-IntegerCache.low)];       return new Integer(i); }

这个方法就是返回一个 Integer 对象,只是在返回之前,看作了一个判断,判断当前 i 的值是否在 [-128,127] 区别,且 IntegerCache 中是否存在此对象,如果存在,则直接返回引用,否则,创建一个新的对象。

在这里的话,因为程序初次运行,没有 59 ,所以,直接创建了一个新的对象。

int i02=59 ,这是一个基本类型,存储在栈中。

Integer i03 =Integer.valueOf(59); 因为 IntegerCache 中已经存在此对象,所以,直接返回引用。

Integer i04 = new Integer(59) ;直接创建一个新的对象。

System. out .println(i01== i02); i01 是 Integer 对象, i02 是 int ,这里比较的不是地址,而是值。 Integer 会自动拆箱成 int ,然后进行值的比较。所以,为真。

System. out .println(i01== i03); 因为 i03 返回的是 i01 的引用,所以,为真。

System. out .println(i03==i04); 因为 i04 是重新创建的对象,所以 i03,i04 是指向不同的对象,因此比较结果为假。

System. out .println(i02== i04); 因为 i02 是基本类型,所以此时 i04 会自动拆箱,进行值比较,所以,结果为真。

7、

SpringMVC的原理:

    SpringMVC是Spring中的模块,它实现了mvc设计模式的web框架,首先用户发出请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handler,并返回一个执行链,前端控制器再请求处理器适配器调用相应的handler进行处理并返回给前端控制器一个modelAndView,前端控制器再请求视图解析器对返回的逻辑视图进行解析,最后前端控制器将返回的视图进行渲染并把数据装入到request域,返回给用户。

DispatcherServlet作为springMVC的前端控制器,负责接收用户的请求并根据用户的请求返回相应的视图给用户。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Integer、new Integer() 和 int 比较的面试题
https://www.cnblogs.com/cxxjohnson/p/10504840.html
java思维导图
2019/08/23
8580
傻傻分不清?Integer、new Integer() 和 int 的面试题
1、Integer 是 int 的包装类,int 则是 java 的一种基本数据类型 2、Integer 变量必须实例化后才能使用,而int变量不需要 3、Integer 实际是对象的引用,当new一个 Integer时,实际上是生成一个指针指向此对象;而 int 则是直接存储数据值 4、Integer的默认值是null,int的默认值是0
Java技术栈
2019/10/22
4080
Java每日一练(2017/6/13)
Java基础 | 数据库 | Android | 学习视频 | 学习资料下载 课前导读 ●回复"每日一练"获取以前的题目! ●答案公布时间:为每期发布题目的第二天 ★【新】回复“测试题”获取昨天发布的软件工程师初级阶段测试题答案 ●我希望大家积极参与答题!有什么不懂可以加小编微信进行讨论 ★珍惜每一天,拼搏每一天,专心每一天,成功每一天。 题目要求 本期题目: (单选题) 1以下Java程序运行的结构是: public class Tester{ public static void main(Stri
Java学习
2018/04/16
8451
Java面试题总结
自增变量 主要是对 i++ 和 ++i 的理解 public class Test01 { public static void main(String[] args) { // 变量自增 i++ ++i的理解 int i = 1; i = i++; // int j = i++; int k = i + ++i * i++; System.out.println("i=" + i);
shaoshaossm
2022/12/27
3090
Java面试题总结
一篇文章搞明白Integer、new Integer() 和 int 的概念与区别
1、Integer 是 int 的包装类,int 则是 java 的一种基本数据类型
程序员追风
2019/08/25
1.8K0
一篇文章搞明白Integer、new Integer() 和 int 的概念与区别
【Java面试题】——this 和 super 的区别
this关键字代表当前对象的引用,它指向调用当前方法的对象。在类的方法中,使用 this 可以明确地访问当前对象的属性和方法,尤其是在方法参数与类的成员变量同名的情况下, this 可以避免歧义。
User_芊芊君子
2025/05/15
690
【Java面试题】——this 和 super 的区别
Java面向对象编程高级
在main方法中定义一个变量count,当一个小孩加入游戏后count++,最后个count 就记录有多少小孩玩游戏 。
timerring
2023/04/21
1.6K0
Java面向对象编程高级
Java基础系列5:Java代码的执行顺序
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架。
说故事的五公子
2019/11/14
8430
Java继承、final/protected说明、super/this辨析
上面的这个animal就是基类,我们的这个dog和bird都是继承这个基类的特征,使用的是extends这个关键字,表示我们的子类继承父类,父类的这个成员变量和成员方法我们子类都会拥有的;
阑梦清川
2025/02/24
1110
Java继承、final/protected说明、super/this辨析
Java常见关键字总结:static,final,this,super
这次复习的知识点是面向对象的关键字static,final,this,super,一些注意的点和知识点。
用户7886150
2020/12/13
5800
【Java】继承、super、final、子类构造方法
Java中使用类对现实中实体进行描述,类经过实例化之后的产物对象则可以用来表示现实中的实体,但是现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序时就需要考虑如何简化。
椰椰椰耶
2024/10/15
2430
【Java】继承、super、final、子类构造方法
实训day05--静态,继承
2018.06.08 1.private关键字 权限修饰符 修饰类,方法,属性,构造函数 最常用的形式: 把成员变量用private修饰 提供相应的get/set方法
曼路
2018/10/18
3790
25道Java基础面试题
如果值的范围在-128到127之间,它就从高速缓存返回实例。否则 new 一个Integer对象。new Integer 就是一个装箱的过程了,装箱的过程会创建对应的对象,这个会消耗内存,所以装箱的过程会增加内存的消耗,影响性能。
HaC
2020/12/30
4640
25道Java基础面试题
Java 基础高频面试题(2021年最新版)
因此,我花了几天时间整理了一些时下高频的 Java 基础题目,并反复斟酌,给出符合当前版本的解析。
Java架构师必看
2021/06/17
5840
Java 基础高频面试题(2021年最新版)
java 语言【继承和多态】
Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是 现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序是就需要考虑。 比如:狗和猫,它们都是一个动物。 使用Java语言来进行描述,就会设计出:
用户11319080
2024/10/17
1580
java 语言【继承和多态】
Java几个重要关键字的使用
跟类相关:package(包) class(类) abstract(抽象) extends(继承) implements(实现) interface(接口)
用户7886150
2020/12/13
3250
【Java SE】继承
从继承概念中可以看出继承最大的作用就是:实现代码复用,还有就是来实现多态(后序讲) 
用户11369558
2024/11/20
2240
【Java SE】继承
全面理解Java中继承关系
继承是面向对象思想的三大特性之一,使类与类之间产生特殊 - 一般的关系,即is-a关系。继承是从已有类中派生出新的类,新的类能吸收已有类的属性和方法,并且能拓展新的属性和行为。在Java中使用extends关键字表示继承,语法表示为: class 子类 extends 父类{}子类被称为派生类,父类又被称为超类。子类继承父类,表名子类是一种特殊的父类,子类拥有父类的属性和方法,并且子类可以拓展具有父类所没有的一些属性和方法。子类即是不扩展父类,也能维持拥有父类的操作。
用户7886150
2021/01/30
1.7K0
程序员的56大Java基础面试问题及答案
首先,属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。
鱼找水需要时间
2023/12/23
2420
程序员的56大Java基础面试问题及答案
Java中静态代码块、构造代码块、构造函数、普通代码块
  在Java中,静态代码块、构造代码块、构造函数、普通代码块的执行顺序是一个笔试的考点,通过这篇文章希望大家能彻底了解它们之间的执行顺序。
IT可乐
2022/05/09
2.4K0
Java中静态代码块、构造代码块、构造函数、普通代码块
相关推荐
Integer、new Integer() 和 int 比较的面试题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档