第二章——Java语言基础

2.1标识符和关键字

Java使用Unicode标准字符集。这个字符集采用16位编码,它的前256个字符与ASCII字符集完全一致。除此以外,这个字符集还提供了其他的语言文字,如汉字等等

Unicode的一个常识从大到小的排序:小写字母a-z----大写字母A-Z-----数字0-9

(也就是:先后顺序是数字——大写字母——小写字母)

1.标识符

1.标识符就是名称。

2.Java标识符的规则:

1)由字母、下划线、数字和美元符号$等组成

2)并且第一个字符不能是数字。

3)区分大小写

3.标识符命名的约定习惯:

1)变量、对象、方法、包名都采用小写字母,如果由多个单词组成,那么首字母小写,其余单词首字母大写。eg:  getAge

2)类名的首字母需要大写

3)常量名全部大写

2.关键字

都是小写单词,有着特殊含义。

2.2数据类型与常量、变量

2.2.1分类

 2.2.2基本数据类型

1.整数类型 

数据类型所占字节是否可以取到负数
long(长整型)8可以
int4可以
short2可以
byte1可以

整数表示形式:十进制、八进制(以0为前缀,如013)、十六进制(以0x或0X为前缀)

2.浮点数类型

科学计数法表示浮点数:2.5E4=2.5×10^4

类型字节
float4
double8

浮点数是默认为double的。如果想要表示float小数,在后面加f,比如3.45f。

(注:float不意味着只能保留一位小数,相反,它最多可以保留六位小数)

3.字符类型(char)

一个字符占两个存储单元

三种表示方法:

1.单引号括起来,比如‘a’

2.Unicode码表示,前缀为\u,比如\u0043='C'

3.转义字符:\n:换行(转义字符长度也是一个字符)

多个字符组成字符串(类型),用“ ”括起来。

4.布尔类型

只有true和false两个值,大小是一个字(1B)

java里面不允许用1代表true, 0代表false

布尔类型可以参与逻辑运算,但是不能参与算术运算

2.2.3常量

符号常量(标识符表示的常量)四个基本要素:名称、类型、值、使用范围。

符号常量声明方式:(用关键字final修饰)

(常量之后不可以修改了)

final [修饰符] 类型标识符 常量名(后面赋值)
eg:
final float PI=3.14159
(注意,3.14159是默认double的,double不能转float(高转低需要强转),因此上面的语句是错误的。)
因此需要定义成下面这种:
final float PI=3.14159f;

2.2.4变量

变量也有四个基本要素:名称、类型、值、使用范围。

变量先声明后使用。

//变量的声明方式:
[修饰符] 类型标识符 变量名(后面可以赋值)
eg:
float x=25.4,y=20;
上面的定义会报错,是因为25.4默认是double类型,double——float是高转低,需要强转;
y=20反而没错,因为int——float会自动转换。
应该是;
float x=25.4f,y=20;

2.2.5实际练习

public class Exercise
{    public static void main(string args[])
    {    float a=35.45f;
         string  str1="\n";
         boolean  instance1=false;
         System.out.println("a="+a+str1+"逻辑状态1="+instance1);
}
结果会输出:
a=35.45
逻辑状态1=false

上面的代码有这些注意事项:

·println里面“ ”的内容会原封不动打印在屏幕上,而加号(+)表示在前面内容显示完之后再显示后面的内容。如果没有双引号括住,那么会转化成它实际的意义,比如str1转化成换行。

·数字默认是十进制输出

2.3运算符和表达式

关于单目、双目、多目运算符:

单目:一个数搁哪儿自个算,比如++、--、-(取负)

双目:表示两个数的运算关系

优先级:单目>双目

2.3.1运算符

1.算数运算符

双目:加、减、乘、除、取余(%),最后一种在C语言中,只能用于整数类型,但是在Java中,也可以用于小数类型。

eg:-5.0%1.5=-0.5(取余结果的符号和被除数相同)

单目:++、--、-(前两种只能用于整数类型变量

++n和n++的区别:前者先++,再取运算后的n值;后者先取n值,再++。

哪个在前就先干什么,这样子记。

2.关系运算符(都是双目)

>,  <,  >=,  <=, (前四种不能用于比较字符串)==,  !=

六者都可以用于整数、小数以及字符类型(字符类型比较是依据Unicode的值)。

关系成立为true,不成立为false(结果为bool型)

3.逻辑运算符

boolean类型运算,&&、||、!(前俩双目,后面单目)

(不能针对Int,double等类型用!)

与运算和或运算遵循数电里面的“与门”“或门”。

&&和||具有短路计算的功能,即从左到右判断是否满足,一旦满足条件就停止计算。

4.位运算符

~(按位取反,eg: ~x)、&、|、^(按位异或)、<<、>>、>>>(无符号右移位)

5.赋值运算(=)

复合赋值运算:

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

6.条件运算符(三目运算)

a?b:c

意思:a对吗?对了执行b,不对执行c。

7.括号运算符

2.3.2表达式

数据类型转换:

1.精度低转精度高——可以自动转换

2.精度高转精度低——需要强制转换(会丢失信息)

强制转换只能把整体数值进行一个转换

字符型可以自动转换为int型,数值为ASCII值。

Int到char只能强制转换。

例子:大小写转换

这里有个很有意思的事情:
int i=15,j=4;
float f1;
f1=i/j;
结果是f1=3.0.因为在i/j的时候,他是不管左面是int还是float的,只有当运算完毕的时候,才进行类型的转换。
如果是f1=(float)i/j;
f1=3.75

2.4数据的输入和输出

Scanner类:使用该类创建的对象可以扫描控制台的输入,即程序直接读取键盘输入的数据

Scanner in=new Scanner(System.in);  //创建Scanner类下面的对象in,System.in 属于标准输入流

之后调用Scanner类的下列方法读取控制台输入的各类数据

int a=in.nextInt(); //输入int类型的数据
double b=in.nextDouble();//输入double类型的数据
float c=in.nextFloat();//输入float类型的数据

使用Scanner类,java源文件中必须包含
import java.util.Scanner
或者import java.util.*
这里util相当于一个库文件,Scanner是下面的一个类。用*表示导入util的所有类,当然包括了Scanner

2.5常用数学函数

java.lang.Math类提供方法来执行基本数学函数的运算,接下来所有的方法都是Math.XXXX()

1.abs()方法:返回绝对值

eg:int x=Math.abs(50)

2.pow(double y, double x),返回double类型,实现y^x

3.round()方法:返回最接近操作数的整数,算法是将操作数加0.5,并向下取整。对于正数而言就是四舍五入。常常用于保留x位小数

Math.round(11.5)返回12

Math.round(-11.3)返回-11

Math.round(-11.5)返回-11

Math.round(-11.6)返回-12

//保留两位小数
x=Math.round(x*100)/100.0;
//保留三位小数
x=Math.round(x*1000)/1000.0;
x位小数以此类推

4.sqrt( ):开平方根,返回double类型

5.max( ):返回最大值

6.min( ):返回最小值

7.random( ):返回一个double类型,范围大于等于0.0小于1.0(即0-0.999999),可以产生固定范围内的随机整数

公式:(int)((上界-下界+1)*Math.random()+下界)

比如:a=(int)(Math.random()*10);产生0-9的随机整数

8.sin()方法:返回给定角度(需要用弧度制)的正弦值

Math里面提两个常数:Math.PI表示圆周率, Math.E表示常数e

9.cos()方法

10.exp()方法:返回常量e为底数的幂函数

11.log()方法:返回常量e为底的自然对数

2.6用Java写表达式

判断a和b同为正整数或者同为负整数
a*b>0 && a==(int)a && b==(int)b

z=y+++x,是相当于z=(y++)+x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值