Java基础01
- 注释、标识符、关键字
- 数据类型
- 类型转换
- 变量常量
- 运算符
- 包机制、JavaDoc
1.注释、标识符、关键字
注释
- 最好3行一注释
- 注释类型:单行注释、多行注释、文档注释
- 单行注释://
- 多行注释:/**/
- 文档注释:/** */(生成Api文档时使用)
- 文档注释示例:
/** * @Description:HelloWorld * @Author:GaoPeng * */
标识符、关键字
- 标识符注意点:
- 所有的标识符都应该以字母(A-Z或者a-z或者$或者_开头)
- 首字母是(A-Z或者a-z或者$或者_开头)之后可以任意组合
- 不能使用关键字作为变量名,或者方法名,或者类名
- 标识符是大小写敏感的,例如:String
- 非法标识符:1abd,-aa,#aa
- 可以使用中文命名,但不建议使用,例如:String 哈哈="";
public class Demo01 { String Hello=""; String hello=""; String $ello=""; String _ello=""; String 中文=""; }
- 数据类型
- 强类型语言:变量在使用前需要先进行定义,使用要严格符合规定(如果不经过强制转换,则它永远就是该数据类型了)
- 弱类型语言:某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换
- Java的数据类型分为两大类:
- 基本类型:
//整数类型 //Byte可以在相应的类中查看基本数据类型的范围大小 // public static final byte MIN_VALUE = -128; // public static final byte MAX_VALUE = 127; byte a=1; int b=10; short c=1110; long d=100000L; //浮点类型 float e=1.1F; double f=1.2222222; //字符型 h是一个字符,hh是两个字符 char g='h'; //布尔类型 true/false boolean h=true; //String不是基本数据类型,是一个类
- 引用类型:
- 什么是字节?
- 位(bit):计算机内部数据最小的存储单位,1100 是一个四位二进制数
- 字节(byte):计算机数据处理的基本单位,1个字节=8位
- 字符:是指计算中的字母,中文,数字,符号等
- 数据类型扩展:
import java.math.BigDecimal; public class Demo02 { public static void main(String[] args) { //整数类型 扩展 进制:二进制(0b开头) 十进制 八进制(0开头) 十六进制(0x) int i=10;//十进制 int i2=010;//八进制 int i3=0x10;//十六进制 int i4=0b10;//二进制 System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println(i4); //浮点数 扩展 银行业务的金钱怎么表示?用浮点数吗 //使用数学工具类 BigDecimal //因为使用float 数值范围有限 会有误差 数与数之间会接近但是不等于 BigDecimal bigDecimal; float a=0.1f; double b=1.0/10; System.out.println("a==b:"+(a==b));//false float c=4651513216515615f; float d=c+1; System.out.println("c==d:"+(c==d));//true //字符扩展 char e='a'; char f='中'; System.out.println((int)e);//97//强制转换,将字符类型转换为int类型 System.out.println((int)f);//20013 //所有字符的本质还是数字 //unicode编码 u0000-uffff 数字与字符之间有个对照关系,输出之前先去查这个表 char g='\u0097'; System.out.println(g); //转义字符 \t:制表符 \n:换行符 System.out.println("haha\t制表了"); System.out.println("haha\n换行了"); String h=new String("a"); String h1=new String("a"); System.out.println(h==h1);//false System.out.println(h.equals(h1));//true //==:比较值和内存空间地址 //.equals():比较值 String o="a"; String o1="a"; System.out.println(o==o1);//true 同一个对象,同一个地址空间? System.out.println(o.equals(o1));//true } }
- 类型转换
- Java是强类型语言,在进行有些计算的时候需要进行类型转换
2. - 在运算时需要将不同类型的数据转换为同一个类型,然后计算
- 强制类型转换(由高转低)
- 问题:
- 会存在精度丢失的问题
- 不能对布尔值进行转换
- 不能进行不同类型转换(人转换为猪:不可行,男人转换为女人:可行)
- 高容量转换到低容量的时候进行强制转换int b=(int)a;
- 问题:
- 自动类型转换(由低转高)
- Java是强类型语言,在进行有些计算的时候需要进行类型转换
- 变量常量
- 变量是什么:在内存中开辟一块空间,并为其指定类型,这块空间可以存储符合这个类型的一些值
- Java变量在使用前必须声明其类型
- Java变量时程序中最基础的存储单元,其要素包含:变量名,变量类型(int,short,float,String等),作用域(局部变量,实例变量:从属于对象,类变量(静态变量))
- 注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型(例如:String)
- 变量名必须符合标识符规范
- 声明变量是一个完整的语句,需以分号结束
- 变量默认值:
- 布尔:false
- int:0
- 除基本类型外,其他默认值为:null
- 常量:final(增加程序可读性)
- 变量命名规则:
- 所有变量、方法、类名:见名知意原则
- 类成员变量:驼峰命名规则(monthSalary)
- 局部变量:驼峰命名规则
- 常量:全部使用大写字母,单词之间使用下划线分割(MAX_ROW)
- 类名:所有首字母大写(HelloWorld)
- 方法名:驼峰命名规则(monthSalary())
- 运算符
- 算数运算符:+,-,*,/(取商),%(取余),++(自增),--(自减)
- int除完之后为小数时需要,强转
System.out.println(5/(double)10);
- ++在前和++在后是有区别的,得到的值不一样(int b=++a(先加1再赋值);int c=a++(先赋值再加1);)
- int除完之后为小数时需要,强转
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof(instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:boolean result = obj instanceof Class)
- 得到结果布尔类型
- 逻辑运算符:&&(与),||(或),!(非)(这里有短路)
- 位运算符:&,|,^,~,>>,<<,<<<
- &:都为1,则为1,否则为0
- |:有一个为1则为1,否则为0
- ^:相同为0,否则为1
- ~:若为0则为1,若为1则为0
- <<:左移(相当于*2)
-
:右移(相当于/2)
- 条件运算符:?:(三元运算符)
- x ? y : z
- 如果x==true,则结果为y,否则结果为z
System.out.println(a>b?"及格":"不及格");
- 扩展赋值运算符:+=,-=,*=,/=
- 幂运算(Math)
double pow = Math.pow(3,2) //表示3的2次方
- 字符串连接符
int a=5; int b=4; System.out.println(a+b+"");//9 System.out.println(""+a+b);//54
- 运算符的优先级
- 算数运算符:+,-,*,/(取商),%(取余),++(自增),--(自减)
- 包机制、JavaDoc
- 包的本质是文件夹
- 命名机制:公司域名倒置为包名(com.baidu.utils)
- 导入包:import com.baidu.utils
- 包名:package com.gaopeng.base 需要一个类的最上面
- 作用:防止命名空间重复,清晰项目层次结构
- Javadoc命令,用来生成自己的API文档
- 参数信息
- @author:作者名
- @version:版本号
- @since:指明需要最早使用的jdk版本
- @param:参数名
- @return:返回值情况
- @throws:异常抛出情况
- 参数信息
- javadoc:javadoc -encoding utf-8 -charset utf-8 HelloWorld.java
- idea生成JavaAPI文档