Java的基础语法
1.注释,标识符,关键字
2.数据类型
3.类型转换
4.变量常量
5.运算符(Operator)
6.包机制,JavaDoc
1.注释,标识符,关键字
-
注释是一个非常好的习惯,注释不会被执行,是给人看的。平时写代码一定要注意规范
-
单行 //
-
多行 /* 多行注释 */
-
文档 javaDoc:文档注释
-
/** * * */
-
-
-
标识符
-
什么是标识符?
-
凡是可以由自己命名的地方都称为标识符。
例如,对于常量、变量、函数、语句块、类、项目等都需要一个名字,这些我们都统统称为标识符。 -
注意:标识符大小写是敏感的(强类型语言)
- 1.标识符有字母、数字、_(下划线)、$所组成,其中不能以数字开头,不能用Java中的保留字(关键字)
- 2.标识符采用有意义的简单命名
- 3." " 不 要 在 代 码 中 出 现 。 ( 是 由 于 在 后 面 内 部 类 中 , 编 译 后 会 出 现 "不要在代码中出现。(是由于在后面内部类中,编译后会出现 "不要在代码中出现。(是由于在后面内部类中,编译后会出现符号)
-
命名规范(驼峰命名法)
- 类名和接口名:每个单词的首字母,其余为小写。(大驼峰)
- 方法名:第二个单词起的首字母为大写,其余全为小写。(小驼峰)
- 常量名:基本数据类型的常量名使用全部大写字母,字与字之间用下划线分隔。
-
-
2.数据类型
语言类型
-
强类型语言
- 要求变量的使用严格符合规定,所有的变量都必须先定义后才能使用
-
弱类型语言
Java数据类型
-
基本类型
-
byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
boolean:只有true和false两个取值。
char:16位,存储Unicode码,用单引号赋值。
-
什么是字节?
-
位:计算机内部最小的存储单位,11001100是一个八位二进制数。
-
字节:是计算机中数据处理的基本单位,习惯上使用B来表示。
-
1B:=8bit
-
字符:是指计算机中使用的字母数字符号。
-
1B=8b 1bit表示一位
-
1Byte表示一个字节 1B=8b
-
1024B=1KB
-
1024KB=1M
-
1024M=1G
-
-
-
引用类型
- 类
- 接口
- 数组
-
面试扩展**
-
整数扩展 :进制 二进制 十进制 八进制 十六进制 0-9 A-F
-
int i=10; 10 int i2=010; 八进制 8 int i3=0X10; 十六进制 16
-
-
浮点数扩展: 银行业务怎么表示?关于钱【BigDecimal一个工具类帮助解决】
-
float 有限 离散 舍入误差 大约 接近但是不等于
- 最好完全避免使用浮点数进行比较
一个例子 float f =0.1f //0.1 double d=1./10d //0.1 System.out.println(f==b); ====》false float n1=2132132132123213211f; float n2=n1+1; System.out.println(n1==n2); ====》true
-
-
字符扩展 制表符 String空间
-
//强制数据类型转换 char c1='a'; char c2='中'; System.out.println(c1); System.out.println((int)c1); System.out.println(c2); System.out.println((int)c2); //所有的字符本质还是数字 //编码问题 Unicode 2字节 65535 Excel 只有65536=2十六次方 //U0000 UFFFF char c3='\u0061'; System.out.println(c3);//a //转义字符 \t制表符 \n换行 System.out.println("Hello\tWorld"); //String的空间指向问题 (对象,内存级别) String sa=new String("HelloWorld"); String sb=new String("HelloWorld"); System.out.println(sa==sb); //false String sc="HelloWorld"; String sd="HelloWorld"; System.out.println(sc==sd); //true //布尔值扩展 boolean flag=true; if (flag==true){} if (flag){}//表示相同的含义 老手 //Less is more 代码需要精简易读
-
-
3.类型转换
-
由于java是强类型语言,所以要进行有些运算到时候,需要用到类型转换。
-
低====高
byte,short,char,–>int,–>long,–>float,–>double
-
//强制转换=====》(类型)变量名 高--低 int i=128; byte b= (byte) i; //【范围只有127到-128,造成了内存溢出】 System.out.println(b);//[结果为-128????] 自动转换=====》 低--高
-
注意:
/*注意: 1.不能对布尔值进行转换 2.不能把对象类型转换为不相干的类型 3.在把高容量转换到低容量的时候,强制转换 4.转换的时候可能存在内存溢出,或者精度的问题 */ System.out.println((int)23.7);//===23 System.out.println((int)-45.89f);//===45精度丢失 char c='a'; int d=c+1; System.out.println(d);//===98 System.out.println((char)d);//=====b //操作大数的时候注意操作溢出问题 //JDK7新特性,数字之间可以用下划线分割 int money=10_0000_0000; int years=20; int total=money*years; System.out.println(total);//====-1474836480【内存溢出】 long total2=money*years;//默认是int,转换之前已经存在问题 //解决方案 long total3=money*((long)years);//先把一个数转换为long System.out.println(total3);//====20000000000【正确执行,首先将运算部分转换】
-
4.变量常量
-
变量
-
是什么:程序中的最基本存储单元,其要素包括变量名,变量类型个作用域。
-
注意:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明必须以分号结束。
-
变量类型:
-
public class Demo03 { //实例变量 :从属于对象【通过类去使用】 String name; int age; //类变量 static 随着类一起出现一起消失 static double salary=2500;//不用New就可以调用 //main方法 public static void main(String[] args) { //调用实例对象 //变量类型 变量名字 Demo03 demo03=new Demo03(); System.out.println(demo03.name);//===null 输出了默认值 System.out.println(demo03.age);//====0 输出了默认值 //【布尔值 默认是false】 //【除了基本类型,其他的默认值都是null】 //类变量 static System.out.println(salary); } public void add(){ //局部变量 必须声明和初始化值 int i=10; System.out.println(i);//在add方法中有效 } }
-
-
-
常量(Constant)
-
是什么:是一个特殊的变量,初始化(initialize)后不能够被改变。
-
常量名一般使用大写字符
-
public class Demo04 { static final double PI=3.14; static final double PI02=3.14; //static是修饰符,不存在先后顺序 public static void main(String[] args) { System.out.println(PI); System.out.println(PI02); } }
-
-
-
变量的命名规范
- 所有变量,产量见名知意。
- 类成员变量:首字母小写和驼峰原则:daySalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母与下划线:AMX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
5.运算符(Operator)
-
算术运算符:+,-,*,/,%,++,–
-
public class Demo05 { //关于++与—— public static void main(String[] args) { //关于自增自减的 一元运算符(只需要一个数字) int a=3; int b=a++;//a+1 执行完代码后,先给b赋值,再自增 System.out.println(a); //a=a+1 4 int c=++a; //执行完这段代码前,先自增,再给b赋值 System.out.println(a);// 5 System.out.println(b);// 3 System.out.println(c);// 5 //幂运算 2^3 Math工具类 double pow=Math.pow(2,3); System.out.println(pow);//====>8 很多幂运算使用工具类来用 } }
-
-
赋值运算符:=
-
关系运算符:>,<,<=,>=,!=
-
逻辑运算符:&&,||,!
-
//与 或 非 boolean a=false; boolean b=true; System.out.println("a&&b:"+(a&&b)); //a&&b:false//逻辑与运算,两个变量都为真,结果才为true System.out.println("a||b:"+(a||b)); //a||b:true//逻辑或运算,两个变量有一个为真,结果才是true System.out.println("!a&&b:"+(!a&&b)); //!a&&b:true //如果为真则是假 //短路运算 int c=5; boolean d=(c<4)&&(c++<4); System.out.println(d);// false System.out.println(c);// 5 表明当与运算中出现false时则停止运行
-
-
位运算符:&,|,^,~,>>,<<,>>>
-
//位运算符 /* * A= 0011 1100 * B= 0000 1101 * A&B = 0000 1100 除非对应位都是1,否则为0 且运算 * A|B = 0011 1101 对应位上只要有1,输出为1 或运算 * A^B = 0011 0001 相同位上相同为0,不同为一 非运算 * ~B = 1111 0010 对应位上反转 取反 * * 关于左移右移 << >> * 面试题 * 2*8 怎么算最快? * */ System.out.println(2<<3);//====16 //解释面试题 /* * 0000 0000 0 * 0000 0001 1 * 0000 0010 2 * 0000 0011 3 * 0000 0100 4 * 。。。。。。。 * 0000 0100 8 * 0000 1000 16 * 左移右移相当于进行2的次方运算, 硬件底层操作效率极高 */
-
-
条件运算符: ?,:
-
// x ? y : z 如果x为真则结果为y,否则为z 精简代码并且加快执行速度 int score =40; String type = score<60 ?"不及格":"及格"; System.out.println(type);
-
-
扩展运算符: +=,-=,*=,/=s
-
//扩展运算符 int f=10; int g=20; f+=g; //f=f+g f-=g; //f=f-g System.out.println(f); //*******字符串连接符 + ,String 后面全部定义为字符串************* System.out.println(""+f+g);//===1020 System.out.println(f+g+"");//===30
-
6.包机制,JavaDoc
-
包机制 Package
-
本质:就是一个文件夹
-
一般利用公司域名倒置作为包名
- www.baidu.com=====> 包名:com.baidu.com
-
使用import可以完成导包工作
-
import java.util.Date; //调用时间工具 import java.util.*; //*表示通配符
-
-
-
JavaDoc
-
是什么:用来生成自己的API文档
-
参数信息:
- @author:作者
- @version:版本号
- @since:指明需要的Jdk版本
- @param:参数名
- @return:返回值情况
- @throws:异常抛出情况
-
演示
-
package javaDoc; /** * @author Ziyang * @version 1.0 * @since 1.8 */ public class javaDoc { String name; /** * @param name * @return * @throws Exception */ public String test(String name)throws Exception{ return name; } }
如何查看自己的API文档
E:\javaAndSql\Idea\javaSE2020.10.3_Demo01\javaSE01_基本数据类型\src\javaDoc>javadoc -encdoing UTF-8 -charset UTF-8 javaDoc.java 找到自己的类的位置===》使用smd打开类,使用javadoc javaDoc.java就可以编辑自己的Index页,打开index页面查看自己的API文档
-
-