JAVA基础语法

Java的基础语法

变量和常量

变量:内存中一小块固定的空间,其中的内容是可变的。

常量:内存中一小块固定的空间,其中的内容是不变的。

Java是一种强类型的语言,申请的变量或常量的内存空间,必须先声明空间存储的数据类型。声明一个类型后,内存空间不能够存储声明以外的其他数据类型。

变量名:为声明内存空间起一个名字,不同变量之间变量名不能重复。

Java中的类型有两种:

  1. 基本数据类型(原始数据类型)

三大类共8种

  1. 数值类型

类型转换

10进制和2进制之间的转换  

 

 

  1. 整数类型(4种)  默认值是0

byte

1Byte   8bit

-27 → 27-1

short

2Byte   16bit

-215 → 215-1

int(默认)

4Byte   32bit

-231 → 231-1

long

8Byte   64bit

-263 → 263-1

 

  1. 浮点数类型    默认值是0.0

float      4Byte

double(默认)    8Byte

  1. 文字类型   默认值 \u0000;

  char   2Byte

  1. 布尔类型   默认值是  false(假)

  boolean    1Byte

                 true(真)

             false(假)

  1. 引用数据类型(今天不讲) 默认值是null

 

声明变量或常量的语法是:

类型  变量名;

int a;

int haha;

int abc;

int x123;

变量名命名规则:首字母只能是英文字母或_或$,其余字母可以是英文,_,$或数字。

变量名命名规范:首字母英文小写字母,其余字母是任意的。建议其余的每个单词的首字母应该大写

int empSalary;

变量的声明:当前阶段应该写在方法中

 

通过 = 进行初始化

a = 3; //将数字3放入到a表示的变量内存中

 

也可以在声明的同时立即初始化

int a = 3;

练习:声明int变量a和b,分别为a和b赋值10和15

 

基本数据类型的类型转换

  1. 自动类型转换
  1. 同样类型,范围小的向大的自动转换
  2. 整数类型向浮点数类型自动转换
  3. 字符型向int型自动转换
  4. 布尔类型不参与任何转换

  1. 强制类型转换

自动转换的顺序反向就需要强制转换

如果数据允许,不会出现问题

但是也可能造成精度丢失的问题

  1. 浮点数向整数转换,会丢失小数部分的精度
  2. 整数向整数转换,可能会丢失位(bit)的精度

500有9位  111110100   丢失多出的一位

Byte能存8位  11110100  ->  -12

操作符(运算符)

  1. 数学运算符

+,-,*,/,%

除法:两个整数相除,得到的结果一定是整数

数学运算中如果有浮点数参与计算,结果的类型一定是浮点数类型(double)

除法和取余操作的除数不能为0

整数:程序会报异常

浮点数:得到Infinity  无限 (无穷大)

 

取余操作:结果的符号问题

结果的符号与被除数的一致

 

练习:给定一个变量a,是一个三位正整数。分别显示出该三位数各个位置上的数字

  1. 单目运算符

只适用于整数变量

++ 表示整数自增1

   -- 表示整数自减1

   int a = 1;

   a++;   先使用a当前的值参与运算,随后a自增1

       ++a;   先将a自增1,再使用自增后的值参与运算

  1. 比较运算符(比较后的结果都是boolean类型)

> 大于   数字,字符

< 小于   数字,字符

== 等于  数字,字符,布尔

!= 不等于  数字,字符,布尔

>= 大于等于  数字,字符

<= 小于等于  数字,字符

  1. 赋值运算符

=    将等号右侧的表达式计算结果赋值给左侧的变量

+=  数字赋值   a += 5;   相当于 a = a+5;   a5

-=  数字赋值   a -=3;   相当于  a = a-3;   a3

*=    /=   %=

+= 包含了自动类型转换的功能

 

short s = 3;

s = s + 2//2int类型   s+2也是int类型   intshort赋值 认为出问题

s += 2; //自带类型转换

 

 

  1. 逻辑运算符

与  &&  

A && B   必须同时满足A和B即可

&&

true

false

true

true

false

false

false

false

或  ||

  A || B  满足A或B其一即可

||

true

false

true

true

true

false

true

false

非  !

  A = true    B=false

   !A == false;  !!A = true;  

   !B == true;   !!B = false;

与逻辑表达式表示一个综合的结果

 

&&||是短路的

Int a = 3;

Boolean b = (a++ > 3) && (a -- < 3);

b == false;

a == ?   4

因为(a++ > 3)的结果是false,决定了&&的运算结果一定是false。

所以第二个运算(a -- < 3)就不执行了,相当于只执行了a++,最后a==4

  1. 位(bit)运算符

& 与   1&1 = 1   1&0=0   0&1=0   0&0 = 0

| 或    1|1 = 1   1|0=1   0|1=1  0|0=0

^ 异或  1|1=0    1|0=1   0|1=1   0|0=0

课后作业:利用异或操作完成两个变量的数值交换

笔试:&&&的区别    |||的区别

&&:逻辑与,表示的是boolean值的逻辑运算,是短路的。

&:按位与,表示的是位(bit)运算,不是短路的

  1. 三目运算符

逻辑表达式  ? 值1 : 值2    (值1和值2的类型应该是一致的)

 如果逻辑表达式的值是true,使用值1

如果逻辑表达式的值是false,使用值2

练习:在控制台上输入一个整数,判断这个整数是否能同时被5和6整除,在控制台上输出“真”或“假”

 

表达式:变量和运算符组成一个算式就是表达式

 

条件与循环

条件和循环是整个程序的骨架

  1. 条件控制
  1. if

if(逻辑表达式){

}

当括号中的逻辑表达式结果为true时,执行{}中的代码

随机生成一个[0,9]区间的整数

判断该整数能否被2整除,在控制台上输出:x+”能被2整除

  1. if…else

if(逻辑表达式){

}else{

}

当括号中的逻辑表达式结果为true时,执行if分支{}中的代码

当逻辑表达式结果为false时,执行else分支{}中的代码

 

else只与与它同级的最近的if组成一个逻辑整体。Else不能单独使用

  1. if…else if(可以有多个)…else

if(逻辑表达式1){

}else if(逻辑表达式2){

} else if(逻辑表达式3){

}…

else if(逻辑表达式n){

}else{ //可省略

}

这些分支最多只能有一个分支被执行,执行第一个符合条件的分支

  1. switch

switch(x) {  //x的类型只能是byte,short,int,char, String

case a:   代码;    x == a时的分支

case b:   代码;    x==b时的分支

case n:   代码;   x==n时的分支

default:   代码;    相当于else

}

当x的值是b时,会执行b和b之后所有分支的代码

     break; 在分支结尾,可以跳出条件,不执行其他分支

条件分支是可以进行嵌套的

练习:随机生成一个整数[0,9],判断该数字是否是偶数,判断该数字能否被3整除

 

练习:在控制台上输入一个四位数表示年,写一个程序,判断输入的年是否是闰年,如果是闰年,在控制台上显示“闰年”否则显示“平年”

闰年的条件(满足其一即是闰年)

  1. 能被4整除且不能被100整除
  2. 能被400整除

 

 

  1. 循环控制

反复重复的事情。

程序中,循环的要素

  1. 初始值 工资卡的初始额
  2. 边界  1年  12个月的工资
  3. 增量  每月发放工资3000
  1. for

语法 for(初始值; 边界条件; 增量){

}

符合边界条件(条件为true),就会执行{}中的代码

int x = 0; //月薪

for(int i = 1; i <= 12; i++){

         x += 3000;

}

(1)(2)(4)位置上的代码可以省略,但分号不能省略。语法没有错误,但很可能造成死循环

 

 

循环的嵌套

多层循环嵌套后,内层循环完整执行一次,外层循环执行其中一轮。

循环的中断(重要)

通过break语句可以中断并跳出一层循环

通过continue语句可以放弃一轮循环,继续执行下一轮循环

笔试或面试:循环中breakcontinue的区别

  1. while

while(逻辑表达式){

}

当逻辑表达式的结果为true时,执行{}中的代码

  1. do…while

do{

}while(逻辑表达式);

当逻辑表达式的结果为true时,执行{}中的代码

 

While与do…while的区别:while循环中的代码可能一次都不执行,do…while循环中的代码至少会被执行一次

 

死循环

当循环程序无法结束一直运行,就会产生死循环。多数情况下是由于程序开发者编写的逻辑问题的产生

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值