JAVASE学习笔记第三天

标示符

1、java语言的组成:

关键字、标示符、注释、常量和变量、运算符、语句、函数、数组

2、关键字:

 

关键字的定义和特点

定义:被java语言赋予特殊含义的单词

特点:关键字中所有字母都为小写

用于定义数据类型的关键字

class

interface

byte

short

int

long

float

double

char

boolean

void

 

用于定义数据类型值的关键字

true

false

null

 

 

 

用于定义流程控制的关键字

if

else

switch

case

default

while

do

for

break

continue

return

 

用于定义访问权限修饰符的关键字

private

protected

public

 

 

 

用于定义类与类之间关系的关键字

extends

implements

 

 

 

 

用于定义建立实例及引用实例,判断实例的关键字

new

this

super

instanceof

 

 

用于异常处理的关键字

try

catch

finally

throw

throws

 

用于包的关键字

package

import

 

 

 

 

其他修饰的关键字

native

strictfp

transient

volatile

assert

 

 

3、标示符

a)       定义:在程序中自定义的一些名称

b)       组成:由26个英文字母、数字、_$组成

c)       标示符规则:数字不能开头、不可以使用关键字

d)       Java中严格的区分大小写

e)       注意:起名字的时候,遵循见名知意

f)        Java中的名称规范

l  包名:多个单词组成的时候,所有的单词小写

xxxxxx

l  类名接口名:多个单词组成的时候,首字母大写

XxxYyyZzz

 

 

l  变量名函数名: 多个单词组成的时候,第一个单词的首字母小写,第二个单词开始的每个单词首字母大写

xxxYyyZzz

l  常量名:所有的字母都是大写。多个单词时,每个单词用下划线连接。

XXX_YYY_ZZZ

 

4、注释:

Ø  定义:用于注解说明解释程序的文字就是注释

Ø  好处:提高代码的阅读性

Ø  Java中注释的格式:

单行注释: //注释文字

      多行注释:/*注释文字*/

      文档注释:/**注释文字*/

 

Ø  对于单行注释和多行注释,被注释的文字,不会被JVM解释执行

Ø  对于文档注释,是java特有的注释,其中注释的内容可以被JDK提供的javadoc所解析,生成一套以网页文件形式的该程序的说明文档。

Ø  注释是灭一个程序员必须要养成的良好的编程习惯。

Ø  例子:

 

/**

 这是我的Helloworld 程序

 @author 丽丽

 */

 class Demo

 {

      /*

       这是主函数,程序的入口

       它可以使得程序独立运行

       */

       public static voidmain(String[] args)

       {

            //这是输出语句,用于将括号内的内容打印到控制台

            System.out.println("hello world!");

       }

      

 

 

 

 

 

 

 

常量和变量

1、常量表示不能改变的数值

2、Java中常量的分类:

Ø  整数常量。所有的整数

Ø  小数常量。所有的小数

Ø  布尔型常量。只有两个值,true和 false

Ø  字符常量。 将一个字符或者字母用单引号标识

Ø  字符串常量。将一个或者多个字符用双引号标识

Ø  nul常量。只有一个数值:null

3、对于整数:java中有四种表现形式。

Ø  十进制:0-9,满十进1

Ø  八进制:0-7,满8进1,用0开头

Ø  十六进制:0-9 ,A-F ,满是16进1,用0x标识。

Ø  二进制:0和1的组合,满2进1。

 

进制的特点

1、进制的由来:在计算机中所有的数据都是以二进制的形式存在的。但是由于二进制中只有0和1,所以表示起来很麻烦,所以出现了其他的进制,三个一组为8进制,4个一组为16进制。

2、特点:进制越大,表现的形式越简单。

 

进制的转换(十进制和二进制)

1、十进制转换为二进制:除2取余,倒着写

2、二进制转换为十进制:乘以2的n次方幂,再求和。

进制的转换(十六进制和八进制)

1、对于其他进制的转换,我们一般先转换为二进制。

进制的转换(负数的二进制)

1、负数的而二进制最高位为1。

2、负数的二进制表现形式是其对应的整数的二进制取反加1.

注意:在计算机中整数占4个字节,即32位

 

 

例子:求-6 的二进制的表现形式。

 

     

6的二进制的表现形式:

0000-0000 0000-0000 0000-0000 0000-0110

取反之后:

1111-1111 1111-1111 1111-1111 1111-1001

加1之后:

1111-1111 1111-1111 1111-1111 1111-1010

所以-6的二进制表现形式为

1111-1111 1111-1111 1111-1111 1111-1010

 

     

     变量

1、变量的概念:

Ø  内存中的一块存储区域

Ø  该区域有自己的数据类型和变量名

Ø  该区域的数据可以在同一个数据类型范围内不断的变换。

2、为什么定义变量

Ø  用来不断的存放同一个数据类型的常量,使得该区域可以重复的使用

3、使用时需要注意的

Ø  变量的作用范围为{}

Ø  在定义变量的时候要赋予初始化值

4、  定义变量的格式

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

 

5、java语言是强类型的语言,对于每一个数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间。

基本数据类型

引用数据类型

数值型

字符型 char (2)

布尔型 boolean

整数(byte(1)、short(2)、int(4)、long(8))

浮点( float (4) 、double(8))

类 class

接口 interface

数组 []

 

注意:整数型默认为int ,浮点型默认为double

   例子:

       classDate

{

      public static voidmain(String[] args)   

      {

             byte b =2 ;//-128~127

            

             short c=30000;//一般是30000以内

            

             int a = 30;

            

             long d  = 90l; //一般加上l,从而说明是long类型

            

             float e = 3.5f; //默认为double,必须加f

            

             double t= 3.54;

            

             char m = ' '   ;

            

             boolean g =true;

      }

}

 

类型转换

1、自动类型转换(也叫做隐式类型转换)

2、强制类型转换(也叫做显示类型转换)

3、表达式的数据类型自动提升:

原则上向着大的转换

l  所有的byte、short、char的值被提升为int型。

l  如果一个操作数是long型,计算的结果是long型。

l  如果一个操作数是float型,计算的结果是float型

l  如果一个操作数是double型,计算的结果是double型

4、char类型的也是可以参加运算的。

 

 

算术运算符

 

运算符

运算

范例

结果

+

正号

+3

3

-

负号

b=4;b=-b;

-4

+

加号

5+5

10

-

减号

6-4

2

*

乘号

3*4

12

/

除号

5/5

1

%

取余

5%5

0

++

自增(前)

a=2;b=++a;

a=3;b=3

++

自增(后)

a=2;b=a++;

a=3;b=2;

--

自减(前)

a=2;b=--a;

a=1;b=1;

--

自减(后)

a=2;b=a--;

a=1;b=2;

+

字符串连接符

‘’hell’’+’’o”

“hello”

 

注意:

在%(取余)运算中,如果出现负数,只看被除数。(面试)

l  自加和自减

class OperateDemo

{

      public static voidmain(String[] args)

      {

             int a=3,b;

             b=a++;

             c=++a;

            

             System.out.println(a+","+b);

          System.out.println(a+","+c);

              

             //a=4 ;b=3;c=4

             //这是因为a++  相当于 a=a+1

             //在自加和自减中,++(--)在前,会先做++,在后则后做++;

            

      }

}

 

 

 

l  字符串连接符+

class OperateDemo2

{

      public static voidmain(String[] args)   

      {

             System.out.println("5+5="+5+5);

             //结果是5+5=55

             //当+表示字符串连接符的时候,最终的结果都会变成字符串

             //"5+5=5""5+5=55"

      }

}

 

转义字符

class OperateDemo3

{

       publicstatic void main(String[] args)

       {

              /*

              转义字符:通过\ 来转变后面的字母或者符号的含义。

              \n:换行

              \b: 退格,相当于backspace

              \r: 按下回车键。在windows系统中,回车符是由两个字符表示的,\r\n

              \t: 制表符。相当于tab键

              */

             

              //想打印带双引号的hello

              System.out.println("\"hello\"");

             

              //注意

              charch= '\n';

              //转义字符转过来的还是字符

                    

              charc = '你' ;

              //一个汉字占2个字节,一个字符占2个字节,所以0k(面试)

      

       }

}

 

 

 

 

 

赋值和比较运算字符

一、赋值

1、符号(都是一个运算符):

=、+=、-=、*=、/=、%=

注意:对于 +=、-=、*=、/=、%= 等是先做运算,然后把结果给左边

      例如:int a=2;a+=2;

            结果输出a=4;

2、  面试

short s =3;

s=s+2;

s+=2;

对于上述,s=s+2,编译失败,原因是s是short型,2是整型,在做运算的时候,s会被自动提升为int型,两个int型想加的结果为int型,无法赋值给short型的s;而对于s+=2;编译通过,这是因为+=运算符在给赋值的时候自动完成了强转操作。

 

二、比较运算符

 

运算符

运算

范例

结果

==

等于

4==3

false

!=

不等于

4!=3

true

小于

4<3

false

大于

4>3

true

<=

小于等于

4<=3

flase

>=

大于等于

4>=3

true

instanceof

检验是否是类的对象

“hello” instanceof String

true

 

注1:比较运算符的结果都是boolean,即结果要么是true,要么是flase;

住2:比较运算符“==”不能误写为“=”

 

逻辑运算符

运算符

运算

范例

结果

&

AND(与)

false&true

false

|

OR(或)

false|ture

true

^

NOR(异或)

true^true

false

!

Not(非)

!true

flase

&&

AND(短路)

false&&ture

false

||

OR(短路)

false||true

ture

 

说明:

1、     &:当两边有一个为false,结果为false;只有当结果都为ture的时候,结果为true;

2、     |:当两边有一个为true,结果为true;只有当结果都为false的时候,结果为false;

3、     ^: 同假异真

4、     !:!ture= false; !false=true;

5、     &&  ||  与 & | 的区别是双的会短路

即对于&& :当左边为false的时候,不判断右边

对于||:当左边卫ture时,不判断右边。

 

位运算(左移右移)(挺好)

运算符

运算

范例

<< 

有符号左移

3<<2=12相当于3*4=12

>> 

有符号的右移

6>>2=1相当于6/4=1

>>> 

无符号右移

3>>>1=1相当于3/2=1

&

与运算

3&6=2

|

或运算

6|3=7

^

异或运算

6^3=5

~

反码

~6= -7

 

 

1、对于左移和右移运算,相当于做乘除法,只是乘除的是2的倍数。

对于>> :相当于除以2的移动次数次幂      

对于<<:  相当于乘以2的移动次数次幂

2、有符号右移<< 和无符号右移>>> 的区别?

>> : 移动之后,左边补0还是1,看得是最高位

>>> :移动之后,左边永远补0

3、注1:移位的原理是二进制的移位。

注 2:作为职业程序员,我们一般会选择用这个。

4、位运算就是诸位的二进制进行运算。

5、反码:我们知道,负数是其对应的整数取反加1得来的,所以反码,就是这个数减1,取反,再加上符号得来的。

6、一个数异或上同一个数两次结果还是那个数。

例如:3^5^5=3

 

 

 

 

 

位运算练习

1、对两个整数变量的值进行互换(不需要第三方变量)(实际开发中不怎么用)

 class Test

{

       public static voidmain(String[] args)

       {

              int m=3,n=4;

              System.out.println("m="+m+","+"n="+n);

              n=n^m; 

              m=n^m;//(n^m)^m=m

              n=n^m;//(n^m)^n

              System.out.println("m="+m+","+"n="+n);

       }

}

 

练习2&三元运算符

1、格式

(条件表达式)?表达式1:表达式2;

如果结果为true,执行表达式1,否则执行表达式2

2、示例:

获取两个数中的最大者

class Demo

{

       public static voidmain(String[] args)

       {

              int x = 3,y=5;

              System.out.println((x>y)?x:y);

       }

}

3、因为是三元运算符,所以必须有返回结果。

if 语句

1、if语句的三种格式:

l  单层:

 If(条件表达式){执行语句;}

 

 

 

l  双层:

if(条件表达式)

{

        执行语句;

}

else

{

  执行语句;

}

l  多层嵌套

If(条件表达式)

{

       执行语句;

}

else if (条件表达式)

{

       执行语句;

}

Else if (条件表达式)

{

       执行语句;

}

…………

else

{

       执行语句;

}

 

说明:

先判断if中的条件表达式,满足执行,不满足,判断条件else if中的条件表达式,。。。。如果以上都不满足,则执行else语句。

 

例子:

   class Demo2

{

      public static voidmain(String[] args)   

      {

             int m= 3;

             if(m>1)

                    System.out.println("a")     ;

             else if(m>2)

                    System.out.println("b")     ;

             else if(m>1)

                    System.out.println("c")     ;

             else

                    System.out.println("d")     ;

                          

      }

}

//输出结果为a

 

注意:无论是单层、双层还是多层都是同一体。

 

If练习

/**

 需求1:根据用户定义的数值不同,打印对应的星期英文   

 思路:使用if else嵌套语句实现。

 

 需求2:根据用户指定的月份,打印该月份所属的季节。

      假设3,4,5是春节,6,7,8是夏季,9,10,11是秋季,12,1,2是冬季

 思路1:值相等的方法

 思路2:区间判断的方法   

     

 */

 

class IfTest

{

       publicstatic void main(String[] args)

       {

              intday = 4;

             

              if(day==1)

                     System.out.println(day+"星期一");

              elseif(day==2)          

                     System.out.println(day+"星期二");

              elseif(day==3)          

                     System.out.println(day+"星期三");

              elseif(day==4)          

                     System.out.println(day+"星期四");

              elseif(day==5)          

                     System.out.println(day+"星期五");

              elseif(day==6)          

                     System.out.println(day+"星期六");

              elseif(day==7)          

                     System.out.println(day+"星期日");

              else

                     System.out.println(day+"不存在");

                    

                    

              intmonth=1;

             

              //思路1

              if(month==3||month==4||month==5)

                     System.out.println(month+"春季");

              elseif(month==6||month==7||month==8)

                     System.out.println(month+"夏季");

              elseif(month==9||month==10||month==11)

                     System.out.println(month+"秋季");

              elseif(month==12||month==1||month==2)

                     System.out.println(month+"冬季");

              else

                     System.out.println(month+"不存在");

                    

              //思路2

              if(month>12&&month<1)

                     System.out.println(month+"不存在");

              elseif(month>=3 && month<=5)

                     System.out.println(month+"春季");

              elseif(month>=6 && month<=8)

                     System.out.println(month+"夏季");

              elseif(month>=9 && month<=11)

                     System.out.println(month+"秋季");

              else

                     System.out.println(month+"冬季");

       }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Switch语句

 

1、格式:

switch(表达式)

{

        case 取值1:

        执行语句;

break;

case 取值2:

执行语句;;

break;

……

default:

执行语句;

break;

}

2、switch语句的特点

a)       switch语句选择的类型只有四种:byte、short、int、char、字符串、枚举类型。

b)       无序性,就是case与default之间没有顺序,但是先执行第一个case,没有匹配的才执行default

c)       结束switch语句的两种情况:遇到break或者执行到switch语句结束。

d)       如果case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

3、代码:

class SwitchDemo

{

       public static voidmain(String[] args)

       {

              int a =3;

             

              switch(a)

              {

                     case 4:

                            System.out.println("a");

                            break;

                     case 5:

                            System.out.println("b");

                            break;

                     case 3:

                            System.out.println("d");

                            break;

                     default:

                            System.out.println("不对");                  

              }

                  

              //结果为d

             

              System.out.println("===============================");

                    

              //无序性+缺少break

              int b= 5;

             

              switch(b)

              {

                     default:

                            System.out.println("a");

                     case 3:

                          System.out.println("b");

                   case4:

                          System.out.println("d");

                          break;               

                   case1:

                          System.out.println("m");                                        

              }

              //输出结果为 a b d

             

              System.out.println("===============================");             

             

              //switch选择语句的类型为char

              int c=3,d=5;

              char ch='+' ;

             

              switch(ch)

              {

                     case '+':

                            System.out.println("加"+(a+b));

                            break;

                     case '-':

                            System.out.println("减"+(a-b));

                            break;                        

                     case '*':

                            System.out.println("乘"+(a*b));     

                            break;                        

                     case '/':

                            System.out.println("整除"+(a/b));

                            break;                                                                                              

                     default:

                            System.out.println("不是合法的运算");

              }

       }

}

 

Switch语句的练习

1、

/**

 需求:根据用户指定的月份,打印该月份所属的季节。

      假设3,4,5是春节,6,7,8是夏季,9,10,11是秋季,12,1,2是冬季

 

 */

 class SwitchTest

 {

      public static void main(String[] args)

      {

             int month=6;

            

             switch(month)

             {

                    case 3:

                    case 4:

                    case 5:

                           System.out.println(month+"春季");

                           break;

                    case 6:

                    case 7:

                    case 8:

                           System.out.println(month+"夏季");

                           break;

                    case 9:

                    case 10:

                    case 11:

                           System.out.println(month+"秋季");

                           break;

                    case 12:

                    case 1:

                    case 2:

                           System.out.println(month+"冬季");

                           break;

                    default:

                           System.out.println(month+"不存在") ;                      

             }

      }

 }

 

If和switch语句很像,具体什么场景下用哪个语句呢?

如果判断的具体的数值不多,而且符合byte、short、int、char四种类型,用switch,这样效率会高。

其他情况,对区间判断、对结果判断为boolean类型,使用if。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值