【笔记】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: ...
随机推荐
- JavaFx实现倒计时按钮组件(类似发送激活码)
原文地址: JavaFx实现倒计时按钮组件(类似发送激活码) - Stars-One的杂货小窝 本文基于TornadoFx框架进行编写,封装工具代码是kotlin版本 然后也是顺便把这个封装成了sta ...
- Linux输入输出
1.重定向概述 1.什么是重定向 将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中.比如:每天凌晨定时备份数据,希望将备份数据的结果保存到某个文件中. 这样第二天通过查看文件的内容就知道昨天备 ...
- Android实际开发bug大总结
目录介绍 1.1 java.lang.UnsatisfiedLinkError找不到so库异常 1.2 java.lang.IllegalStateException非法状态异常 1.3 androi ...
- 使用现代身份验证(OAuth)来连接POP、IMAP或SMTP
我的博客园:https://www.cnblogs.com/CQman/ 转载: https://mp.weixin.qq.com/s?__biz=MzU0MzUxMzU2NA==&mid=2 ...
- 记录--你敢信?比 setTimeout 还快 80 倍的定时器
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 起因 很多人都知道,setTimeout是有最小延迟时间的,根据MDN 文档 setTimeout:实际延时比设定值更久的原因:最小延迟时 ...
- 记录--妙用computed拦截v-model,面试管都夸我细
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 如何避免写出屎山,优雅的封装组件,在面试官面前大大加分,从这篇文章开始! 保持单向数据流 大家都知道vue是单项数据流的,子组件不能直接修 ...
- 《.NET内存管理宝典 》(Pro .NET Memory Management) 阅读指南 - 第10章
本章勘误: 暂无,等待细心的你告诉我哦. 本章注解: 暂无 本章释疑: 暂无,等待你的提问 致谢: MVP 林德熙 MVP 吕毅 sPhinX 相关链接 试读记录
- 一行代码 python 证件照换底色
安装所需模块 pip install OpenCV-python pip install cvzone pip install mediapipe 代码 import cv2 import cvzon ...
- 使用MFT进行加密文件传输的7个好处
至少,托管文件传输(MFT)解决方案是一种产品,它包含入站和出站文件传输的所有方面,同时使用行业标准的网络协议和无缝加密.它可以从单个集中管理点在您的网络,系统,应用程序,贸易伙伴和云环境中自动化和传 ...
- windows系统设置状态栏时间显示读秒
windows系统设置状态栏时间显示读秒 要实现的效果如下图: 一.打开注册表 WIN+R输入[cmd]之后输入[regedit]回车 二.修改注册表 在注册表地址栏输入: HKEY_CURRENT_ ...