blog 2019.2.26 day2 java基本语法

Day 2

电脑如何识别 java c这些语言
计算机只能识别0 1 如何识别public static这些指令?
由java虚拟机来完成 把代码转换成二进制让计算机运行 (安装配置环境就是为了部署虚拟机)
blog 2019.2.26 day2 java基本语法

算法设计:找出若干个数中的最大值并输出
自然语言描述 的算法:
1)输入第一个数,并令其为MAX
2)输入一个数x,若新数x>MAX,则令MAX=x
3)数据输入结束了吗?若是,则输出MAX的值,算法结束;否则,转第2)步。

blog 2019.2.26 day2 java基本语法
blog 2019.2.26 day2 java基本语法
blog 2019.2.26 day2 java基本语法
blog 2019.2.26 day2 java基本语法
可移植性:在一台机器上写好的程序在任意电脑上均可运行

虚拟机工作原理(面试题):blog 2019.2.26 day2 java基本语法
虚拟机用于解释 只要有虚拟机 可以在任何系统中运行javablog 2019.2.26 day2 java基本语法

垃圾收集机制(内存收集机制) 自动回收内存
c/c++只可通过代码回收
blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法
blog 2019.2.26 day2 java基本语法

布尔型:true or false
blog 2019.2.26 day2 java基本语法

一个字节有8位,计算机内表示为二进制。
例如 byte60 在计算机内表示为 00111100 (8位)
short 16位
int 32位
long 64位
blog 2019.2.26 day2 java基本语法
blog 2019.2.26 day2 java基本语法

将运算指令发到cpu内 cpu运算完成返回result

blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法
2e10代表2乘10的十次方。

float和double的区别
1.在内存中所占字节不一样。float称为单精度,double称为双精度
2.有效数字的位数不同。
float:在表示数字的时候,有效数字是8位
double:在表示数字的时候,有效数字是16位
当整数位为0时,小数位最大位8或16位
非零的话,前后加起来一共8/16位
3.取值范围不同
4.在程序中处理速度不同 ,一般来说,cpu处理单精度的值比处理双精度的要快,float处理效率更高。
在定义浮点数的时候,默认使用double.
blog 2019.2.26 day2 java基本语法

定义时,默认都是double 若一定要用float,则需要在赋值后面加一个f 大小写均可

blog 2019.2.26 day2 java基本语法
blog 2019.2.26 day2 java基本语法

整数位为0,分别精确到8、16位
整数位非0,则整个数值一共为8、16位(若整数位为123,则float仅精确到后5位)。

取值float时 有时候会前进一位、两位或者不进位----精度缺失—与小数转化成二进制时产生的无限循环问题有关

十进制的小数如何转化为二进制?
blog 2019.2.26 day2 java基本语法
一直循环 所以float转换时会出现不同的结果

blog 2019.2.26 day2 java基本语法
double型,整数为0时,小数可以精确到17位。

blog 2019.2.26 day2 java基本语法
**计算机中的精度丢失问题。**为了解决这个问题 ,需要引入BigDecimal来表达更加精确的小数。java的设计者提供了一个很有用的类 BigDecimal,可以完善float和double无法精确计算的一个缺陷。
blog 2019.2.26 day2 java基本语法
blog 2019.2.26 day2 java基本语法
若不考虑精度问题,只做数字相加,可用双引号,通过字符串的形式进行传递。

blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法
blog 2019.2.26 day2 java基本语法
char类型可以存数字 不报错
一个char 只能存1一个中文 编程中可以用来存放男、女

boolean 仅赋值正误,默认内存是4个字节
blog 2019.2.26 day2 java基本语法

string (引用类,字符串数据类型,不属于基本数据类型)用于存放字符串
blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法
两行注释代表了两种解释方法

blog 2019.2.26 day2 java基本语法

第一次赋值—叫做初始化
以后要改变这个值----叫做赋值
blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法

通过final + float + 大写字母 来定义一个常量
注意常量一定要是大写字母!
blog 2019.2.26 day2 java基本语法
blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法

blog 2019.2.26 day2 java基本语法
此类关键词一般在编译软件内会自动变色 加粗处理。

blog 2019.2.26 day2 java基本语法
数据类型自动转换,小的类型在进行计算的时候会自动转化为大的类型。在使用整数的时候默认是int,在使用浮点数的时候默认是double。比如short和int相加,结果的精度遵循大的来 --int。
转换顺序:byte-short-int-long-float-double
blog 2019.2.26 day2 java基本语法
int long 在和float double相加时,均变成float double型。1(int)+1.2(float)=2.2(float)
byte和byte相加,short和short相加,默认转化成int。
btye和int相加,默认转化成int。
blog 2019.2.26 day2 java基本语法
a和b的ASCII码相加,得到195,仍然是int类型。

byte和short相加,结果仍然是int。

int long相加用Long

关于 浮点数相加。
float float相加可用float
float double相加肯定是double。

实际开发时,可以数据类型强制转换。
byte byte相加,可以强制使用byte来存储而不是int(为了节省空间)
注意后面的括号 (b1+b2)
blog 2019.2.26 day2 java基本语法

数据强制转化产生的问题:
1.数据丢失问题:当前空间无法将数据完全装下来

若计算带小数的,需定义成float/double类型
若使用int 比如 int a = 1/10 输出的只有整数位0

blog 2019.2.26 day2 java基本语法
字符串转数字。 输出的12已经是数字 而不是字符串了