Java开发--2--语法基础

2.1 相关基础

Java所有的组成部分都需要名字。
类名、变量名以及方法名都被称为标识符。

标识符命名规则:

1、由字母、数字、下划线、$组成,不能以数字开头。
2、注意大小写敏感。即hello和Hello是不一样的。
3、不得使用java中的关键字和保留字。

标准的变量命名示例:

int localAreaCode

优秀的标识符命名习惯:

1、标识符要符合语义信息。
2、包名:所有字母小写。
3、类名:每个单词首字母大写,其它小写,如:TarenaStudent
4、变量和方法:第一个单词小写,从第二个单词开始首字母大写,如:tarenaStudent
5、常量:所有字母大写,每个单词之间用下划线"_"连接。如:final int ESCAPE_CODE = 27;
常量即程序运行过程中一直不变的值。声明常量在变量声明前加上关键字final,并指定初始值。

对于局部变量,在程序使用它之前(声明的时候是不赋值的),必须给它赋值,否则编译错误:

信息类型 变量名;             //如:int length; 这是声明
信息类型 变量名1,变量名2;     //如:String country,city,home;
信息类型 变量名=;          //如:int box = 345; 这是使用

类所属的包是使用package语句指定的,这种语句必须位于类的最前面:

package com.long.java           //导入包示例

Java代码运行结果输出:

System.out.println("hahaha")       //注意是printLn,易混淆字母大写可见
System.out.print("hahaha")        //print为在一行输出,不管有多少个print

Java代码注意点:

1、以双斜杠的单行注释://
2、多行注释:/*---------这是注释---------*/
3、Java语句都以英文;结尾

2.2 Java基本数据类型

1、基本数据类型一览表

类型名称 字节空间 其他说明 使用场景
byte 1字节(8位) 范围:-2^7 ~ 2^7-1 存储字节数据(较常用)
short 2字节(16位) 范围:-2^15 ~ 2^15-1 兼容性考虑(很少使用)
int 4字节(32位) 范围:-2^31 ~ 2^31-1 存储普通整数(常用)(整数默认)
long 8字节(64位) 范围:-2^63 ~ 2^63-1 存储长整数(常用)
float 4字节(32位) \ 存储单精度浮点数(不常用)
double 8字节(64位) 存在舍入误差 存储双精度浮点数(常用)(浮点默认)
char 2字节(16位) 单一的16位unicode字符 存储一个字符(常用)
boolean 1字节(8位) 默认值是false 存储逻辑变量(true/false)(常用)

2、整数相除舍弃小数

int c = 5/3;
System.out.println(c);           //c的值为1

3、整数过大溢出

int a = 2147483647; 
int b = -2147483648;
a = a + 1;
b = b - 1;
System.out.println("a=" + a);      //输出结果:a=-2147483648,溢出,过大突变为负数
System.out.println("b=" + b);      //输出结果:b=2147483647。溢出,过小突变为正数

4、表示长整型要以L结尾

long a = 10000000000000L;           //不加L程序会默认为int型,从而报错

5、长整型数运算

long a = 10000*365*24*60*60*299792458L;     //必须有一个long型数参与运算的结果才是long型
System.out.println("a=" + a);               //a=18762816316238618726381,结果正确

long b = 10000*365*24*60*60*299792458;      //没有一个long型数据参与运算,程序默认int型
System.out.println("b=" + b);               //b=-187628163,结果错误,溢出了

6、长整型获取时间

long time = System.currentTimeMillis();
System.out.println(time);         //返回1970年1月1日0点到此时此刻的毫秒数,为long型

7、双精度浮点数运算

double pi = 3.14;
double r = 8;
double s = pi*r*r;
System.out.println("s=" + s);             //输出结果为s=200.96

8、double类型的两种写法

3.140.236              //常规写法
1.25E21.25E-2         //科学记数法。1.25E2表示1.25乘以10的2次方

9、布尔型程序

int age = 18;
boolean ischild = age<16;            //条件不成立,返回false
System.out.println(ischild);         //输出false
boolean running = true;              //布尔型赋值,只能赋予true或者false
boolean closed = false;

10、字符型程序

可以装入unicode字符编码集中的任何字符,字符直接量放在单引号之中。
只能一个字符一个字符的表示。
'abcde'是错误的,必须是'a','b','c','d','e'

char c1 = '中';          //c1中存的是[中]的unicode编码,Java字符类型采用unicode字符集编码
char c2 = '\u4e2d';     //char类型可以装入unicode集中的任何一个字符
System.out.println(c1);            //输出汉字[中]
System.out.println(c2);            //输出汉字[中]

常见转义字符

转移字符 含义
\n 表示回车符
\r 表示换行符
\\ 表示反斜杠:\
\’ 表示单引号:’
\" 表示双引号:"
\f 表示换页符
\b 表示退格符
\0 表示空字符
\s 表示字符串
\t 表示制表符

11、常量修饰和变量修饰

final double PI=3.14159;       //常量需要使用final修饰。通常使用大写字母使用常量
"hello world hahaha"           //字符串常量包含在两个引号之间
char a='A';                    //变量需要使用变量数据类型来修饰

12、基本类型之间的转换

自动类型转换:从小类型到大类型可以自动完成

byte --> short --> int --> long --> float --> double
-------- char ---> int         //各种基本类型参与的运算中,运算结果会自动向大的类型转换

强制类型转换:从大类型到小类型需要强制转换符

需要转换成的类型  变量            //注意:那个小括号必须有。可能会造成精度损失或溢出

示例代码

char c1='a';                   //定义一个char类型
int i1 = c1;                   //char自动类型转换为int
System.out.println("char转换为int后"+i1);        //输出结果为:97

char c2 = 'A';                //定义一个char类型
int i2 = c2+1;                //char 类型和 int 类型计算
System.out.println("char和int计算后"+i2);         //输出结果为:66

2.3 表达式和运算符

1、Java算术运算符及衍生

运算符 表达式 计算 结果(假定x=10)
+、-、*、/、% 加、减、乘、除、取余 \ \
+= x += 5 x = x + 5 15
-= x -= 5 x = x - 5 5
*= x *= 5 x = x * 5 50
/= x /= 5 x = x / 5 2
%= x %= 5 x = x % 5 0
<<=(左移位赋值) x <<= 5 x = x << 5 320
>>=(右移位赋值) x >>= 5 x = x >> 5 10
&=(按位与赋值) x &= 5 x = x & 5 0
^=(按位异或赋值) x ^= 5 x = x ^ 5 5
|=(按位或赋值) x |= 5 x = x | 5 5

2、自加和自减运算:++、–

num++;               //相当于:num=num+1。++在后,先取值再增1
num--;               //相当于:num=num-1
++num;               //++在前,先增1再取值
----------------------------------------------------------------
int num = 5;
System.out.println(num++);       //先取值再增1。输出结果:5
System.out.println(num);         //已经自增完毕,此处输出:6

int num2 = 5;
System.out.println(++num2);      //先增1再取值。输出结果:6
System.out.println(num2);        //已经自增完毕,此处输出:6

3、Java关系运算符

大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、不等于(!=)
关系运算符的结果均为布尔类型,关系成立返回true,关系不成立返回false
"=="比较的是地址、“equals”比较的是内容

-----------------------------------------------------------------------
int max = 10;
boolean b1 = max > 15;
System.out.println(b1);             //输出结果为false

4、Java逻辑运算符

(&&)、或(||)、非(!)
逻辑运算的变量或表达式都是boolean类型,运算结果也为boolean类型
--------------------------------------------------------------
int score = 80;
boolean b = score >= 60 && score < 90;
System.out.println(b);               //输出结果为true

逻辑短路:

对于&&来说,当第一个操作数为false时,将不再对后面的操作数进行计算处理。
对于||来说,当第一个操作数为true时,将不再对后面的操作数进行计算处理。后面的代码得不到执行,将有可能影响之后的代码运算结果。

5、Java赋值运算符

赋值(=)
--------------------------------------------------------------------
int a,b,c;
a = b = c = 100;             //a,b,c都是100
int a=1,b=2,c=3;             //也可以这样书写。注意要先声明变量类型

6、字符串连接运算符

字符串连接(+)
两边都为数字做加法,若一边有字符则做字符串拼接。注意从左向右的先后顺序
-------------------------------------------------------------------------
int a = 100;
String msg = "a=" + a;
System.out.println(msg);         //输出:a=100

msg = "" + 100 + 200;
System.out.println(msg);         //输出结果为:100200
msg = 100 + 200 + "";
System.out.println(msg);         //结果为:300

7、字符串长度

String site = "hello";      //字符串是双引号括起来的一系列字符
int len = site.length();    //Java使用length方法来返回字符串对象包含的字符数
System.out.println( "hello长度 : " + len );        //输出结果为5

8、Java Math类

Java的Math包含了基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。

System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));  
System.out.println("0度的余弦值:" + Math.cos(0));  
System.out.println("60度的正切值:" + Math.tan(Math.PI/3));  
System.out.println("1的反正切值: " + Math.atan(1));  
System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));  
System.out.println("圆周率:" + Math.PI);             

2.4 下断点调试

1、此时不能直接点run运行,而是点击debug运行,之后再F8单步运行。

2、下断点在于看清楚内存的变化,否则一闪而过什么都看不到。例如循环时,可以看到一个数一个数的变化,看清运行过程细节,发现过程中途的敏感数据。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章