黑马程序员02JAVA基础语法

来源:互联网 发布:逍遥模拟器网络不好 编辑:程序博客网 时间:2024/05/17 20:30

------- android培训、java培训、期待与您交流! ----------

一、常量

1. 概述:在程序运行的过程中,其值不发生改变

2. 分类:

1.字面值常量

2.自定义常量

3. 字面值常量分类:

1.字符串: ""

2.整数

3.小数

4.字符:''

5.布尔:true ,false

6.:null 

4. 进制:x进制就是逢x进一,人为规定的

5. 计算机中的进制为二进制,八进制,十进制,十六进制

1二进制的由来:开关的两个状态来表示数据,01来表示,使用8bit来表示一个数据,这个一个数据叫做Byte(字节)

2八进制 十六进制的由来:把二进制分组,每组转换为10进制数字,组合而成

3.表示方式   10 

1. 二进制:0b10

2. 八进制:010

3. 十进制:10

4. 十六进制:0x10

4进制的转换

8421:每一个二进制上的1,都代表固定的十进制的值 

 

1   111 1111  

128        1  

5有符号的表示方式(了解)

              1. 原码符号位,数值位

1    000 0001 

1表示负数

0表示正数

2. 反码符号位不变,数值位0-->1 ,1-->0 

3. 补码反码补

因为计算机的运算都是补码运算的  

4. 正数 原反补都一样

5. 负数 原反补算一算 

二、 变量

1. 变量概述:在程序运行的过程中,其值可以发生改变

2. 格式

数据类型 变量名 初始化值;

3. 数据类型

1. 概述:限制初始化值的范围.

2. 分类:   基本数据类型

  引用数据类型

3. 基本数据类型分类:

1. 四类八种

整数 字节 范围

byte 1 -128~127

short 2

    默认*int 4 21亿

long 8

浮点数

float 4

默认*double 8

字符

char 2 0-65535

布尔

boolean 1 true false 

/*
数据类型
基本数据类型:四类八种
整数:byte(-128到127) shot(-32768到32767), int(-2147483648到2147483647) ,long (-2^63到2^63-1)
浮点  float (-3.4*10^38~3.4*10^38-1)
定义float用F或f
double(-1.7*10^308~1.7*10^308-1)
字符 char  2字节,(0-65535)
布尔  boolean :ture false
引用数据类型
类:class
接口:interface
数组[] Array


*/

class Noname1{public static void main(String[] args){//定义变量//整数变量//bytebyte a= 3;System.out.println(a);//shortshort b=13;System.out.println(b);//floatfloat c= 3.5f;System.out.println(c);//booleanboolean e=true;System.out.println(e);}}


执行结果:


 

4. 数据类型的转换

1. 默认转换(自动提升)--从小到大

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

byte,short,char相互不转换,直接转为int

boolean不参与转换

 

2. 显示转换(强制转换)--从大到小 

格式:

数据类型 变量名 = (目标数据类型)(数据值);

 

 

***********数据类型转换习题**********

第一题:

byte b1=3,b2=4,b;

b=b1+b2;

b=3+4;

哪句是编译失败的呢?为什么呢?

b=b1+b2,编译失败,b1+b2结果自动提升为int型,而bbyte 型,会显示损失精度

第二题:

byte  by = 130;有没有问题?有问题如何解决?结果是多少呢?

有问题,byte取值范围是-128127之间,130超出范围

可以进行强制转换,byte b=byte130; 结果是-126

**************************************************************

3. 字符和字符串的运算

1. 字符类型-->'a' + 1 --> 自动提升

2. 字符串 --> "a" + true  + "+" --> 字符串拼接(拼串儿)

三、运算符号:

1)、算术运算符。

+ - * / %   %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关 运算。

+:连接符。

++,-- 自增、自减。

2)、赋值运算符。

=  += -= *= /= %=

3)、比较运算符。

特点:该运算符的特点是:运算完的结果,要么是true,要么是false。 

4)、逻辑运算符。

&  |  ^  !   &&   ||

逻辑运算符除了 !  外都是用于连接两个boolean类型表达式。

&: 只有两边都为true结果是true。否则就是false

|:只要两边都为false结果是false,否则就是true

^:异或:和或有点不一样。

 两边结果一样,就为false

 两边结果不一样,就为true.

和 &&区别: :无论左边结果是什么,右边都参与运算。

  &&:短路与,如果左边为false,那么右边不参数与运算。

|| 区别:|:两边都运算。

||:短路或,如果左边为true,那么右边不参与运算。

5)、位运算符:用于操作二进制位的运算符。

&  |  ^   <<  >>   >>>(无符号右移)

 

四、语句

基础的有 顺序  选择    循环

1)三元运算符:

变量=(条件表达式)?表达式1:表达式2

三元运算符:好处:可以简化if  else 代码

弊端:因为是一个运算符,所以运算必须有一个结果


例如将60转为16进制:

 class Abc{public static void main(String[] args) {//System.out.println(Integer.toBinaryString(60));int num=60;//获取60 最低四位,通过&15int n1=num&15;System.out.println((char)(n1-10+'A'));//要获取下一位4位,将60右移4位int temp=60>>4;//对temp的值进行最低4位的获取int n2=temp&15;System.out.println(n2>9? (char)(n2-10+'A'):n2);/*0-9 'A' 'B' 'C' 'D' 'E' 'F'?? ? 10 ?11 ?12 ?13 ?14 ?15?? ? 12-10=2+'A'=(char)67;*/}}

 执行结果

 

 

2switch语句

switch(表达式)//只接收四种类型 byte short int char

{

case取值1

执行语句;

break

case取值2

执行语句;

break;

……

default

执行语句;

break//case是没有顺序的,位置可以随意

//如果匹配的casedefault没有对应的break,那么程序会继续向下执行, //直到遇到breakswitch结尾结束。

   //if switch 语句很像

如果判断数值不多,而且符合byte short int char这四种类型

虽然两个语句都可以用,建议用switch,因为效率稍高。

                                                                                                                                                    

3) 循环结构

代表语句:whiledo while for

比如我们需要输出从110之间的数字

</pre><pre name="code" class="java">class ChengFaBiao{public static void main(String[] args){for (int x=1; x<=9 ;x++ ){for (int y=1;y<=x ;y++ ){System.out.print(y+"*"+x+"="+y*x+"\t");}System.out.println();}}}

 

do while

do

{

 

}

while

 

while:先判断条件,只有条件满足才执行循环体

do WHILE:先执行循环体,再判断条件,条件满足,再执行循环体

无论条件是否满足,循环体至少执行一次

 

for(初始化表达式;循环条件表达式;循环后的操作表达式)

   执行语句;

变量有自己的作用域。对于for来讲;如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效,for语句执行完毕,该变量在内存中被释放,forwhile可以进行互换,如果定义循环增量,用for更合适

当语句执行很多此时,就使用循环结构

多表达式,用,分隔开

 

例如for循环打印99乘法表

 

class ChengFaBiao{public static void main(String[] args){for (int x=1; x<=9 ;x++ ){for (int y=1;y<=x ;y++ ){System.out.print(y+"*"+x+"="+y*x+"\t");}System.out.println();}}}

执行结果:


 

4)无限循环的最简单表现形式

for( ;;){}

whiletrue){}

累加思想:通过变量记录住循环操作后的结果

 

0 0
原创粉丝点击