Java基础语法
1、IDEA使用
目前我们使用:新建一个Empty proj -File–新建一个module—new class
前提:有个要修改的: file–project Structure
2、注释
-
单行
-
多行
-
文档
Javadoc时候使用
//单行注释
/*
多行注释
多行注释
*/
/**javadoc文档注释
* @Description:jiang
* #Date:2020-10-24
*/
3、标识符
- 关键字
大小写十分敏感
说明: **大小写十分敏感**
1、所有的标识符都只能以字母、美元符、¥、下划线开头
2、首字符之后可以是字母、美元符、下划线和数字的任何组合,不能使用% # 等
3、不能命名为关键字
4、数据类型
Java是强类型语言
1、强类型语言:所有变量使用要求经过严格的规定,所有变量必须先定义后才能使用
2、弱类型语言:
3、Java的数据类型分两大类:
(1)基本类型(primitive type):数据类型(整数型、浮点型、字符型)、布尔型
(2)引用类型(reference type):类、接口、数组
练习:
//八大基本数据类型
//整数
int bum1=10; //4字节
byte num2=20; //1字节
short num3=30; //2字节
long num4 = 5555L; //8字节
//小数、浮点数
float num6 = 23.23f; //4字节
double num5=34453.23432543543654657; //8字节
//字符
char name='A'; //2字节
String name2= "jianghzuohao";
//字符串不是关键字,是类 使用变量用 “” char使用‘’
//布尔值:代表是非
boolean flag=true; //1位
boolean flag2=false;
科普:字节和位
位(bit):计算机内部数据存储的最小单位,10111100是一个八位的二进制
字节(byte): 是计算机中 处理数据的基本单位,习惯上用B表示
1B=8bit
字符:是指计算机中使用的数字、字母、符号和字
1G=1024M=1024*1024KB=1024*1024*1024B=1024*1024*1024*8bit
-
扩展(面试题)
//整数拓展:进制 二进制0b 十进制 八进制0 十六进制 0x int i = 10; int i2 =010; int i3 =0x10; System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println("==================================="); //================================================================================== //浮点数扩展? 银行业务怎么表示?钱 //BigDecimal 数据工具类,少用浮点数比较,如果要进行计算且不能有误差,就用BigDecimal类(面试题) //================================================================================== // float 有限 离散 舍入误差 大约 接近但不等于 //double //最好不要使用浮点数进行比较 float f = 0.1f; double d = 1.0/10; System.out.println(f==d); //false System.out.println(f); System.out.println(d); //================================================================================== //字符扩展? //所有字符本质还是数字 //编码:Unicode 2字节 0-65536 //================================================================================== char c1='a'; char c2='中'; System.out.println("==================================="); System.out.println(c1); System.out.println((int)c1); //强制转化 System.out.println(c2); System.out.println((int)c2); //强制转化 // U0000 UFFFF char c3='\u0063'; System.out.println(c3); //转义字符 // \t制表符 \n换行 等等 //交流及以后学习到的知识提前体验 //对象,从内存分析 System.out.println("==================================="); String sa= new String("Hello"); String sb = new String("Hello"); System.out.println(sa==sb); //false String sc="Hello"; String sd="Hello"; System.out.println(sc==sd); //true //布尔值扩展 boolean flag1 = true; if (flag1){ //老手程序员 } if (flag1==true){ //新手程序员 }
5、类型转化
-
低-------------------------------高 byte,short,char->int->long->float->double 注意点: 1、不能对布尔类型转化 2、不能把对象类型转换成不想干的类型 3、高转低的时候要进行轻质转化 4、转化时候要小心内存溢出问题,或者精度问题 int i=128; byte b = (byte)i; //内存溢出 // 强制类型转化 高-->低 System.out.println(i); System.out.println(b); //自动类型转换 低到高 double d =i; System.out.println(d);
-
//操作比较大多数时候,要注意内存溢出 //JDK7新特性,数字之间可以用_分割 int money = 10_000_000; System.out.println(money); //常见错误 int money1 = 10_0000_0000; int year = 20; int total = money1 * year; //内存溢出 -1474836480 long total1 = money1 * year; //默认int,转化前就已经出现内存溢出问题了(细节) System.out.println(total1); long total2 = money1 * (long)year; //先把其中一个转化之后在进行转化就正常了 20000000000 System.out.println(total2);
6、变量
知识要点
/**
* 变量&常量
*
* 变量:可以变化的量
* Java是一种强类型语言,每个变量都必须进行声明
* Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型以及作用域
*
* 重点:作用域
* 类变量
* 实例变量:从属于对象
* 局部变量
*
* 常量:初始化后不能再改变的值
* final 常量名=值
* 常量名一般用大写
*
*
*/
- 变量/常量命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量、局部变量:首字母小写的驼峰原则 monthSalary
- 常量:大写字母和下划线,例如:FIRST_NAME
- 类名:首字母大写的驼峰原则:Man,GoodMan
- 方法名:首字母小写的驼峰原则:runRun()
Demo:
//属性:变量
static int allClicks=0; //类变量
String str= "hello"; //实例变量
static double salary=2500; //只有是类变量,才能不引用对象直接使用,这里把static去了后就下面使用就报错了
String name;
int age;
int money=100000000;
//实例变量:从属于对象,如果不自行初始化,可以使用但是默认值 数字是0或者0.0
//布尔值:默认位false
//除了基本类型,其他默认值是null
//常量 final 修饰符无先后顺序之分--静态常量
static final double PI=3.1415926;
//main 方法
public static void main(String[] args) {
//局部变量
int i=1000; //局部变量
System.out.println(i);
//实例变量
Demo04 demo04 = new Demo04();
System.out.println(demo04.age); //默认值:0
System.out.println(demo04.name); //默认值:null
System.out.println(demo04.money); //100000000
//类变量 static
System.out.println(salary); //只有是类变量,才能不引用对象直接使用,这里把static去了后就下面使用就报错了
//常量 final
System.out.println(PI);
}
//其他方法
public void method(){
}
7、Java运算符
知识点:
/***
* 运算符
* Java支持的运算符:
* 算术运算符:+ - * / % ++ --
* 赋值运算符:=
* 关系运算符:> < >= <= == != instanceof
* 逻辑运算符:%% || !
* 位运算符:& | …… ~ >> << >>>
* 条件运算符: ?:
* 扩展赋值运算符: += -= *= /=
*/
Demo:
//二元运算
int a = 10;
int b = 20;
int c = 30;
int d = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
System.out.println(d/a); //取模 2
System.out.println(d%a); //取余 5
System.out.println("========================");
//扩展 加法的类型
long e = 123242343234L;
int f = 200;
short g = 10;
byte h = 50;
double m =90.30;
System.out.println(e+f+g+h); //long类型
System.out.println(f+g+h); //int
System.out.println(g+h); //int
System.out.println(m+e+g+h); //double
System.out.println("========================");
//关系运算符:返回结果:正确、错误 布尔值
// a++:先复制再自增
// ++a:先自增再赋值
//Math类
double pow =Math.pow(2,3);
System.out.println(pow);
//位运算
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
说明: & 同为1,不同为0
| 有1为1,无1为0
^ 同1为0,同0为0,一方1一方0为1
~ 取反
位运算,效率高(面试题)
<< *2
>> /2
2*8 = 2*2*2*2 即 2<<3
字符串拼接符 + (面试题)
注意点:是先运算还是先连接 和顺序有关
//字符串连接符 +
int n1=20;
int n2=10;
System.out.println(n1+n2+" "); //先运算 再拼接
System.out.println(" "+n1+n2); // 直接拼接
8、包机制
知识点:
/**
* 包语句的语法格式
* package pkg1[.pkg2.[.pkg3...]]
*
* 导入包语法格式
* import package1[.package2...].(classname|*)
*/
Demo:
package com.jiang.operator;
import java.util.Date;
9、JavaDoc
知识点:
- javaDoc命令使用来声称自己的API文档
- 参数信息:
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
String name;
/**
*
* @param name
* @throws Exception
*/
public void showName(String name)throws Exception{
System.out.println(name);
}
使用命令生成API:javadoc -encoding UTF-8 -charset UTF-8 demo07.java