【笔记】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;
}
}

【笔记】Java相关大杂烩①的更多相关文章

  1. 《深入了解java虚拟机》高效并发读书笔记——Java内存模型,线程,线程安全 与锁优化

    <深入了解java虚拟机>高效并发读书笔记--Java内存模型,线程,线程安全 与锁优化 本文主要参考<深入了解java虚拟机>高效并发章节 关于锁升级,偏向锁,轻量级锁参考& ...

  2. 找工作--Java相关

    Hi 各位 首先自我描述一下,80后程序员,现在在做Eclipse插件开发. 求Java相关职位(Java/Swing/Eclipse Plugin/Python etc), 或者Linux下C相关职 ...

  3. PHP笔记——java程序员看懂PHP程序

    PHP笔记——java程序员看懂PHP程序   php是一种服务器端脚本语言,类型松散的语言. <?php   ?>       xml风格 <script language=”ph ...

  4. 收集一些java相关的文章

    有些文章看了,以后想再看已经忘了在哪里了.故在此一一记录下那些值得看的文章. 1:如何确定Java对象的大小 中文版本 :http://article.yeeyan.org/view/104091/6 ...

  5. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  6. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  7. 分享一些JAVA相关资源

    前言 以前在学习JAVA时,因为搜索相关资源过于不便,所以在搜集了一些好用的资源之后,将此分享. 文档主要包括面试文档, JAVA的技术文档(如JAVA并发实战.设计模式之类),LINUX的相关文档以 ...

  8. 【java】Java相关学习参考链接(持续更新)

    How to do in java,https://howtodoinjava.com/,Java手册,分版本,并且有每个版本的新特性的详细解析. Java World,https://www.jav ...

  9. MySQL学习笔记-事务相关话题

    事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...

  10. Java 笔记 —— java 和 javac

    Java 笔记 -- java 和 javac h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: ...

随机推荐

  1. LinuxDNS分析从入门到放弃(记一次有趣的dns问题排查记录,ping 源码分析,getaddrinfo源码分析)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   ubuntu 18.04 前言   我们这里有一块 ...

  2. Ubuntu 14.04 Intel 处理器 硬编解码配置(Intel® Media Server Studio)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  3. MapStructPlus 1.4.0 发布,体积更轻量!性能更强!

    MapStruct Plus 是 MapStruct 的增强工具,在 Mapstruct 的基础上,实现了自动生成 Mapper 接口的功能,并强化了部分功能,使 Java 类型转换更加便捷.优雅. ...

  4. 云化XR,如何助力产业升级

    XR(Extended Reality)是指借助计算机图形技术和可穿戴设备所生成的一个真实与虚拟组合的.可人机交互的环境.XR中的"X"只是一个变量,可以代表任何字母,包括VR(V ...

  5. vscode插件设置——Golang开发环境配置

    适用读者: Go初学者, 到这里, 你应该是处于已经完成了 go 的安装之后, 准备写个 "Hello Gopher" 之前. 本篇力求给初学者-未来的Gopher 们 一个正确的 ...

  6. 《On Java 8》笔记 2

    第十一章 内部类 Java 8 的 Lambda 表达式和方法引用减少了编写内部类的需求 外部类可以提供一个方法返回一个指向内部类的引用 链接外部类 内部类还拥有其外部类的所有元素的访问权 使用 .t ...

  7. KingbaseES创建外键与Mysql的差异

    Mysql mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.23 | +-----------+ ...

  8. 电影数据集【可供机器学习附爬虫源码】(豆瓣、爱奇艺、IMDB、腾讯视频等)

    电影数据集(豆瓣.爱奇艺.IMDB.腾讯视频.搜狐.1905) 爬虫爬取豆瓣.爱奇艺.IMDB.腾讯视频.搜狐.1905网,电影数据. 获取方式:微信搜索关注[靠谱杨阅读人生]回复[电影]. 整理不易 ...

  9. Spring Bean 的一生

    Spring Bean 的一生包括其从创建到消亡的整个过程: 实例创建 => 填充 => 初始化 => 使用 => 销毁. 这里需要注意的是,从 bean 实例的创建到可以使用 ...

  10. 浅谈JVM整体架构与调优参数

    本文分享自华为云社区<[性能优化]JVM整体架构与调优参数说明>,作者: 冰 河. JVM的分类 这里,我们先来说说什么是VM吧,VM的中文含义为:虚拟机,指的是使用软件的方式模拟具有完整 ...