【笔记】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;
}
}
【笔记】Java相关大杂烩①的更多相关文章
- 《深入了解java虚拟机》高效并发读书笔记——Java内存模型,线程,线程安全 与锁优化
<深入了解java虚拟机>高效并发读书笔记--Java内存模型,线程,线程安全 与锁优化 本文主要参考<深入了解java虚拟机>高效并发章节 关于锁升级,偏向锁,轻量级锁参考& ...
- 找工作--Java相关
Hi 各位 首先自我描述一下,80后程序员,现在在做Eclipse插件开发. 求Java相关职位(Java/Swing/Eclipse Plugin/Python etc), 或者Linux下C相关职 ...
- PHP笔记——java程序员看懂PHP程序
PHP笔记——java程序员看懂PHP程序 php是一种服务器端脚本语言,类型松散的语言. <?php ?> xml风格 <script language=”ph ...
- 收集一些java相关的文章
有些文章看了,以后想再看已经忘了在哪里了.故在此一一记录下那些值得看的文章. 1:如何确定Java对象的大小 中文版本 :http://article.yeeyan.org/view/104091/6 ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- 分享一些JAVA相关资源
前言 以前在学习JAVA时,因为搜索相关资源过于不便,所以在搜集了一些好用的资源之后,将此分享. 文档主要包括面试文档, JAVA的技术文档(如JAVA并发实战.设计模式之类),LINUX的相关文档以 ...
- 【java】Java相关学习参考链接(持续更新)
How to do in java,https://howtodoinjava.com/,Java手册,分版本,并且有每个版本的新特性的详细解析. Java World,https://www.jav ...
- MySQL学习笔记-事务相关话题
事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...
- Java 笔记 —— java 和 javac
Java 笔记 -- java 和 javac h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: ...
随机推荐
- 感慨 vscode 支持win7最后一个版本 1.70.3 于2022年7月发布
为什么 家里电脑一直是win7,也懒的升级,nodejs也不能用最新的,没想到vscode也停产了 https://code.visualstudio.com/updates/v1_70 后记 别用u ...
- yarn install --offline 离线安装 回头试试 npm install ./package.tgz
yarn install --offline npm pack npm install ./package.tgz 尝试了 npm-pack-all --dev-deps 也不行,太慢,等了20分钟 ...
- GitLab (v16.x) 简述及安装部署
GitLab 介绍 GitLab 的历史 GitLab 最初是一个完全免费的开源软件,根据 MIT 许可证分发.2013 年 7 月,它被分为两个不同的版本 - GitLab CE(社区版)和 Git ...
- Performance Improvements in .NET 8 -- Native AOT & VM & GC & Mono【翻译】
原生 AOT 原生 AOT 在 .NET 7 中发布.它使 .NET 程序在构建时被编译成一个完全由原生代码组成的自包含可执行文件或库:在执行时不需要 JIT 来编译任何东西,实际上,编译的程序中没有 ...
- 3DCAT投屏功能升级,助力企业营销与培训
3DCAT实时渲染云推出以来,深受广大客户的喜爱,3DCAT也一直根据客户的反馈优化我们的产品. 但是这段时间来,不同行业的客户都反馈着同一个问题. 汽车销售顾问:"什么时候支持投屏功能呢, ...
- 瑞云与宜宾职院开展校企合作,同深圳VR联合会共建元宇宙产业学院
2022年7月9日,宜宾职业技术学院携手深圳市虚拟现实产业联合会和深圳市瑞云科技有限公司,合作共建的"元宇宙职业教育研究与应用中心"."元宇宙产业学院"授牌仪式 ...
- 【面试】将 95% 求职者拒之门外的BAT大数据面试题-附解题方法(文末有福利)
写在前面 最近不少读者找我要大数据面试题,我整理了很久,筛选出这10道容易出错的大数据面试题,希望对大家有所帮助.题目与解答整理自互联网,感谢分享这些面经的技术大牛们! 题目概览 如何从大量的 URL ...
- proteus的五状态显示控制器
proteus的五状态显示控制器 1.实验原理 使用的核心器件还是4028,BCD译码器.将输入的四个信号接入输入端,输出信号选取0.1.2.4.8这五个输出状态驱动led显示.发光LED需要加入保护 ...
- DynamicHead:基于像素级路由机制的动态FPN | NIPS 2020
论文提出了细粒度动态detection head,能够基于路由机制动态地融合不同FPN层的像素级局部特征进行更好的特征表达.从设计的路由空间来看是一个十分耗时的操作,但是作者设计的高效路由器实际计算十 ...
- KingbaseES V8R6在解决复制冲突中hot_standby_feedback参数的重要性
背景 如果我们看到这样的类似报错:那说明可能遇到了复制冲突. 复制冲突的理解:当备库正在应用主库传输过来的wal日志与备库正在进行的查询产生冲突就会有此报错.比如说备库正在执行基于某个表的查询,这时主 ...