【笔记】Java相关大杂烩①

【笔记】Java相关大杂烩

Java 程序的执行流程是?

*.java 文件-->*.class 文件-->类装载器-->字节码校验器-->解释器-->操作系统平台

Java 程序执行时哪一个环节会测试代码段格式和规则检查?

字节码校验器

字节码校验器其功能是对字节码文件进行校验,保证代码的安全性。字节码校验器负责测试代码段格式并进行规则检查,检查伪造指针、违反对象访问权限或试图改变对象类型的非法代码。

Java 程序之所以可以跨平台运行,主要是依赖于哪一个环节?

解释器

具体的平台并不认识字节码文件,最终起作用的还是这个最重要的解释器,它将字节码文件翻译成所在平台能识别的东西。

Java 中的垃圾回收机制不具备什么特点?

Java 中的垃圾回收机制不需要编写代码来释放内存空间。

Java 三大体系?

JavaSE、JavaEE、JavaME。

JavaSE 是标准版,主要是基础的建设;JavaEE 是企业版,主要是企业应用的开发和规范;JavaME 是嵌入版,主要是早期嵌入式应用。

Java 三大核心机制?

分别是 JVM、GC、CS。

JVM 是 Java 虚拟机,GC 是 Java 自动垃圾回收机制,CS 是 Java 代码安全检测。

JVM 实现了一处编译到处运行,GC 让程序员可以更方便的对内存进行操作使用,CS 完全是底层完成的安全性处理。

Java之父?

詹姆斯·高斯林(James Gosling)

sysout输出是不是必要英文双引号?

字符串要加,变量不用加

同时System.out.println("HelloWorld!");以及System.out.print("HelloWorld!");都是可以输出的

Java 语言是 Sun 公司研发的一种脚本语言?

Java 语言是 Sun 公司研发的一种编程语言,而不是脚本语言。

无论何种情况下,都必须安装 JDK ,才能运行 Java 程序吗?

DK 是 Java 语言的开发套件,只有需要开发的请求下需要安装 JDK ,运行 Java 程序只需安装 JRE 即可。

Java 哪种变量名最合适?

对于变量名和方法名,建议第一个单词应以小写字母作为开头,后面的每个单词则都要以大写字母开头,例如 eatFish、sendMessage。

哪些地方可以加文档注释?

文档注释可以修饰的是public 修饰的类和接口,public 和 protected 修饰的方法

常量的定义方式?

Java 中常量要使用 final 关键字来修饰,放到数据类型 int 前面,常量名最好是全大写。

Java 中 int 类型数据占有多少个字节的存储空间?

Java 中 int 类型数据占有 4 个字节的存储空间。

布尔型变量定义?

Java 中布尔型数据关键字为 boolean,值为 true 和 false。

浮点型数据表示?

Java 中 float 类型的数据可以加 f 来标识,double 类型的数据可以加 d 来标识,如果一个小数不加 f 和 d,那么默认是 double 类型

Java 中引用数据类型包含哪些?

Java 中引用数据类型包含有数组、类和接口三种类型。

Java 中数据类型转换?

Java 中四种整数之间的转换,小范围的可以自动转换为大范围的,大范围的需要强制转换为小范围的

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

从结构中我们可以看到,条件运算符是由问号和冒号组成的,? 左边的表达式 1 必须返回 boolean 类型值,需要根据布尔值来确定执行后 : 左边还是右边的表达式,当表达式 1 返回 true 时,执行 表达式 2,当返回值为 false 时,执行 表达式 3。

移位运算符的使用

        int a = 10;
        // 无符号右移,移动 3 位
        int b = a >>> 3;
        System.out.println(b);
        // 左移,移动 3 位
        int c = a << 3;
        System.out.println(c);
        // 右移,移动 32 位
        int d = a >> 32;

完成在控制台输入一个三位数,判断该数是否为水仙花数。

import java.util.Scanner;

public class Narcissus {
    public static void main(String[] args) {
        /*水仙花数(Narcissistic number)
        也被称为超完全数字不变数
        (pluperfect digital invariant, PPDI)、
        自恋数、自幂数、
        阿姆斯壮数或阿姆斯特朗数(Armstrong number),
        水仙花数是指一个 3 位数,
        它的每个位上的数字的 3 次幂之和等于它本身。*/
        System.out.println("请输入一个三位整数:");
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
		int n = num / 100;
		int u = num / 10 % 10;
		int m = num % 10;
		if(n * n * n + u * u * u + m * m * m == num) {
				System.out.print(num + "是水仙花数");
		}else{
                System.out.print(num + "不是水仙花数");
        }
    }
}

Java 中以下代码
int a = 1;
boolean b = (a>0) || (a++>1);
执行后,变量 a 和 b 的值为?

(1>0) 为 true;因为 || 为短路或,所以后面的 (a++>1) 已经没有必要计算判断了,所以 a 的值为 1,b 的值为 true。

Java 中以下代码 int a = 3 & 4; 执行后,变量 a 的值为?

3 二进制为 0000 0000 0000 0011,4 二进制为 0000 0000 0000 0100,3 & 4 后为 0000 0000 0000 0000,值为 0。

Java 中以下代码 int a = 3 | 4; 执行后,变量 a 的值为?

3 二进制为 0000 0000 0000 0011,4 二进制为 0000 0000 0000 0100,3 | 4 后为 0000 0000 0000 0111,值为 7。

Java 中以下代码 int a = 4 ^ 5; 执行后,变量 a 的值为?

4 二进制为 0000 0000 0000 0100,5 二进制为 0000 0000 0000 0101,4 ^ 5 后为 0000 0000 0000 0001,值为 1。

Java 中以下代码 int a = ~3; 执行后,变量 a 的值为?

3 二进制为 0000 0000 0000 0011,~3 之后的值为 1111 1111 1111 1100(补码),转换为原码(最高位不变,其余位取反后+1):1000 0000 0000 0011+1=1000 0000 0000 0100,该值为 -4。

Java 工程师的月薪按以下方式计算:
Java 工程师月薪 = 月底薪 + 月实际绩效 + 月餐补 - 月保险
其中:
月底薪为固定值。
月实际绩效 = 月绩效基数(月底薪 × 25% )× 月工作完成分数(最小值为 0,最大值为 150 )/ 100。
月餐补 = 月实际工作天数 × 15。
月保险为固定值。
计算 Java 工程师月薪时,用户键盘输入月底薪、月工作完成分数(最小值为 0,最大值为 150)、月实际工作天数和月保险 4 个值,需要按该顺序进行代码编写,便可以计算出 Java 工程师月薪

import java.util.Scanner;

class CalSalary {
    public static void main(String[] args) {
        //Java工程师月薪
        double engSalary = 0.0;
        //底薪
        int basSalary = 3000;
        //月工作完成分数(最小值为0,最大值为150)
        int comResult = 100;
        //月实际工作天数
        double workDay = 22;
        //月应扣保险数
        double insurance = 3000 * 0.105;
        //从控制台获取输入的对象
        Scanner input = new Scanner(System.in);
        System.out.print("请输入Java工程师底薪:");
        //从控制台获取输入—底薪,赋值给basSalary
        basSalary = input.nextInt();
        System.out.print("请输入Java工程师月工作完成分数(最小值为0,最大值为150):");
        //从控制台获取输入—月工作完成分数,赋值给comResult
        comResult = input.nextInt();
        System.out.print("请输入Java工程师月实际工作天数:");
        //从控制台获取输入—月实际工作天数,赋值给workDay
        workDay = input.nextDouble();
        System.out.print("请输入Java工程师月应扣保险数:");
        //从控制台获取输入—月应扣保险数,赋值给insurance
        insurance = input.nextDouble();
        /*Java工程师月薪= 底薪 + 底薪×25%×月工作完成分数/100
                        + 15×月实际工作天数-月应扣保险数*/
        engSalary = basSalary + basSalary * 0.25 * comResult / 100
                  + 15 * workDay - insurance;
        System.out.println("Java工程师月薪为:" + engSalary);
    }
}

Java 中以下代码
int a = 2;
a+=a*=a;
执行后,变量 a 的值为?

a+=a*=a 等价于 a = a + (a * a) = 2 + (2 * 2) = 6。

常量要求?

常量声明时必须使用 final 关键字进行修饰,常量命名时,需要字母全部大写,中间可以用下划线分隔,不建议使用美元符。

计算任意圆的半径:
需要将半径 r 定义为整型,PI 定义为单精度浮点型常量 3.14,面积 s 定义为单精度浮点型。
半径必须是由键盘输入的数据,需要有提示字符串 “请输入圆的半径:”。

import java.util.Scanner;
public class Circle {
public static void main(String[] args) {
double r;
double s;
System.out.println("请输入圆的半径:");
Scanner in = new Scanner(System.in);
r=Double.parseDouble(in.nextLine());
s=Math.PI*r*r;
float a = (float) s;
System.out.println("圆的面积:" + a);
}
}

同理,计算正方体体积的

import java.util.Scanner;
public class Cube {
public static void main(String[] args) {
double r;//int也可
double s;//int也可
System.out.println("请输入正方体的边长:");
Scanner in = new Scanner(System.in);
r=Double.parseDouble(in.nextLine());
s=r*r*r;//int也可
float a = (float) s;//int也可
System.out.println("该正方体的体积为:" + a);
}
}

计算圆柱体的

import java.util.Scanner;
    public class Cylinder {
    public static void main(String[] args) {
    double r;//int也可
    float s;//int也可
    double h;//int也可
    int a;
    int b;
    System.out.println("请输入圆柱底面半径:");
    Scanner in = new Scanner(System.in);
    //r=Double.parseDouble(in.nextLine());
    a=Integer.parseInt(in.nextLine());
    System.out.println("请输入圆柱的高:");
    Scanner nn = new Scanner(System.in);
    //h=Double.parseDouble(nn.nextLine());
    b=Integer.parseInt(nn.nextLine());
    s=(float) (3.14*a*a*b);//int也可
    //float aa = (float) s;//(Math.round(s*10))/10;//int也可
    System.out.println("该圆柱体的体积为:" + s);
    }
}
--------------or-----------------
import java.util.Scanner;
    public class Cylinder {
    public static void main(String[] args) {
    float s;
    float ss;
    int a;
    int b;
    System.out.println("请输入圆柱底面半径:");
    Scanner in = new Scanner(System.in);
    a=Integer.parseInt(in.nextLine());
    System.out.println("请输入圆柱的高:");
    Scanner nn = new Scanner(System.in);
    b=Integer.parseInt(nn.nextLine());
    s=(float) (3.14*a*a);
    ss = s*b;
    System.out.println("该圆柱体的体积为:" + ss);
    }
}

------------------or 输入样式是5 5这种的--------------
import java.util.Scanner;

    public class Cylinder {
    public static void main(String[] args) {
    float s;
    float ss;
    System.out.println("请输入圆柱底面半径:");
    Scanner in = new Scanner(System.in);
    String aaa = in.nextLine();
    String[] arr = aaa.split(" ");
    //System.out.println(arr[0] + arr[1]);
    int a = Integer.valueOf(arr[0]).intValue();
    int b = Integer.valueOf(arr[1]).intValue();
    //System.out.println(a + b);
    //int a =  in.nextInt();
    System.out.println("请输入圆柱的高:");
    //Scanner nn = new Scanner(System.in);
    //int b =  nn.nextInt();
    s=(float) (3.14*a*a);
    ss = s*b;
    System.out.println("该圆柱体的体积为:" + ss);
    }

    private static int stoi(String a1) {
        return 0;
    }
}
posted @ 2022-09-26 21:57  DbWong_0918  阅读(84)  评论(0编辑  收藏  举报