概述
JDK(Java Development Kit)[Java开发工具包]
JRE(Java Runtime Evironment)[Java运行环境]
JVM(Java Virtual Machine)[Java虚拟机]
Java中8种基本数据类型
- 整型:byte,short,int,long
- 浮点数型:float,double
- 字符型:char
- 布尔型:boolean(作为局部变量单独使用和int一样,作为成员变量或数组元素和byte一样)
char
java中char是占16位
Math.round()的修约规则:
round方法:
static long round(double a)
此方法返回的参数最接近的long.
static int round(float a)
此方法返回的参数最接近的整数.
Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。
switch
当switch(x)x一定要与case中的类型相匹配。否则会出现类型不匹配(imcompatibal types)问题。
default可以放在case的前面,不影响判断。
switch()里面必须是int和enum–即枚举类型,(short,char,byte)都会自动转化成int。但是long不可以自动转化成int,因为会丢失精度,所以switch()里面也就不可以是long。java把string也’转化’成int了,用string的hash值(int型,hashCode()的返回值)代替string进行switch,然后再对string做一遍equals()判断。把你的程序编译成字节码再反编译回来,看看有什么不一样就行了
!图一
递归的理解
提问:为什么递归那么多次返回,最后的出来的是正确结果。这是因为最终的返回值是第一次函数调用的返回值,那么多次重新调用只是对第一次函数返回的值的求解。例如:
递归能加快程序的运行速度
public static int jieCheng(int num){
if(num==1){
return 1;
}
return jieCheng(num-1)*num;
}
实际上return只有第五行一条语句,其他的调用本方法只是对该结果的计算。最后从1开始向上返回结果也成为回溯。
逗号运算符
public class Test11 {
public static void main(String[] args) {
for(int i = 1, j = i + 10; i < 5; i++, j = i * 2) { //j 前面不用加int
System.out.println("i= " + i + " j= " + j);
}
}
}
参数测试
/**
* create by Damon on 2019/5/8
* 这道题的运行结果是199,参数传值是变量的
* 复制,方法不影响基本数据类型的值
*/
public class TestParameter {
public static void main(String args[]) {
int i = 99;
mb_operate(i);
System.out.print(i + 100);
}
static void mb_operate(int i) {
i += 100;
}
}
创建对象四个步骤
-
分配对象空间,并将对象成员变量初始化为0或空
所以构造函数并没有返回值
(解释:“构造函数是一种很特殊的函数,因为他没有返回值。这和‘返回值为void’有极大的差别。返回void时,一般函数并不返回任何东西,但是一般的函数能够选择是否要返回些什么东西。构造函数则绝对不返回任何东西,而且你也没有任何选择。如果它有一个返回值,而且你有权利选择你自己的返回型别(return type),编译器势必得通过某种方式来知道如何处理那个返回值。”
很明显,其意思是void更想一种mark,告诉编译器我目前没有返回值,但这是可选的,将来未必没有,但构造函数从概念上来说将肯定没有返回值,于是通过某种特殊的设计将其变为不带任何返回参型(包括void)的函数。) -
执行属性值的显示初始化
-
执行构造方法
-
返回对象的地址相关变量
this的本质
this的本质就是已经创建好的对象的地址!
必须要注意,一个类的构造函数中,this()和super()不可同时出现
代码块
静态代码块:在类加载的时候运行一次
动态代码块:作为类的属性
自动类型转换中long可以自动转换成float,这是因为浮点数不是直接表示大小的,而是通过符号位,指数域,小数域相乘得出来的结果,所以四字节的float表示的范围比八字节的long更大。
这也就使得
float x( int a,int b ) { return (a-b); }
这样的语句是合法的。虽然实际返回值是int,但是int在float内,会自动进行类型转换,不报错。
最后
以上就是寂寞小蚂蚁为你收集整理的00.Java基础知识兜底的全部内容,希望文章能够帮你解决00.Java基础知识兜底所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复