Java基础语法
目录
- 注释、标识符、关键字
- 数据类型
- 类型转换
- 变量、常量
- 运算符
- 包机制、JavaDoc
注释
- 在写代码比较少的时候我们还可以看的懂,但是当项目结构一旦复杂起来,我们就需要注释了。
- 注释并不会被执行,是我们写代码的人看的
- 书写注释是一个非常好的习惯
- 平时写代码一定要注意注释规范
- 寻找有趣的代码注释
Java总的注释有三种
-
单行注释
-
public static void main (Sthing[]args){ //单行注释 // 输出一个Hello_Wrold! System.out.println("Hello_wrold!") }
-
多行注释
-
public static void main(String[]args){ //多行注释:可以注释一段文字 /* 注释*/ /* 我是多行注释 我是多行注释 我是多行注释 我是多行注释 */ }
-
文档注释
-
文档注释在最后JavaDoc时在学习
-
//javaDoc:文档注释 /** 注释*/ /** @Description HelloWorld @Author 狂神说Java,西部开源-秦疆 */ 具体啥意思我没有看懂,这个是与JavaDoc一起使用的
标识符
- 关键字
1.
标识符的注意点
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
-
public static void (String[]args){ //这些都是可以的 String Ahello="niya"; String ahello="niya"; String$hello="niya"; String _hello="niya"; //这些都是不可以的 String 1hello="niya"; String #hello="niya"; String *hello="niya"; }
- 首字符之后可以是字母(A-Z或者a-z),美元符($)、或者下划线(_)或数字的任何字符的组合
-
public static void (String[]args){ //下面就是首字母以上内容后面的组合随意 String a9="niya"; String $= ="niya"; }
- 不能使用关键字作为变量或方法名
-
public static void (String []args){ //关键字不可以作为变量名或者方法名 String class="niya"; String for="sabo "; }
- 标识符是大小写敏感的
-
public static void (String[]args){ //大小写十分敏感 String Man="ni"; String man-"ni"; }
-
合法标识符举例:age、$salary、_value、 __1_value等
-
非法标识符:123abc、-salary、#abc
-
可以使用中文命名,但是一般不建议这样使用,也不建议使用拼音很Low
public static void (String []args){ String 王者荣耀="百星王者"; }
数据类型
-
强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须向定义才能使用
-
弱类型语言
- 要求变量的使用不要严格符合规定,所有变量都必须向定义才能使用
-
Java的数据类型分为两大类
-
基本类型(primitive type)
-
public static void (String[]args){ //八大基本数据类型 //整数 int num1=10;//最长用 byte num2=20; short num3=30; long num4=30L;//long类型要在数字后面加个L //小数:浮点数 float num5=50.1F; double num6=3.1415926535897932384; //字符类型 char name='中'; //字符串,String不是关键字,是:类 String name ="隔壁老王"; //布尔值:是非 boolean flag=true;//是 boolean foag=false;//非 }
-
引用类型(reference type)
-
数据类型扩展面试题
import java.math.BigDecimal;
public class 数据扩展面试题 {
public static void main(String[]args){
// 整数扩展 进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010; //八进制
int i3=0x11;//十六进制 0-9 A-F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
// ============================================================
//浮点数扩展? 银行业务怎么表示? 钱
//BigDecimal 数学工具类
//====================================================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
float f =0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d);//false
float b1=123132132132131321f;
float b2 = b1+1;
System.out.println(b1==b2);//true
// ============================================================
//字符扩展?
//====================================================================
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
//所有字符本质还是数字
//编码 Unicode 表:(97 = a 65=A) 2字节 0-65536 excel 2 16= 65536
//u0000 uffff
char c3 ='\u0061';
System.out.println(c3);//a
//转义字符
// \t 制表符
// \n 换行
//·······
System.out.println("hello \n world");
System.out.println("hello \t world");
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);
String sc = "hwllo world";
String sd = "hello world";
System.out.println("sc==sd");
//对象 从内存分析
//布尔值扩展
boolean flag = true;
//if(flag==true){}(true)可写可不写&&可以写成if(flag){}
if(flag==true){ }//新手
if(flag){}//老手
//Less id More! 代码要精简一度
}
}
类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。、
- 低--------------------------------------------------高
- bute->short->char->int->long->flat->double
-
运算中不同类型的数据先转化为同一类型,然后进行运算。
-
强制类型转换
-
-
public static void main(String[] args){ int i=128; //这个就是强制数据转换的样式 byte b= (byte)i;//由高到低//内存溢出 System.out.println(i); System.out.println(d); //由低到高 double b =i; System.out.println(b); }
-
自动类型转换
-
public static void main(String[] args){ int i =128; //这就是自动类型转换样式 double t =i;//由低到高 System.out.println(i); }
-
-
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
在不大容量转换为低容量的时候,强制转换
-
转换的时候可能存在内存溢出问题!
-
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); System.out.println((char)d);
-
//操作比较大的数的时候,注意溢出问题 //jdk7新特征,数字之间可以用下划线分割 int maney = 10_0000_0000; System.out.println(money); int years =20; int total = maney*years;//-1474836480,计算的时候溢出了 long tota2 = maney*years;//默认是int,转换之前已经存在问题 long tota3= maney*((long)years);//先比一个数转换为long。 System.out.println(total);
-
在使用long的时候注意在数值后面要吧L写成大写的。
-
变量
-
变量是什么:就是可以变化的量!
-
Java是一种强类型语言语言,每一个变量必须声明其类型。
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型个作用域。
-
type varName[=value][{,varName[=varName]}]; //一个变量名后可以使用多个变量,但一般不建议使用。 //数据类型 变量名 =值;可以使用逗号隔开来声明多个同类型变量。
-
注意事项:
- 每一个变量都有类型。类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须是以分号结束
-
public static void main(String []args){ //int a,b,c;/这种是错误的 int a=,b=2,c=3;//这种事正确的但不建议使用 //要注意:程序的可读性 //着一种是固定的格式,一般的程序员都这麽写 String name = "keaideren"; char x= 'x'; souble pi = 3.14; }
-
变量作用域:
-
类变量
-
实例变量
-
局部变量
-
public static void main(String []args){ static int allClicks=0;//类变量 :关键词:static String str="hello world";//实例变量 public void method(){ int i=0;//局部变量 } }
-
实例:
-
public class Demo{ //属性:变量 //类变量 static static double saLary="250"; //实例变量:从属于对象;如果不自行初始化,这个类型的默认值 //基本数据类型默认值: 0&&0.0 //布尔值:默认是false //除了基本类型,其余的默认值都是null; String name ; int age; //main方法 public static void main(String []args){ //局部变量是写在在理的 //局部变量:必须声明和初始化值 int i; System.out.println(i); //变量类型 变量名=new Denw(); Demo =new Deno(); System.out.ptintln(demo.age); System.out.ptintln(demo.name); //类变量 static System.out.println(saLary); } //其他方法 public vlid add(){} } }
-
常量
-
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
-
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 常量名 = 值; final doublie PI = 3.14;
-
常量名一般使用大写字符。
-
//修饰符,不存在先后顺序 //类变量 常量 常量名 static final doublie PI = 3.14; pubic static void main (Strign[]args){ System。out.println(PI); }
-
常量的命名规范
- 所有变量、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:minthSalary/除了第一个单词以外,后面的单词首字母大写 Lastname,
- 局部变量:首字母小写和驼峰原则
-
常量:大写字母个下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
-
方法名:首字母小写和驼峰原则:run(),runRun()
运算符
-
Java语言支持如下运算符 加减乘除的优先级
-
算术运算符:+、-、*、/、%、++、–
-
赋值运算符:=
-
关系运算符:>、<、>=、<=、==、!=、instanceof
-
逻辑运算符:&&(与)、||(或)、!(非)
-
位运算符:&、|、^、~、>>、<<、>>>、(了解一下 !!!)
-
条件运算符:?、:(简称:三元运算符)
-
扩展赋值运算符:+=、-=、*=、/=
-
int a = 21; int b = 21; int c = 21; int d = 21; System.out.printoln(a+b); System.out.printoln(a-b); System.out.printoln(a*b); System.out.printoln(a/b); System.out.printoln("======================"); long e =132131321313213L; int f =132; short g = 10; byte h =8; System.out.printoln(e+f+g+h);//long System.out.printoln(f+g+h);//int System.out.printoln(g+h);//int //关系运算符返回的结果: 正确 错误 布尔值 //if 配合使用 int v = 10; int t = 20; int y = 21 //取余,模运算 System.out.printoln(y%t);//y/t 21/20····1 System.out.printoln(v>t);//false System.out.printoln(v<t);//true System.out.printoln(v==t);//false System.out.printoln(v!=t);//true
-
++、–
-
//++ -- 自增 自减 一元运算符 int a=3; int b=a++;//a++ a=a+1 System.out.println(b);//执行完代码后,先给并赋值在自增 int c=++a;//++a a=1+a//行完代码前,先给并赋值在自增 System.out.println(c); //应用在for循环时重点使用
-
幂运算
-
//幂运算2^3 2*2*2 = 8 很多运算都要会使用一些工具类来做。,如:Math double pow = Math.pow(3.2); System.out.println(pow);
-
逻辑运算符
-
//逻辑运算符 //与(你和他)、或(你或者他)、非(取反) boolean a = true; boolean b = false; //逻辑与运算:两个变量都为真,结果才为thue System.out.println("a&&b"); //逻辑与运算:两个变量有一个为真,则结果才为true System.out.println(a||b); //如果是真,则变为假,如果是假则变为真 System.out.println(!(a&&b); //短路运算 int c =6; boolean d = (c>=6)&&(c<5); System.out.println(c);//6 System.out.println(d);//thue 但c<5没有执行
-
位运算
-
/* a = 0010 1100 1100 b = 0011 0011 1110 ------------------ a&b = 0010 0000 1100 a|b = 0011 1111 1110 a^b = 0001 1111 0010 a~b = 1101 1111 0011 2*4 = 8; 2*2*2 <<// *2 >> /2 System.out.println(2<<2);//原理以后用到自己查 */
-
扩展赋值运算符
-
int a= 20; int b= 30; a+=b;//a = a+b a-=b;//a = a-b System.out.println(a); System.out.println(b); //字符串连接 + , String System.out.println(""+a+b);//字符串在前面 =2030 System.out.println(a+b+"");//字符串在后面 =50
-
三元运算符
-
//x ? y : z //如果x==true,则结果为y,否则结果为z int score = 50; String tupe = score <60?"不及格":"及格";//必需掌握 //以后会使用 if 也可以使用这个、这个可以时语句更加精简 System.out.println(type);
-
包机制 (包的本质就是文件夹)
-
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。
-
包语句的语法格式为:
-
package pkg1[.pkg2[.pkg3...]];
-
一般利用公司域名导致作为包名www.baidu.com com.baidu.www
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包.使用"import"语句可完成此功能
-
import package1[.package2...].(xlassname|*);
-
一般导入自己写的文件
-
项目文件夹>包(cn)>类(类名)
//包 包名 package cn;//定义包 package //导入包 import //import cn.niu.*;导入这个包下所有的类! //导入包 包名 类名 import cn. niu; //类 类名 public class niu{ public static void main(String[]args){ } }
-
课外资料 ( 阿里巴巴Java开发手册)看一下—> 阿里巴巴Java开发手册
javaDos生成文档
-
JDK帮助文档 请点击–> [Java SE 文档 — API 和文档 |]
javaDos
- javadoc命令是用来声称自己API文档的
- 参属信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @retum 返回值情况
- @throws 异常 抛出情况
- 学会查找使用IDEA生产JavaDos文档!
视频来源
请点击–> B站遇见狂胜说