short
在java中,不论在哪个操作系统中,所有的数据类型大小相同
C语音每个变量在不同的操作系统中,其数据类型字节数大小不相同
八进制除了在一些算法中,其它很少使用
java中只要是看见一个整数,只要后面没有L,就把它当做int 类型来看,
我就想表现为long
如果;long L1=8888888888888L
如果不加上L,会默认为int类型,
float f=12.3f,如果不加上f,12.3会被当做double类型的数据
float和double都有一定误差,有一定的精度
一般很少用float或是double类型的变量作比较
基础数据类浮点型型之间的转换
boolean不可以转换成其它类型的数据类型
整形,字符型,浮点型的数据运算中可以相互转换,按数据类型容量大小
容量指的是数据大小
byte,short,char<int<long<float<double
低一级的数据类型和高一级的数据类型做运算,可以自动转换成高一级的数据类型是
但是byte,short,char之间不会互相转换,他们之间的计算首先会转换成int类型
实数常量默认是double,整数常量默认是int
大类型转小类型需要强制转换
多种数据类型之间进行运算时自动转化成最大类型数据类型
两个byte类型的数据进行运算转换成int类型的数据,如果强制转出byte类型且
超出了byte类型的大小,原本int类型是四个字节,就会咔嚓将其余的三个字节给砍掉
可是double转换成float,难道是也要砍掉四个字节,这是不对的
因为浮点数中有有个小数点,砍掉的话表示就不对了
编译器一看一个整数会自动把它看成int类型,除非加上L
浮点型转化整形,就会自动去掉小数点后面的部分
变量,先申明,所谓申明就是现在内存中申请一小块地方
再赋值,所谓赋值,就是在这一小块内存中填写上一些东西
程序格式:
(比算法还重要,格式非常重要,难道是为了让程序好看一点)
1、大括号对齐(左大括号的所在行要和右大括号对齐,建议用Tab键缩进,
如果想要缩进几行的话,选中那几行,然后再按Tab键)
2、在各个方法块之间尽量空一行
并排语句之间尽量要加空格
3、类名要和左大括号空一格
4、运算符两侧一般要加空格(for可以不加)
5、成对编程,最好是左大括号和右大括号一起写
按住Shift+Tab键可以往回缩进,我试验了一下,貌似记事本好像不行啊。
程序格式的原则(让别人看着更加清楚,让别人看的更加舒服)
运算符
算术运算符(+-*/%++--)
关系运算符:><=
逻辑运算符!、&、|、^、&&、||
位运算符&、|、^、>>、<<、>>>
赋值运算符=
扩展赋值运算符+=、-=、*=、/=
字符串连接运算符+
++如果放在后面,先赋值
++如果放在
+= -= *= /= %=
字符串连接符+
运算符练测两侧只要有一个是字符串类型,系统会自动将另一个操作数先转换成
字符串在进行连接
当打印时,无论任何类型,都会转换为字符串类型
表达式:
最后能算出一个值来的式子都是表达式
最后这个值的类型就是表达式的类型
表达式的运算顺序:
三目条件运算符:
x?y:z;
语句:
条件语句if语句:
if(i<20){
}else if(i<40){ //此时相当于i>20而小于40;
}
只有一句语句中需要执行时,可以省略大括号。
所以要省略大括号时,要确定执行体中只有一句语句
建议,对于初学者,不管几句,都把大括号加上
循环语句:
for()
复习一下程序的执行过程,编译原理
.class需要放在我们的java虚拟机中
.exe直接放到我们的操作系统中
不管是.class还是.exe文件,如果你不用他他就是一堆垃圾,不管了
.class文件,执行的话
首先将代码全部装载到内存中
其实操作系统中在内存中也会有一段代码
操作系统会找到你的程序的main方法,开始执行
这个时候往往执行的过程叫做内存的管理
heap动态申请内存用的,所有new出来的东西。
stack存放局部变量
data segment放静态变量和字符串常量
code segment代码区,存放代码用的
真正执行的过程,首先将代码放在code segment这块内存区域中
,在执行的过程会牵扯到另外三个内存区域
要养成随时存盘的好习惯,不然你就没地方哭去
while和do while循环
while中有可能一次都不执行
do while中至少保证程序执行一次
注意,do while中while后的小括号后要有分号;
同一个变量的作用域中,只能申明一次
十进制,如12,-314,0
八进制,以0开头
十六进制,要求以0x或0X开头
java浮点类型常量有两种表示形式,
十进制数形式,例如:3.14 314.0 .314
科学记数法形式,如:3.14e2 3.14E2 100E-2
float 放double会出错
int 放long不会出错
一个字节共可以表示2的八次方,是256
质数是只能被1和自身整除
switch中只能放int类型的数
但是可以放char byte short,这些可以转换成int类型的值
default是其它种的情况
小心case穿透
如果没有break,否则会穿到下一个case语句
多个case可以合并在一起
default可以省略,但是不推荐省略
对于一个完成功能和健壮的程序,
完成功能的程序可能会写100行,而一个健壮的程序可能要写300行
方法:
c/c++里面叫函数
方法可以避免我们在main方法中重新被定义
主车间、车头车间、车身车间、底盘车间
main 和其它方法
形式参数(形参)类似于该车间所需要的原料,假设材料以及拿过来
实参,真是的材料
返回值,对于这个车间还要出货,事先约定好的该车间能够产出的东西
一个方法类似于一个车间
实参的数目、数据类型、和次序必须和所调用方法声明的形参所匹配
return语句终止方法的运行并指定要返回的数据
如果方法没返回任何数据,就写个一个return,这个方法到此结束
如果有返回值,那么这个方法也结束了
java中进行函数调用中传递参数是,遵循值传递的原则:
基本类型传递的是该数据值本身。引用类型传递的是对对象的引用,而不是对象本身
真他妈的抽象
在java中其实字符型可以转化成int类型的,它的物理地址中其实对应的是一个
阿斯科码,反正我也不知道该怎么念;
^逻辑异或,只要两侧的变量相同,它就是false,如果说两边一个是true,一个是false
类型的,那就是true
递归:在一个方法中对方法自身的调用
mdthod(5)会调用method(4)方法--method(3)--method(2)--method(1)
此时method(1)有返回值,然后method(2)有返回值,--method(3)
--method(4)--method(5)有返回值
问一下这个程序有多少条执行路径(有多少条分支,有两只分支的话是有两条
路径)