Java基础语法
1. 注释、标识符、关键字
1.1 注释
-
平常我们编写的代码结构复杂起来,我们就需要注释
-
注意并不会被执行,是给我们写代码的人看
-
书写注释是一个非常好的习惯
-
平时书写一定要注意规范
public class hello { public static void main(String[] args) { //单行注释 //输出一个hello System.out.printf("hello"); } } -
Java中的注释有三种
-
单行注释
public class hello { public static void main(String[] args) { //单行注释 //输出一个hello System.out.printf("hello"); } } -
多行注释
public class hello { public static void main(String[] args) { /* 单行注释 输出一个hello*/ System.out.printf("hello"); } } -
文档注释
- 有功能的
public class hello { public static void main(String[] args) { /** * XXX * XXX * */ System.out.printf("hello"); } }
-
1.2 标识符
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符
-
所有的标识符都应该以字母(A-Z或者a-z),美元符($),下划线(_)开始
-
首字符之后可以是字母A-Z或者a-z),美元符(¥),下划线(_)或数字的任何字符组合
-
不是使用关键字作为变量名或方法名
-
标识符是大小写敏感的
-
合法标识符举例:age、$age、_age、 _1_age
-
非法标识符举例:123abc、-asd、#asef
-
public class hello { public static void main(String[] args) { //正确的是: String AHHeasd = "可口可乐"; String aHHeasd = "可口可乐"; String $AHHeasd = "可口可乐"; String _AHHeasd = "可口可乐"; //错误的是: //String 1AHHeasd = "可口可乐"; //String #AHHeasd = "可口可乐"; //String *AHHeasd = "可口可乐"; //大小写十分敏感 String Man = "可口可乐" ; String man = "可口可乐"; } }
1.3 关键字

2. 数据类型
-
强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
-
弱类型语言
-
Java的数据类型分为两大类
-
基本类型(primitive type)
//八大基本数据类型 //整数 int num1 = 10; byte num2 = 20; short num3 = 30; long num4 = 30L;//Long类型在数字后面加L //小数:浮点数 folat num5 = 40.1F;//folat类型在数字后面加F double num6 = 3.1415926535; //字符 char name = 'A'; //字符串,String 不是关键字,是类 String namea = "A"; //布尔值 boolean flag = true; boolean fleg = false;

- 引用类型(reference type)

拓展知识
// 整数扩展: 进制 二进制0b 十进制 八进制0 十六进制0x int i1 = 10; int i2 = 010;//八进制 int i3 = 0x10;//十六进制 0~9 A~F System.out.println(i1); System.out.println(i2); System.out.println(i3); //浮点数扩展 //float 有限 离散 舍入误差 大约 接近但不等于 //double; //最好完全使用浮点数进行比较 //最好完全使用浮点数进行比较 //最好完全使用浮点数进行比较 //最好完全使用浮点数进行比较 float f = 0.1f; double d = 0.1/10; System.out.println(f==d);//false System.out.println(f); System.out.println(d); float d1 = 2313131313123123f; float d2 = d1 + 1; System.out.println(d1==d2);//true //字符扩展 char c1 = 'a'; char c2 = '中'; System.out.println(c1); System.out.println(c2); System.out.println((int)c1); System.out.println((int)c2); //所有的字符本质还是数字 //编码 Unicode //char 二字节 2^16 0-66536 //转义字符 // \t 制表符 // \n 换行 // ………… System.out.println("helle\nworld"); //布尔值扩展 boolean falg = true; if(falg = true){ } if(falg){} //Less is More!代码要精简易读 -
3. 类型转换
-
由于java是强类型语言,所以有些运算的时候,需要用到类型转换
-
从低到高
- byte,short,char > int >long >float >double
-
运算中,不同类型的数据先转化为同一类型,然后进行运算
-
强制类型转换
int i = 128; byte b = (byte) i;//内存溢出 //强制转换(类型)变量名 //高到低 System.out.println(i);//128 System.out.println(b);//-128 -
自动类型转换
int i = 128; double b = i; //自动转换 低到高 System.out.println(i);//128 System.out.println(b);//128.0 -
注意
/** * 1.不能对布尔值进行转换 * 2.不能把对象类型转换为不相干的类型 * 3.在高容量转换到底低容量的时候,强制转换 * 4.转换的时候可能存在内存溢出,或者精度问题 * */ -
溢出问题
//操作比较大的时候,注意溢出问题 //jdk7新特性,数字之间可以用下划线分割 int monry = 10_0000_0000; int years = 20; int total1 = monry*years;//-1474836480,计算的时候溢出了 long total2 = monry*years;//默认是int ,转换之前已经存在问题了 long total3 = monry*(long)years;//正确! System.out.println(total1);//-1474836480 System.out.println(total2);//-1474836480 System.out.println(total3);//2000000000
4. 变量常量
4.1变量
-
变量是什么:就是可以变化的量
-
Java是一种强类型语言,每个变量必须声明其类型
-
Java变量是程序中最基本的存储单元,其要包括变量名,变量类型和作用域
type varName [= valuer] [{,varName[=value]}];
//数据类型 变量名 = 指;可以使用逗号来隔开来声明多个同类型变量
-
注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
//属性:变量 //实例变量:从属于对象; //如果不初始化,其值为默认值 //布尔值:默认是false //除了基本类型。其余的都是null; String name; int age; //类变量 static double salary = 2500; //main方法 public static void main(String[] args) { //int a,b,c; int a = 1,b = 2,c = 3; String name = "ss"; char x = 'X'; double pi = 3.14; //局部变量:必须声明和初始化值 int i = 10; System.out.println(i); //实例变量 //变量类型 变量名字 = new Dem08(); Demo07 demo07 = new Demo07() System.out.println(demo07.age);; //类变量 static System.out.println(salary); } //其他方法 public void add(){ }
变量的命名规范
- 所有的变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:除了第一个单词以外,后面的单词首字母大写 lastName
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
4.2常量
-
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值
-
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
fanal 常量名 = 值; fanal double PI = 3.14; -
常量一般使用大写字符
//修饰符,不存在先后顺序 static final double PI = 3.14; public static void main(String[] args) { System.out.println(PI); }
5. 运算符
-
算术运算符:+,-,*,/,%,++,--
//二元运算符 int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a+b);//30 System.out.println(a-b);//-10 System.out.println(a*b);//200 System.out.println(a/b);//0 System.out.println(a%b);//10 //++ -- 自增,自减 int x = 3; System.out.println(x);//3 int y = x++; System.out.println(x);//4 int z = ++x; System.out.println(x);//5 System.out.println(y);//3 System.out.println(z);//5 //幂运算 double pow = Math.pow(2,3);//8.0 System.out.println(pow); -
赋值运算符:=
//赋值 //变量类型最大值 long x = 123456456456465L; int y = 213; short z = 10; byte w = 8; System.out.println(a+b+c+d);//long System.out.println(b+c+d);//int System.out.println(c+d);//int -
关系运算符:>,<,>=,<=,==,!=instanceof
//关系运算符返回的结果:正确:,错误 布尔值 int a = 10; int b = 20; System.out.println(a > b);//false System.out.println(a < b);//true System.out.println(a == b);//false System.out.println(a != b);//true -
逻辑运算符:&&,||,!
//逻辑运算符 //与 或 非 boolean a = true; boolean b = false; System.out.println("a && b\t" +(a && b)); //逻辑与运算,两个都为真,结果才为true System.out.println("a ||b\t" +(a ||b)); //逻辑或运算,只需要一个为真,结果才为true System.out.println("!(a && b)\t" +(!(a && b)));//逻辑非运算,如果是真则为假,如果是假则为真 //短路运算 int c = 5; boolean d = ((c<4)&&(c++<4)); //c<5 结果以判断为假,后面不执行 System.out.println(d);//false System.out.println(c);//5 -
位运算符:&,|,……,~、>>,<<,>>>
/** * A = 0011 1100 * b = 0000 1101 * * A & B 0000 1100 * A | B 0011 1101 * A ^ B 0011 0001 * ~B 1111 0010 * << 2<<3 = 16 * >> 2>>1 = 1 * */ System.out.println(2<<3);//16 System.out.println(2>>1);//1 -
条件运算符: ?:
//三元运算符 //x?y:z 如果x==true 则结果为y,否则结果为z int score = 80; String type = score > 60 ?"及格":"不及格"; System.out.println(type);//及格 -
拓展赋值运算符:+=,-=,*=,/=
int a = 10; int b = 20; a+=b;//a=a+b a-=b;//a=a-b //字符串连接符 +,String System.out.println(""+a+b);//1020 System.out.println(a+b+"");//30
6. 包机制、JavaDoc
6.1 包机制
-
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间
-
包语句的语法格式为:
package pkg1[.pkg2[.pjg3……]];
-
一般利用公司域名倒置作为包名
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可完成此功能
import package1[.package2...].(classname|*);
6.2 JavaDOc
-
JavaDoc命令是用来生成自己的API文档的
-
参数信息
-
@author作者名
-
@version版本号
-
@since指明需要最早使用的jdk版本
-
@param参数名
-
@return返回值情况
-
@throws异常抛出情况
package com.xiang.bese; /** * @author Xiang * @version 1.0 * @since 1.8 * */ public class Doc { String name; /** * * @param name * @return * @throws Exception */ public String test(String name)throws Exception{ return name; } }
-
DOS创建JavaDoc
找到类文件 CMD:
java\test\src\com\xiang\bese>javadoc -encoding UTF-8 -charset UTF-8
运行
正在加载源文件Doc.java...
正在构造 Javadoc 信息...
标准 Doclet 版本 1.8.0_291
正在构建所有程序包和类的树...
正在生成.\com\xiang\bese\Doc.html...
Doc.java:12: 警告: @param 没有说明
* @param name
^
Doc.java:13: 警告: @return 没有说明
* @return
^
Doc.java:14: 警告: @throws 没有说明
* @throws Exception
^
正在生成.\com\xiang\bese\package-frame.html...
正在生成.\com\xiang\bese\package-summary.html...
正在生成.\com\xiang\bese\package-tree.html...
正在生成.\constant-values.html...
正在构建所有程序包和类的索引...
正在生成.\overview-tree.html...
正在生成.\index-all.html...
正在生成.\deprecated-list.html...
正在构建所有类的索引...
正在生成.\allclasses-frame.html...
正在生成.\allclasses-noframe.html...
正在生成.\index.html...
正在生成.\help-doc.html...
3 个警告
结果
IDEA创建JavaDoc

-
1位置是选择的文件,这个是指定文件生成,在1上面的Uncommited files可以选择所有或者发生改变的类文件,在1下面Custom scope是可以按照模块,当前项目所有文件等生成JavaDoc文件;
-
2位置是你生成的JavaDoc文件指定输出的位置,一般都是本地磁盘,或者桌面;
-
3位置是你生成的javadoc文件里面的内容是按照包级别,还是方法级别生成,旁边是生成文件的其他参数;
-
4位置是你输出文件的编码集等设置,一般设置为UTF-8。

浙公网安备 33010602011771号