Java笔试面试题整理第一波

本文整理了Java笔试面试中常见的知识点,包括Java变量、枚举、访问控制修饰符、编码转换、异常处理、线程安全等内容,详细解析了final和volatile的作用,以及线程安全的集合类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(本系列同步更新于 个人博客小站
本系列整理Java相关的笔试面试知识点,其他几篇文章如下:


1、Java变量

Java中主要有如下几种类型的变量
  • 局部变量
  • 类变量(静态变量)-- 属于类
  • 成员变量(非静态变量)-- 属于对象

2、关于枚举

  package com.scu.lly;
public class EnumTest {
/**
* 颜色枚举
*/
enum ColorEnum{
RED,
GREEN,
BLUE
}
/**
* 性别枚举
* 可用中文字符,不能单独使用数字
* (枚举值组成:字母、下划线)
*/
enum SexEnum{
男,
女,
MAN,
WOWAM
}
  /**
     * 1、带有构造方法的枚举,构造方法为只能为private(默认可不写private);
     * 2、含带参构造方法的枚举,枚举值必须赋值;
     * 3、枚举中有了其他属性或方法之后,枚举值必须定义在最前面,且需要在最后一个枚举值后面加分号";"
     */
    enum CarEnum{
        BMW("宝马",1000000),
        JEEP("吉普",800000),
        MINI("mini",200000);
        private String name;
        /**
         * 从这里可以看出虽然枚举值不能直接由数字组成,但是我们可以给该枚举类添加一个int类型的值,通过构造方法给其赋值,相当于间接的可以使用数值
         */
        private int price;
        private CarEnum(String name,int price){
            this.name = name;
            this.price = price;
        }
        //添加setter、getter方法
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getPrice() {
            return price;
        }
        public void setPrice(int price) {
            this.price = price;
        }
    }

    /**
     * 由于枚举类都继承了Enum类,故我们定义的enum都不能在继承其他类了,但是可以实现其他接口
     */
    enum CarSetEnum implements Car{
        BMW("宝马"),
        JEEP("吉普"),
        MINI("mini");
        private String name;
        private CarSetEnum(String name){
            this.name = name;
        }
        //添加setter、getter方法
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        @Override
        public void setCarName(String name) {
            this.name = name;
        }
    }

    public static void main(String[] args){
        ColorEnum color = ColorEnum.BLUE;
        switch(color){
        case RED:
            System.out.println("红色");
            break;
        case GREEN:
            System.out.println("绿色");
            break;
        case BLUE:
            System.out.println("蓝色");
            break;
        }
        getSelectedColor(color);
        //测试含构造方法的枚举
        System.out.println("吉普信息:"+CarEnum.JEEP.getName() + ":" +CarEnum.JEEP.price);
        for(CarEnum car : CarEnum.values()){
            System.out.println(car.name);
            System.out.println(car.getPrice());
        }

        //测试实现接口的枚举
        CarSetEnum.BMW.setName("加长宝马");
        System.out.println(CarSetEnum.BMW.getName());
    }

    public static ColorEnum getSelectedColor(ColorEnum color){
        ColorEnum result;
        switch(color){
        case RED:
            System.out.println("红色");
            break;
        case GREEN:
            System.out.println("绿色");
            break;
        case BLUE:
            System.out.println("蓝色");
            break;
        }
        result = color;
        return result;
    }

    interface Car{
        public void setCarName(String name);
    }

}

3、访问控制修饰符

修饰符 说明
private
私有的,在同一类内可见。
默认没写 同一包(包括子类和非子类)内可见。默认不使用任何修饰符。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值