java 0xa2是什么意思_java的基础知识(二)

基本数据类型

四种基础类型:整数类型:如2,50,12等

整数的四种声明类型:

byte: ---> 1字节 ---取值范围--->-128~127

short:---> 2字节 ---取值范围--->-32768~32767

int: ---> 4字节 ---取值范围--->-2147483648~2147483647

long: ---> 8字节 ---取值范围--->-9223372036854775808~9223372036854775807

浮点类型:如3.2,132.0,-12.1等

字符类型:如'a','g','中'等

布尔类型:true,false。布尔值只有两个

如何创建变量

1.创建整型变量

示例:

1 byte a=12;2 byte a=12,b=-13;3

4 short a=153;5 short a=153,b=-201;6

7 int a=65231;8 int a=65231,b=-5234;9 int c=5+b;10

11 long a=562314563L;12 long a=452L,b=-532L;13 long c=452L+532L;14 //注意:创建long类型数值时需要给值后加上L或l,否则会导致数据精度的丢失。因为整数的默认类型是int类型,int的范围又没有long的数值范围大,15 //当数值超出了int的取值范围又没有添加L或l的后缀时,精度会丢失,得到的数据比定义的小。

16

17 /**

18 *常见错误:19 *long a = 123654789 * 987456321;20 *正确的应该是:21 *long a = 123654789L * 987456321L;22 */

2.使用不同进制的整数赋值

10进制:例如,int a=44;

8进制:以0开头,例如:int b=044;

16进制:以0X或0x开头,例如:int c=0x44;

浮点数的两种声明类型

float:在内存空间占用4个字节,取值范围:

1.4E-45~3.4028235E38

double:在内存空间占用8个字节,取值范围:

4.9E-324~1.7976931348623157E308

示例:

1 float a=1.1f;2 float a=1.1F,-2.4f;//float 修饰的值必须加F或f后缀

3

4 double a=3.1415926;5 double a=3.1415926,b=-3.1415926;6 double c1=1.0D,c2=3.1d,c3=-2.6;//double修饰的值可以加D或d后缀,也可以不加,因为它是java默认的浮点类型

注意:近似值不精准

4.35*100 --四合五入法-->使用java提供的四舍五入法Math.round();

0.1==2.0-1.9 --最小数对比法--> 使用java提供取绝对值方法Math.abs()与最小数"1e-6"相比较

字符类型的概念

用单引号包含的可打印的单个符号,例如:

'a'  '5''大''#'     '  ''B'

不是字符的,例如:

'word'  "M"'5'!=5

char类型

char是整数采用(Unicode编码)取值范围0~65535

示例:

1 char a1='a'; char b1='汉'; char c1='2'

2 char a2=97; char b2=27721; char c2=50;//以上这两种赋值方法的结果相同的

如何给char变量赋值单引号:

错误思路:写三个单引号不就行了:

1 char a='''; 2 //注意:如果出现三个单引号,编译器就不知道从哪里开始,从哪里结束,肯定会报错

转义字符

转义字符       含义

\'        单引号字符

\"        双引号字符

\\        反斜杠字符

\t        垂直制表符,将光标移动到下一个制表符的位置

\r          回车

\n        换行

\b        退格

\f        换页

布尔类型

创建布尔类型

boolean: truefalse

注意:布尔类型只有两个值,其他的值都不可用。

变量与常量

标识符与关键字的概念

标识符的概念:------名字

由任意的大小写字母(A~Z,a~z),下划线(_),美元符号($),数字(0~9)组成,注意:数字不能开头,不能为java中的保留关键字。

容易写错的标识符:20warrior(数字开头),public(关键字),one%two(有%号不合法),User Name(标识符单词之间有空格)等等。

正确的标识符:time,alp56,_interface,O_o,BGM,$$$等等。

标识符是严格区分大小写的,good和Good是两个不同的标识符。

标识符使用汉字

例如:

1 String 名字="唐僧";

2 String 职业="和尚";//汉字命名是不好的习惯,一旦字符序列使用的非GBk编码,会出现乱码

标识符的命名规范

类名方法名变量名常量名

类名

方法名

首单词字母小写,后续单词首字母大写。例如:sisterName,lightName

常量名

关键字

开发工具中变颜色的单词。

变量:变量的值是可以改变的

内存如何存储数据?

数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间。

为什么需要变量?

为了解决内存地址不好记,内存地址如([C@30i126,[D@60e127等等)

如何声明变量?

语法:

数据类型变量名称=变量值;

示例:

1 int a=1;2 long b=456321L;3 char c='p';4 boolean flag=true;

常量:开发过程不需要更改,甚至不允许更改的量

常量的声明

语法:

final数据类型常量名称=常量值;

示例:

final int a=654;final double PI=3.1415926;

赋值运算符

赋值运算符就是“=”

量 = 值

做写的操作,被赋予等号右侧的值做读取的操作,可以是常量、公式

正确的例子:

1 int i=5,j=6,k=8; //定义整型变量i、j、k

2 final int value=3; //定义整型常量

3 i=9; //变量=常数

4 k=i+j; //变量=表达式

5 a=b=c=d=4; //变量=变量=变量=常量

错误的例子:

9=a; //不能赋值给常量

i+k=j; //右值不能被赋值

算术运算符

运算符说明实例结果

+

23.56f+10

33.56

-

6.32-0.3

6.02

*

5L*13.56f

67.8

/

9/4

2

%

取余

9/4

1

加法与减法运算符

(+)一元正号:+30,+50,+100

(+)加法运算符:x+y,5+32,a+b

(+)拼接字符串:"Hello"+"Word"

(-)一元负号:-30,-50,-100

(-)减法运算符:x-y,5-2,a-b

乘法、除法与取余运算符

(*)乘法运算:int a=6*2

(/)除法运算:int b=6/2

(%)取余运算符:double c=6.2%3.0

注意:使用除法运算符与取余运算符时,0不能做除数。

自增和自减运算符

自增运算符        自减运算符

前置形式          ++a              --a

语法

后置形式          a++a--

计算结果a+1a-1

注意:自增和自减都是单目运算符,不可以放在圆括号之外。例如:(a+b)++--(x+y)等等

前置与后置的区别

b=a++;                  b=++a;

↓↓

结果:      b=a;//先做赋值运算a=a+1;//先做自增的运算

结果:a=a+1;//再做自增的运算        b=a;//再做赋值的运算

自减与上原理相同。

关系运算符

属于双目运算符,是用来判断一个操作数与另一个操作数之间的关系的运算符,计算结果是一个布尔值(true或false)。

运算符说明实例结果

==

等于

5==6

false

<

小于

5<6

true

>

大于

5>6

false

<=

小于等于

8<=9

true

>=

大于等于

9>=9

true

!=

不等于

8!=3

true

如何同时使用多个关系运算符

数学中连续小于或连续大于:ab>a

java中这么写可以吗?答案是:不可以,java中不能串联使用关系运算符,那么解决方案就是在他们之间使用逻辑运算符

逻辑运算符

运算符含义实例结果

&&

逻辑与

A&&B

(真)与(假)=假 --->一假为假

||

逻辑或

A||B

(真)或(假)=真 --->一真为真

!

逻辑非

!A

不(真)=假 --->杠精

位运算符

位运算符分为两大类:位逻辑运算符、位移运算符。

位逻辑运算符

运算符含义实例

&

a&b

|

a|b

~

取反

~a

^

异或

A^b

位移运算符

运算符含义实例

<<

左移位

a<<2

(>>)

右移位

b>>4

(>>>)

无符号右移

x>>>2

位逻辑运算结果

ABA&BA|BA^B~A

0

0

0

0

0

1

1

0

0

1

1

0

0

1

0

1

1

1

1

1

1

1

0

0

1.位与运算

十进制12和8进行与运算

0000 0000 0000 1100

&     0000 0000 0000 1000

————————————————————————

0000 0000 0000 1000

12和8进行与运算结果还是8

2.位或运算

十进制4和8进行或运算

0000 0000 0000 0100

|  0000 0000 0000 1000

————————————————————————

0000 0000 0000 1100

4和8进行或运算结果是12

3.位异或运算

十进制31和22进行异或运算

0000 0000 0001 1111

^     0000 0000 0001 0110

————————————————————————

0000 0000 0000 1001

31和22进行异或运算结果是9

4.位取反运算

十进制123进行取反运算

~ 0000 0000 0111 1011

————————————————————————————

1111 1111 1000 0100

123进行取反运算结果是-124

位逻辑运算的逻辑结果

ABA&BA|BA^B

true

true

true

true

false

true

false

false

true

true

false

true

false

true

true

false

false

false

false

false

位移运算

左移<

12的零次方0000 0000 0000 0001初始值=1

1<<12的1次方0000 0000 0000 0010左移一位=2

1<<22的2次方0000 0000 0000 0100左移两位=4

注意:每次的结果=原来的2倍是在符号位没有发生改变的情况下。

示例:

short a=91150010 0011 1001 1011

a<<100100 0111 0011 0110

溢出舍去

a<<2001000 1110 0110 1100

溢出舍去

右移>>每次的结果=原来的2分之一

32768...1000 0000 0000 0000     2的15次方

32768>>1高位补零...0100 0000 0000 00002的14次方

32768>>2...0010 0000 0000 0000     2的13次方

整数右移之后还是正数。

负数右移,高位补1,就保证了其还是一个负数。

示例:

-32768...1000 0000 0000 0000     -的2的15次方

-32768>>1高位补1...1100 0000 0000 0000-的2的14次方

-32768>>2...1110 0000 0000 0000     -的2的13次方

无符号右移

例如:

-327661111 1111 1111 1111 1000 0000 0000 0010

初始值

补00111 1111 1111 1111 1100 0000 0000 0001 0结果=2147467265

无符号右移一位溢出舍去

补00011 1111 1111 1111 1110 0000 0000 0000 10结果=1073733632

无符号右移两位溢出舍去

无符号右移,高位一律补零。

注意:byte和short类型不适合用无符号右移,它俩属于低精度的整型,无符号右移的结果往往不准确。

三元运算符

语法:

返回值=判断公式?结果1:结果2;

要求:判断公式是返回一个布尔值的公式

如果公式返回的是true,运算符结算返回结果1

如果公式返回的是false,运算符结算返回结果2

示例:

int a=2;

int b=a<3?2:3;

最终的到的结果b=2

int c=5;

int d=c<2?56:36;

最终的到的结果d=36

运算符优先级

优先级描述运算符

1

括号

()

2

自增,自减,逻辑非,正负号,取反

++,--,!,+,-,~

3

乘,除,取余

*,/,%

4

加,减

+,-

5

左移位,右移位,无符号右移位

<>,>>>

6

小于,小于等于,大于,大于等于,判断继承关系

,>=,instanceof

7

等于,不等于

=,!=

8

&

9

异或

^

10

|

11

并且

&&

12

或者

||

13

赋值

=,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=,>>>=

总结:

1.从操作数个数来看,单目运算符的优先级高于双目运算符优先级

2.按照运算符的作用来看,()这种级别最高,之后依次是算术运算符,位运算符,关系运算符,逻辑运算符,赋值运算符。

数据类型转换

遵循的原则:勿以小杯盛大物

不同类型占用的计算机内存空间不同的,例如byte--->int--->long的内存空间依次增大的,小的往大的转换不会溢出,大的转换成小的可能会溢出。

两种转换方式

隐式转换(自动转换)

byte a=10;short b=a;int c=b;long d=c;float e=d;double f=e;

char

byte--->short--->int--->long--->float--->double

char的取值范围内,char和int试兼容的。

示例:

1 char a='A';2 int b=a-3;3 //结果b=62;4 //运行代码如下:

5 public classDemo {6 public static voidmain(String[] args) {7 char a='A';8 int b=a-3;9 System.out.println(b);10 }11 }

12895976.html

2.显示转换(强制转换)

语法:(类型名)要转换的值例如:

1 public classDemo {2 public static voidmain(String[] args) {3 int a=101;4 byte b=(byte)a;5 System.out.println(b);6 }7 }

低精度向高精度转换的时候可以用隐式转换,也可以用显示转换,

但,高精度向低精度转换的时候,只能使用显示转换,而且有可能造成数据丢失。

例如:

1 public classDemo {2 public static voidmain(String[] args) {3 float a= (float) 3.1415926;4 System.out.println(a);5 }6 }

结果造成了数据失准。

再例如:

1 public classDemo {2 public static voidmain(String[] args) {3 float a= (float) 3.1415926;4 int i= (int) a;//小数点丢失

5 System.out.println(i);6 }7 }

再例如:

1 public classDemo {2 public static voidmain(String[] args) {3 int a=130;4 byte b=(byte)a;5 System.out.println(b);6 }7 }

代码注释

代码的注释与编码规范

注释:就是对代码的解释和说明。

注释范围内的任何内容都不会被计算机编译执行。

注释的作用:是给开发者看的,便于读懂你写的代码,也便于开发与维护(简单来说就是,说明文字,删除冗余,调试代码)。

注释的三个种类

1 //这里是单行注释

2

3 /*

4 这里5 是6 多行注释7 */

8

9 /**

10 这里11 是12 文档注释13 */

前两种常用,是帮助我们添加解释说明和调试程序的,后面一种是帮助我们生成文档的,其实java的API就相当于文档注释生成的

编码规范

不以规矩不能成方圆

我们应该遵循的代码规范

1 int a=5;2 int b=3;               //尽量使每个变量的声明单独占用一行。

3

4 public static viod;      //关键字与关键字之间只认一个空格,多个空格属于冗余,没有用

5 Person().list[2][5].getId();   //不要使用技术性很高、难懂、易混淆的语句

6 String name="王五";        //创建名字,对于关键的方法要多加注释。

常见的错误

1.分号报错了,有可能写的是中文的分号,输入英文下的分号即可解决。

2.方法错了,有可能是我们输入了中文下的引号,输入英文下的引号即可解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值