计算机语言分类

.机器语言,由二进制的形式存在

汇编语言:用符号表示机器指令的语言,依赖于特定的硬件,需要汇编器来转换成计算机能够识别的机器代码
高级语言:更接近与人类的自然语言,需要编译器来将源程序装成机器语言。

Java跨平台的原理:Java的跨平台是通过Java虚拟机(JVM)来实现的jvm可以理解为软件模拟的计算机。

2.                            数据类型

int最常用(20亿左右)。long可以用在统计世界人口,byteshort用在特殊场合(如果知道存储在变量中的整数在一个字节范围内,就应该将变量声明为byte

doublefloat,一般都使用doubledouble类型,因为double类型比float更精确。需要存储大量数据才考虑单精度一般使用(float可以节约内存)。

特殊的字符:转义字符,\r回车,\n换行。\ttab键,也就是制表符

\b退格 \\反斜杠 \单引\’’双引

基本数据类型占用的字节数

数值型:byte1字节 short2字节 int4字节 long8字节

浮点型:float 4字节,double8字节

字符型:2字节                  java中常量的分类

4.1整型常量

十进制:0,1,2,3,4,5,6,7,8,9 不能以0开头

十六进制:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f  十六进制以 0x,0X开头

八进制:0,1,2,3,4,5,6,7  八进制以 0开头。

默认情况下,×××常量是一个十进制整数,要表示八进制的常量,就用0开头,十六进制就用0x或者0X开头。

4.2浮点数

float 32位 单精度浮点数结尾为fF

double 64位 双精度浮点数结尾为dD

浮点数默认是双精度,所以float类型一定要加f

0.5f  或者0.5F 1.555d  或者3.1415D,或者3.14

4.3布尔常量

布尔用于区分一个事物的正反两面。只有两个值  true  flase

4.4字符常量

将一个数字字母或者符号用单引号( ' ' )标识,java中字符占用2个字节,使用Unicode码表示。’a’  ‘b’  

4.5字符串常量

将一个或者多个字符用双引号标识。表示一连串字符。“helllo  java” 

4.6null常量

只有一个值,表示引用为空。

6.                   java中的进制转换

十斤十进制转其他进制,不断的对所要求的的进制数除以进制数知道商为0,那么所得的余数反过来就是二进制数的表示形式。例如十进制8想要变成二进制,8除以24余数04除以22余数0,2除以21余数0,1除以2等商0(为什么是0呢,因为在java中两个int型数据运算,结果必须是int型)余数是1.所以8的二进制数是1000.

变成十六进制,8除以16等商0,余数8,所以8的十六进制数为8.变成8进制数,8除以8得商为1余数为0,1除以8商为0,余数为1,所以88进制数为10.

其他进制转十进制,

从右往左,从零开始,十进制中的每一位数乘以进制数的每一位数所在的位数次方累加

例如二进制110转十进制就是,0乘以20此方,1乘以2的一次方,1乘以2的二次方。八进制,十六进制呼唤问题。

关于八进制,十六进制,二进制之间的互转问题,我们可以想将其转为10进制,再转成我们想要的进制数。

6.                           变量

6.1定义:变量是一段有名字的内存,用来存储java程序中的信息。

6.2为什么要定义变量:用来不断的存放同一类型的常量,并可以重复使用

6.3变量声明(variable declaration

变量声明用于告诉编译器根据数据类型为变量分配合适的存储空间。

格式 数据类型 变量名

如果几个变量为同一种数据类型,可以一起定义。

6.4变量声明细节:

按照java标示符命名规范,变量名使用小写字母表示。如果一个名字由多个词组成,多个单词组成时第一个单词首字母小写,其他单词首字母大写

6.5变量取值范围

大碗倒到小碗的溢出问题。

7.                       算数运算

7.1算数运算符 加减乘除,取模,自加,分为前自加后自加。自减,前自减后自减。字串相加。正号,负号。“+”有三个功能,表示正号,表示加法运算,表示字符串相加。

只有当被除数是负数时,余数的结果才是负数。

自加自减的位置问题

如果运算符在变量的前面,则该变量自增1或者自减1,然后返回的是变量的新值,如

果运算符在变量的后面,则变量也会自增或者自减1,但是返回的是变量原来的值。++在前就是先运算,再取值,++在后就是先取值,再运算

除以是求总的,%是求当前的。

8.                      基本数据类型之间的转换

8.1自动类型提升,byteshortint char类型在进行算术运算时会进行自动的类型提升为int型。

8.2强制类型提升,丢失精度。使用情景举例:小数部分只想保留整数部分.

9. 赋值运算符(=+=-=/=%=

short s1 = 1; 

 s1= s1+1;

 s1+=1;

问:s1= s1+1; s1+=1; 与有什么不同?

对于short s1 = 1; s1 = s1 + 1; 由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。

对于short s1 = 1; s1 += 1;由于 += java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

10. 比较运算符(<,>,=,>=,<=,==,!=,intstance of 检查是否是类的对象。)

11. 逻辑运算符|,||,&&,&,!,^,

|||的区别:当两边都为真时,|要检查两边,|只需检查一边为真就不再检查另外一边直接返回true

int a =5;

int b =5;

if(true|b!=++a){

}

System.out.println(a);6

int a =5;

int b =5;

if(true||b!=++a){

}

System.out.println(a);5

&与&&的区别:当两边都为假的时候,&检查两边,&&检查到一边为&的时候另一边就不再检查了。

int a =5;

int b =5;

if(false&b!=++a){

}

System.out.println(a);6

int a =5;

int b =5;

if(false&&b!=++a){

}

System.out.println(a);5

^异或:两边都为统一布尔值是为假,其他情况真

12位运算符(^,&,|,~)用来操作整数基本数据类型中的单个比特(bit),就是二进制.简单应用^加密,异或两次为同一个结果。

13.移位操作符(<<,>>,>>>,&,|,^

往左移几位就是乘以2的几次幂。

>>右移:等于除以2的移动位数次方

>>>:无符号右移:等于除以2的移动位数次方

    使用>> 后原来是最高位的那么空出来的最高位还是的,是0的还是0

使用>>> 无论最高位是0还是空余最高位都拿,这就是无符号右移