目录
一.注释
1.//用于单行注释,快捷键Ctrl+/
2./**/用于多行注释,快捷键Ctrl+shift+/
3./*** */文档注释,用于类,方法(函数),属性,功能的说明,可在调用时提示,生成API文档
二.关键字
关键字的定义特点
在Java语言中赋予了特殊含义,用作专门用途的字符串(单词)-----修饰包,类,方法,变量
特点:所有字母都为小写
关键字的分类
1.用来定义数据类型的关键字
class interface enum byte short int long float double char boolean void
2.用来定义数据类型值的关键字
ture false null
3.用于定义访问权限的关键字
private protected public
4.用于定义流程控制的关键字
if else switch case default while do for break continue return
5.用于定义类与类之间关系的关键字
extends implements
6.用于异常处理的关键字
try catch finally throw throws
7.用于定义建立实例及引用实例,判断实例的关键字
new this super instanceof
8.用于包的关键字
package import
9.其他修饰符关键字
native strictfp transient volatile assert
三.保留字
Java保留字:现有版本Java尚未使用,但以后的版本可能作为关键字使用
自己命名标记符的时候要注意避开这些保留字:goto const
四.标识符
定义
Java对各种变量,类,方法等要素命名时所使用的字符序列
命名规则
1.由26个英文字母大小写,0-9,_,或$组成,但是数字不可以开头
2.不可以使用关键字和保留字,但是可以包含关键字和保留字
3.Java中严格区分大小写,长度无限制
4.标识符不能含有空格
不成文约定
Java中为了统一命名,方便读者理解,便慢慢有了这些不成文的约定
1.类名首字母大写,如果是两个单词组成,则两个单词首字母大写(如:UserInfo)
2.包名全部小写
3.变量名,方法名,首字母小写
4.常量全部大写
5.尽量"见词知意",如定义年龄 int age;
五.Java变量
变量是程序中最基本的存储单元,程序执行中数值是可变的
本质上,变量其实是内存中一块很小的区域,使用变量名来访问这块区域,因此,每一个变量名在使用前必须要先声明(申请),然后进行赋值(填充内容)才能使用,声明格式为:
[修饰符] type varname [=value] [,varname=[value]...];
如int a; int a=7; int a,b=7;
其要素包含变量名,变量类型
六.Java数据类型
数据类型可以分为基本数据类型和引用数据类型
引用数据类型
1.类(class)
2.接口(interface)
3.数组([ ])
基本数据类型
基本数值类型有三个,数值型,布尔型,字符型
其中数值型又分为整数型和浮点型
1.逻辑(布尔)型(boolean)
boolean类型适用于逻辑运算,一般用于程序流程控制
Java语言中boolean类型只能取值true或者false
2.数值型
1.整数类型
整数类型分为四类,分别是byte,int,long,short
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节(8比特位) | -128-127 |
short | 2字节 | -2^15-2^15-1 |
int | 4字节 | -2^31-2^31-1 |
long | 8字节 | -2^63-2^63-1 |
值得注意的是:Java语言的默认整数类型常量为int型,声明long常量可以在数值后加 "l"或者 "L"
其中还有进制类型的区别
int 0x11;//0x就代表了十六进制
int 011;//0开头的整数就代表八进制
int 0b11;//0b开头就代表二进制
2.浮点类型
与整数类型相似,Java浮点类型有固定的表数范围和字段长度,不受平台影响,Java浮点类型有两种表示形式
1.十进制数形式.如:3.14,3.0
2.科学记数法形式.如:3.14e2,3.14E2
类型 | 占用存储空间 | 表数范围 |
---|---|---|
float | 4字节 | -3.403E38-3.403E38 |
double | 8字节 | -1.798E308-1.798E308 |
与整数类型相似,Java语言中默认的浮点型为double型,如果要声明一个浮点型为float型,则需在数值后加"f"或者"F"
3.字符型(char)
char型数据可以用来表示单个字符,char占两个字节,可以涵盖书面语上的字符,表示方法:char a1 = 'c';char a2 = '中';
char类型是可以运算的,因为char在字符编码表里都是有对应的数值的
在Java中,对char类型进行运算时 ,直接当做对应编码表的整数来对待.如:char c = 'a'+1;结果为98;对应字符是b;
编码表
1.ASCII码
上个世纪60年代,美国制定了一套字符编码,对英语字符与 二进制位之间的关系, 做了统一规定。这被称为ASCII码。
ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制 00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不 能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0.
缺点:不能表示所有字符
2.Unicode码(万国码)
一种编码,将世界上所有的符号都纳入其中。这个编号范围 从 0x000000 到 0x10FFFF (十六进制),有 110 多万,每个字符都有 一个唯一的 Unicode 编号,这个编号一般写成 16 进制,在前面加上U+.
注:
1.Java采用的是Unicode码
2.Unicode里包含了ASCII码,且对应数值一样
3.utf-8是一种变长的,用于在文件,网络传输时使用的具体编码表,可以使用1-4个字节表示一个符号,根据不同的符号来变化字节长度
七.基本类型转换
Java中可以从任意基本类型转换为其他基本类型.注意的是,布尔型不能转换为其他基本类型.
转换分为默认转换和强制转换
默认转换
整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵守以下原则,容量小的默认转换为容量大的数据类型.按照容量大小排序为byte,short,char----int----long----float-----double.byte,short,char这三个之间不会进行转换,在运算的时候会默认转换为int型.
有多种数据类型在进行混合运算的时候,系统首先会将容量小的自动转换为容量大的,然后再进行运算.
long与float的容量大小
long在内存中占八个字节共六十四位,而float在内存中只有四个字节共三十二位,那为何float的容量比long大,这与float在内存中的存储方式有关
第一位 | 第二位到第九位 | 第十位到第三十二位 |
---|---|---|
S | E | M |
计算公式为v(数值)=(-1) ^ s * m * 2 ^ e
强制类型转换
容量大的数据转换为容量小的数据的时候,要加上强制类型转换符,但可能造成精度降低或者数值溢出的问题
public class Asus {
public static void main (String[]args){
short i = 1;double j = 3.14;
j = i + (int)j; //j转换为int型后等于3,short默认转换为int,结果是4,j是double型,结果为4.0
System.out.print(j);
}
}
八.运算符
算数运算符 | ++,--,+,-,*,/,% | |
---|---|---|
字符串连接运算符 | + | |
关系(比较)运算符 | >,<,>=,<=,==,!= | 前四个用于数值与数值,数值与字符.而后两个还可用于逻辑值与逻辑值,引用类型与引用类型 |
逻辑运算符 | !,&,|,&&,||,^ | &与&&的区别,&:无论&左边表达式是true还是false,右边的都会计算.&&:如果左边为false,右边不参与计算,直接得出结果为false.||也类似 |
赋值运算符 | =,+=,-=,*=,/=,%= | |
条件运算符 | (条件表达式)?表达式一:表达式二 | 条件表达式结果为true,执行表达式一,结果为false,执行表达式二 |
位运算符 | <<,>>,>>>,&,|,^,~ |
注:位运算又称为比特位运算,他是对数字的二进制进行运算的,日常开发使用较少,但是巧妙地运用可以大量减少运行开销.
九.控制台输入
在基础语法学习的时候,交互式的向程序中输入内容,实际程序中用不到
使用标准输入串System.in使用Scanner取得一个字符串或一组数字,在新增一个Scanner对象时需要一个System.in对象,实际上还是System.in在取得用户输入.
Scanner的next()方法用于取得用户输入的字符串,nextInt将取得的字符串转换成整型数据
import java.util.Scanner; public class Class { public static void main (String[]args) { Scanner scanner = new Scanner(System.in);//使用Scanner方法在控制台输入数据 int a = scanner.nextInt();//输入数字 String s = scanner.next();//输入字符串 System.out.println(a);//输出输入的数字 System.out.println(s);//输出输入的字符串 } }
十.控制语句
1.条件语句
条件语句是根据不同条件,来执行不同的语句
表现形式分以下几种
1.if
2.if...else
3.if...else if
4.if...else if...else if...else
5.switch
注:switch语句
switch语句:多分支选择语句,根据表达式的值,来执行多个操作中的一个
switch(表达式){ case value1:语句序列1;break;//表达式的值为value 1,执行这个语句 case value2:语句序列2;break;//value 2的值不能与value1的值相同 ... [default:缺省语句;]//没有对应的case值,执行这个语句; }
表达式可以使byte,int,short,char,枚举型.jdk 7以后,可以是String型
某个case语句如果没有提供break语句,则继续往下执行,直至全部运行完或者break
2.循环语句
循环语句----重复执行某些动作
表达形式有以下几种
for
while
do{}while
十一.循环
循环是指在条件满足的情况下,反复执行特定代码的功能
1.循环语句的四个组成部分
循环变量的初始化
循环条件部分
循环体部分
循环变量的更新
2.循环语句的分类
while循环//先判断后执行
do...while循环//先执行后判断
for循环
3.循环里的两个关键字break&continue
1.break语句用于终止某个语句块的执行.用在循环体中,可以强制退出循环
public class Class { public static void main (String[]args) { int stop = 4; for (int i = 0; i < 9; i++) { if(i==stop){ break; } System.out.println(i); } } }
2.continue语句在循环体中,用以终止某次循环过程,跳过continue语句下面未执行的循环,开始下一次循环过程
public class Class { public static void main (String[]args) { int stop = 2; for (int i = 0; i < 5; i++) { if(i==stop){ continue; } System.out.println(i); } } }
4.循环嵌套
将一个循环放在另一个循环体内,就形成了循环嵌套,其中,for,while,do...while均可作为内层循环和外层循环
实质上,循环嵌套就是把内层循环当做外层循环的循环体,只有当内层的循环条件为false时,才会完全跳出内层循环,才能结束外层循环的当次循环,开始下一次循环
十二.Java中的方法
Java中的方法类似于其他语言的函数,方法是解决一类问题的步骤的有序组合,方法含于类或对象中
方法在程序中被创建,格式为
访问权限修饰符 修饰符...方法名(形式参数类型 参数名){
Java语句;......
[return语句]
Java调用方法的格式:对象名.方法名(实参列表)
实参的数目,数据类型和次序必须和所调用的方法声明的形参类表匹配
public class Class { public static void main(String[] args) { int[] c = {3, 9, 56, 3, 7, 1}; int max = Class.max(c); System.out.println("最大值是" + max); } public static int max(int[] a) { int m = a[0]; for (int i = 1; i < a.length; i++) { if (a[i] > m) { m = a[i]; } } return m; } }
上面max就是定义的一个方法,用来求数组中的最大数
此外,常用到的Scanner也是方法,只不过被系统定义好了,不需要我们再去定义
十三.return语句
return语句用于从当前执行的方法中退出,返回到调用此方法的语句处继续执行
有两种格式:
1.return 表达式;//将表达式的值返回,返回值和定义方法时的返回值类型匹配
2.return;//不返回任何值,当方法说明中用void声明无返回值的时候,可以使用这种格式,此类return语句有时可以省略.