JDK、JRE和JVM
JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。
JRE :英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。
JDK :英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。
银行业务怎么表示钱(java)
首先不能使用浮点数进行表示;
原因:浮点数是有限的,离散的,舍入误差,表示大约的但不是等于。
BigDecimal可表示任意精度的小数,不管它的范围有多大。BigDecimal是用array来存储数字的,每一次输入表示一个数字。因此,BigDecimal可以表示任意大小的数。
另外,BigDecimal是一个类,不是基本类型,需要调用方法来实现数的运算。它有四中方法:add, subtract, multiply, 和 divide。这里m1和m2相乘采用了multiply。
位运算
<< 相当于 *2
>> 相当于 /2
字符串连接符
//字符串连接符
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
==和equals区别
== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。
计算0到100之间的奇数和与偶数和
public class ForDemo01 {
public static void main(String[] args) {
//计算0到100之间的奇数和与偶数和
int oddSum=0; //奇数
int evenSum=0; //偶数
for (int i = 0; i < 100; i++) {
if(i%2!=0){
oddSum+=i;
}
else {
evenSum+=i;
}
}
System.out.println("奇数和:"+oddSum);
System.out.println("偶数和:"+evenSum);
}
}
//用while或for循环输出1~1000之间能被5整除的数,并且每行输出3个
public class ForDemo02 {
//用while或for循环输出1~1000之间能被5整除的数,并且每行输出3个
public static void main(String[] args) {
for (int i = 0; i <= 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.println();
}
}
}
}
打印99乘法表
public class ForDemo03 {
public static void main(String[] args) {
//打印99乘法表
for (int i = 1; i <= 9; i++) {
for(int j = 1; j <= i; j++){
System.out.print(i+"*"+j+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
打印三角形(5行)
public class TestDemo01 {
//打印5行三角形
public static void main(String[] args) {
for (int i = 0; i <= 5; i++) {
for(int j = 5;j >= i;j--){
System.out.print(" ");
}
for(int j = 1;j <= i;j++){
System.out.print("*");
}
for(int j = 1; j< i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
封装,继承、多态
封装
- 即把对象的属性和方法包裹起来, 只能通过约定好的接口实现访问
- 封装是一种信息隐藏技术,在java中通过关键字private实现封装。、
继承
继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
为什么要继承呢:1、反映现实的真实关系
2、减少代码冗余
3、对父类的属性和方法进行扩展和重写
多态
多态主要是基于继承和重写,最终可以实现相同的类型调用相同的方法,结果不相同