1.1.2.标识符规范由多个字符按一定规则构成的一个名称
1.2关键字1.标识符由26个英文字符大小写(azAZ)、数字(0~9)、下划线(_)和美元符号($)组成。
2.不能以数字开头,不能是关键字
3.严格区分大小写
4.标识符的可以为任意长度,但不宜过长
2.基本数据类型关键字是java语言系统中赋予了特殊意义的标识符,程序员不能把关键字当成普通标识符使用
java数据类型分为两大类,即基本数据类型和引用数据类型
而基本数据类型分为三大类:1.数值型 2.字符型 3.布尔型
数据类型分类如下,画得难看将就吧:
2.1.布尔型2.2.整数类型布尔型数据表示逻辑上的“真”或“假”。java语言用关键字boolean定义布尔型变量,布尔数据在内存中占1字节,其值只能是true或false
整数类型包括正整数和负整数,分类为4种:byte(字节型),short(短整型),int(整型),long(长整型)
2.2.1.byte2.2.2.short一个byte数据在内存中占1字节,数值范围是-128~127
2.2.3.int一个short数据在内存中占2字节,数值范围是-32768~32767
2.2.4.long一个int数据在内存中占4字节,数值范围是-2147483648~21474483647
2.3浮点类型一个long数据在内存中占8字节,数值范围是-263~263-1
带有小数的数值即浮点类型,浮点类型一般分为float(单精度型)和double(双精度型)两种
2.3.1.float2.3.2.double一个float数据在内存中占4字节,数值范围是1.4E-45~3.4028235E38
2.4.字符型一个double数据在内存中占8字节,数值范围是4.9E-324~1.7976931348623157E308
关键字 char表示字符型。一个字符型数据在内存中占2字节,单个字符属于字符型数据。字符型必须使用单引号括起来,如‘a’,‘b’.
3.变量程序中数据有两种存在方式:一是变量,二是常量
变量就是程序员给存储单元起的名字,存储单元存储的数据就是变量的值。
在程序执行过程中,存储单元存放的数据可以改变,即变量是可变的“量”
3.1.变量的定义变量有自己的数据类型,在使用变量前必须定义变量,定义变量就是告诉编译器这个变量的类型,这样,编译器才知道该为变量分配多大的存储单元,保存什么类型数据。
例子:
public class definevar{
public static void main(String args[])
{
int age=10;
char varchar='a';
System.out.println("age="+age+" "+"varchar="+varchar);
age=80;
varchar='b';
System.out.println("age="+age+" "+"varchar="+varchar);
}
}
d:java训练ch4>javac definevar.java d:java训练ch4>java definevar age=10 varchar=a age=80 varchar=b3.2.变量的三要素 3.2.1.变量名
3.2.2.变量数据类型程序员给变量起的名字,如上面程序中的age和varchar
3.2.3.变量的作用域定义变量时指定的数据类型,编译器根据变量类型来分配存储单元大小,如上面程序中的char 和 int
4.常量指变量起作用的范围,上面程序,age和varchar定义在main函数中,故其作用域为main函数内
4.1符号常量 4.1.1符号常量介绍分类:常量分为符号常量和字面常量
4.1.2.符号常量定义符号常量也是程序员给某个存储单元起的名字,只不过在程序执行期间,符号常量的值保持不变。
符号常量使用final定义。一般来说,符号常量的名称都用大写字母表示
例:
public class ComputeCircle{
public static void main(String args[])
{
final double PI=3.141592653589793238462643383279;
double r=5;
System.out.println("圆的半径:"+r);
System.out.println("圆的周长:"+2*PI*r);
System.out.println("圆的面积:"+r*r*PI);
}
}
d:java训练ch5>javac ComputeCircle.java d:java训练ch5>java ComputeCircle 圆的半径:5.0 圆的周长:31.41592653589793 圆的面积:78.53981633974483
符号常量或变量被定义后可以通过赋值语句复制,但常量只能赋值一次,变量则可以赋值多次。
4.2.字面常量 4.2.1.字面常量介绍4.2.2.字面常量分类在给变量赋值时,这个值往往就是字面常量,例如:int age=10,中10就是一个字面常量
4.2.2.1.整数字面常量字面常量分三大类:基本类型字面常量,字符串类型字面常量,和布尔类型字面常量
整数字面常量可以用不同进制数表示,具体表示如下表
| 特征 | 举例 |
|---|---|
| 十进制:无 | 50 |
| 八进制:开头加0 | 062 |
| 十进制:开头加0x | 0x32 |
| 二进制:开头加0b或0B | 0b110011 |
注意!用整型字面常量给各种类型(byte,int,short,long)的变量赋值时,一定不要超过变量允许的范围
//错误语句 byte x=130; //byte类型范围是-128~127,已超出!错误!
给long类型变量赋值时,字面常量后要加上字母l或L,如果不加,就会把该字面常量当作int类型,例如:
//错误语句L long x=2147483648; //int类型范围是-2147483648~2147483647,已超出!错误!
//改进 long x=2147483648L;4.2.2.2.浮点型字面常量 4.2.2.2.1.浮点型介绍
浮点型字面常量分为两种:float和double
float型表示:11.2f,33.2f,777.0f
double型表示:4.0d(double型d可省略),32.55,9.55
注意!书写float字面常量时必须在末尾加上f,否则会被当作double字面常常,例如:
float x=888.0; //这里888.0等同于 888.0d4.2.2.2.2.浮点型组成
整数部分 + 小数点 + 小数部分 + 幂(可选)
如:
2.35
整数部分是2,小数部分是35,无幂
0.5E12
整数部分无,小数部分5,幂12
当整数部分为0时,则可省略,如0.5可写做.5
4.2.2.3. 布尔型字面常量4.2.2.4.字符型字面常量布尔型字面常量只有两个值:true和false
字符型字面常量即是用单引号括起来的字符值如:‘a’,‘b’,’!’,‘7’,‘爱’.
也可以用unicode代码表示字符型字面常量,但要转换为16进制使用
如:
b的unicode码为98,所以用unicode代码表示就需要将98转换为16进制62,再‘u0062’如此表示
| 转义字符 | 作用 | Unicode表示 |
|---|---|---|
| n | 回车 | (u000a) |
| t | 水平制表符 | (u0009) |
| b | 空格 | (u0008) |
| r | 换行 | (u000d) |
| f | 换页 | (u000c) |
| ’ | 单引号 | (u0027) |
| " | 双引号 | (u0022) |
| 反斜杠 | (u005c) | |
| ddd | 三位八进制 | |
| udddd | 四位十六进制 |
char类型的变量和常量都可以像int型数据一样参与运算,如果把一个0~65535范围内的int型数据赋予char变量,则编译器会自动把它当作char型数据处理
5.基本类型转换5.1.基本数据类型精度排序类型转换可分为两种:
1.自动转换:不需要程序员干预,系统自动进行
2.强制转换:程序员必须使用类型转换符进行转换,可能会导致精度的丢失
byte< short < int < long < float < double
5.2.自动转换5.2.1.赋值语句转换从低精度向高精度转换属于自动转换
float xx=500; //把整数500转换为浮点型,结果为500.005.2.2.表达式中的数据类型转换
int h=73; float y1=27.8f; double=y1+73;
在计算表达式y1+73前,系统自动将73转换为float型。
5.3.强制转换从高精度向低精度转换属于强制转换
(type)data //将data数据转换为type类型
int x=(int)600.9f;
会导致精度丢失
6.运算符和表达式运算符是一种特殊符号,它规定了数据之间的计算规则,根据运算符性质,可分为七种:
1.赋值运算符
2.算术运算符
3.关系运算符
4.逻辑运算符
5.条件运算符
6.位运算符
7.其他运算符
6.1. 赋值运算符表达式是用运算符把常量、变量、结合在一起构成的式子(单独一个变量或常量也算),如:PIrr
“=”是赋值运算符,其作用是给变量赋值,“=”左边必须是一个变量,右边则是一个表达式
6.1.1.“=”右边是表达式int age=2; char c1='w'; char c2=c1;
int x=5,y=20; int z=2*x+y-30;6.1.2.复合赋值运算符
| 运算符 | 演示 | 等价于 |
|---|---|---|
| += | x+=y | x=x+y |
| -= | x-=y | x=x-y |
| *= | x*=y | x=x*y |
| /= | x/=y | x=x/y |
| %= | x%=y | x=x%y |
| &= | x&=y | x=x&y |
| <<= | x<<=y | x=x< |
6.2.1.一元运算符依据运算符连接数据的个数可以分为三种:
1.一元运算符
2.二元运算符
3.三元运算符(条件表达式,此处先不讲)
6.2.1.1. +、- 运算符一元运算符只操作一个数据,它们是:
+(正)
-(负)
++(自增)
–(自减)
+5 //表示整数 -6 //表示负数6.2.1.2. ++、-- 运算符
++x //使x值加1,表达式的值同时加1 --x //使x值减1,表达式的值同时减1 x++ //使x值加1,表达式的值不变 x-- //使x值减1,表达式的值不变
例:
int x=1; int y=1; int k1=++x; //k1得到值2 int k2=--x; //k2得到值0 //x值为2,y值为0 int i=1; int j=1; int k3=i++; //k3得到值1 int k4=j--; //k4得到值1 //i值为2,j值为06.2.2. 二元运算符
6.2.2.1. +、-运算符二元运算符即是对两个数据进行操作,有:
1.+(加)
2.-(减)
3.*(乘)
4./(除)
5.%(取余)
+、- 运算符的优先级是4级,其结合方向是从左到右:
7+8-5 //先计算7+8再用结果 - 56.2.2.2. *、/和%运算符
*、/、% 运算符的优先级是3级,其结合方向是从左到右:
12%5 //求余运算,12/5余2 5*3/5 //先求5*3,再用结果 / 56.2.3. 算术表达式
用算术运算符和括号连接起来的式子称之为算术表达式:
x+2*y-30+30(y+5)
整个算术表达式的类型是数值类型,即整型和浮点型
6.3. 关系运算符 6.3.1.关系运算符含义关系运算符可以比较两个数据的大小关系,其结合方向是从左到右:
| 运算符 | 含义 | 举例 | 运算结果 | 优先级 |
|---|---|---|---|---|
| > | 大于 | 5>3 | true | 6 |
| < | 小于 | 6<3 | false | 6 |
| >= | 大于 等于 | ‘b’>=‘a’ | true | 6 |
| <= | 小于等于 | 5<=5 | true | 6 |
| == | 等于 | 5==3 | false | 7 |
| != | 不等于 | 7!=7 | false | 7 |
注意:字符型比较的是unicode码
6.3.2.关系表达式用关系运算符和括号连接起来的式子称为关系表达式,其值为boolean型。例:
’w‘>'t' //表达式值为true (x+y)>80 //设x=20,y=90,则表达式值为true6.4.逻辑运算符 6.4.1.逻辑运算符含义
逻辑运算符其操作对象必须是boolean类型。(布尔型常量、变量、表达式)
| 运算符 | 举例 | 含义 | 结果 |
|---|---|---|---|
| && | a&&b | 短路与 | ab 全为 true 时,计算结果为 true,否则为 false。 2>1&&3<4 true |
| ! | !a | 逻辑非 | a 为 true 时,值为 false,a 为 false 时,值为 true !(2>4) true |
| & | a&b | 逻辑与 | ab 全为 true 时,计算结果为 true,否则为 false 1<2&3<5 true |
或类型就不放在表格了,因为我不知道怎么包“|”放进表格
||:短路或 a || b #ab 全为 false 时,计算结果为 false,否则为 true。 2<1||3>4 false |: 逻辑或 a|b #ab 全为 false 时,计算结果为 false,否则为 true 1>2|3>5 false6.4.2.逻辑表达式
用逻辑运算符和括号连接起来的式子叫逻辑表达式,逻辑表达式的值为boolean型
True||False6.5.条件运算符
条件运算符是唯一的三元运算符,运算符包括‘?’和‘:’
关系表达式?表达式为真的结果:表达式为假时的结果6.5.1.条件运算符含义
条件运算符举例
if (a>b)
{
k=a;
}
else
{
k=b;
}
#上述代码等价于:
k= a>b?a:b;
6.5.2.条件表达式
6.6.位运算符只要你用了条件运算符都叫条件表达式。
操作时把数据转换为二进制再处理。
| 运算符 | 名称 | 功能 |
|---|---|---|
| ~ | 按位非 | 按字节取反 |
| & | 按位于 | 将两个数据的二进制进行对比,同时为1则取1 |
| ^ | 按位异或 | 将两个数据的二进制进行对比,一真一负则取1 |
| >> | 右移 | 二进制右移一定位数,高位补零,低位丢掉 |
| << | 左移 | 二进制左移一定位数,低位补零,高位丢掉 |
6.7.2.new运算符点运算符“.”用来访问对象的成员变量或成员方法
6.7.3.instanceof运算符可以用new运算符来创建一个对象或数组
判断对象中的实例,结果是boolean型,如果是则true,如果否,则false
对象 instanceof 实例7.编程风格 7.1.注释
单行注释 //
// 语句
多行注释
文档注释
7.2.命名规范
行规:
1.变量名和方法命名小写,如果由多个单词组成,则应遵循小波峰原则(第一个单词小写,从第二个开始首字母大写)
2.类命名因应遵循大波峰原则(每个单词首字母大写)
3.符号常量应所有字母大写,单词间用"_"相连。
(不能和关键字冲突)
7.3.程序风格没啥就是让你记得加缩进,为了好看
一般有两种对其方式
public class test
{
public static void main(String[] args)
{
System.out.println("Block style");
}
}
2
public class test{
public static void main(String[] args){
System.out.println("Block style");
}
}
8.程序错误
8.1.编译错误
8.2.运行时错误最好改,照着书改错。
8.3.逻辑错误比如除数为零
9.本章小结多见于喜欢抄代码,但老是抄漏的小朋友,重新一步一步理清逻辑。
标识符组成:字母、数字、下划线和美元
数据类型:基本和引用,基本分为整型、字符型、浮点型、布尔型
运算符包括:赋值、算术、关系、逻辑、条件、位、其他
常量变量:都是为内存单元赋值,常量无法改制
错误:编译错误、逻辑错误、运行时错误
public class Test
{
public static void main(String[] args)
{
for (int i=1;i<20;i++)
System.out.println((char)i);
System.out.println(i/5);
}
}
参考答案:说明了什么?说明了,在for中可以设置局部变量
Test.java:12: 错误: 找不到符号
System.out.println(i/5);
^
符号: 变量 i
位置: 类 Test
1 个错误
2.编写程序计算圆柱体积,输入半径和高
底面积=半径 * 半径 * 3.14
体积=面积*高
参考答案
import java.util.Scanner;
public class CircleArea
{
public static void main(String[] args)
{
Scanner reader=new Scanner(System.in);
System.out.print("请输入圆半径:");
double r=reader.nextDouble();
System.out.print("请输入圆柱体的高:");
double h=reader.nextDouble();
System.out.print("圆柱体积为:"+r*r*3.14*h);
}
}
3.输入一个数字,输出各位数字之和
参考答案
import java.util.Scanner;
public class gewei{
public static void main(String[] args)
{
Scanner reader = new Scanner(System.in);
System.out.println("请输入整数:");
int num=reader.nextInt();
int sum=0;
for(int i=num;i>0;i/=10)
{
sum+=i%10;
}
System.out.println("各位数和为:"+sum);
}
}
4.输入一个数判断是否在1~100之间
参考答案
import java.util.Scanner;
public class fanwei
{
public static void main(String[] args)
{
Scanner reader = new Scanner(System.in);
System.out.println("请输入一个double型数据:");
double number = reader.nextDouble();
if (number >= 1 && number <=100)
System.out.println("the number "+number+" between 1 and 100 is ture");
else
System.out.println("the number "+number+" between 1 and 100 is false");
}
}
5.解释关键字的概念,关键字和标识符有什么区别
参考:关键字是被java赋予特殊意义的标识符,是特殊的标识符,程序员不能将其作为自定义标识符的名字。
6.下列哪些是java关键字class public int x y radius import final
参考答案:略
参考答案:略
8. 27/4的结果是什么,如果想得到浮点数结果,应该怎么写?参考答案:
public class test
{
public static void main(String[] args)
{
System.out.println(27/4);
}
}
D:java训练ch10>javac test.java D:java训练ch10>java test 6
为6,整型,如果需要结果为浮点数这则需要参与运算的其中一个数为浮点数,如24/4.0
9.将下面java算术表达式翻译为正常数学表达式4/(3*(r+34))-9*(a+bc)+(3+d(2+a))/(a+b*d)
参考答案:略
参考答案:(float)字符串 (int)字符串
例
public class test
{
public static void main(String[] args)
{
String str="123.2";
String str1="1231";
float i=Float.valueOf(str);
int b=Integer.valueOf(str1);
System.out.println(i);
System.out.println(b);
}
}
11.字符型字面常量的两种表示形式
参考: ‘r’ 和”u0000“



