Java基础

注释

注释不会被执行,是给写代码的人看的。书写注释是一个非常好的习惯

Java中有三种注释:

  • 单行注释// 注释内容
  • 多行注释/* 注释内容 */
  • 文档注释/** 注释内容 */

标识符和关键字

关键字
Java关键字

类名、变量名以及方法名都被称为标识符。

1、必须由大小写字母、数字、下划线(_)和美元符号($)组成;
2、不能以数字开头;
3、不能与关键字冲突;
4、不能和java类库的类名冲突;
5、应该使用有意义的名称(见名知意);
6、大小写敏感

数据类型

Java是强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。安全性高,但速度慢。

Java的数据类型分为两大类

  • 基本类型(primitive type)
  • 引用类型(reference type):类,接口,数组
    String 字符串
    String s = "  abcccd  ";
    System.out.println(s.charAt(2));//显示第2坐标符号
    System.out.println(s.indexOf("a"));//显示"a"所在坐标位置
    System.out.println(s.length());//显示坐标长度
    System.out.println(s.equals("ccdd"));//比对是否正确true or false
    System.out.println(s.compareTo("ABCD"));//比较大小a<b,返回正值,否者相反。等于为0.
    System.out.println(s.toLowerCase());//变成小写"abcd"
    System.out.println(s.toUpperCase());//变成大写"ABCD"
    System.out.println(s.trim());//当有空格存在时"  abcd  ",删除空格。
    System.out.println(s.split("b"));//从指定位置切开
    

八大基本类型:

数据类型 描述 占用字节 取值范围 默认值 封装器类
boolean 布尔类型,用于判断真或假 1个字节 仅有两个值,即true、false false Boolean
byte Java中最小的数据类型 1个字节 -128~127 0 Byte
char 字符型,用于存储单个字符 2个字节 0~65535 Character
short 短整型 2个字节 -32768~32767 0 Short
int 整型,用于存储整数 4个字节 -2147483648~2147483647 0 Integer
long 长整型 8个字节 -2^63 ~ 2^63-1 0L Long
float 浮点型,用于存储带小数点的数字 4个字节 / 0.0f Float
double 双精度浮点型,用于存储带有小数点的数字 8个字节 / 0.0d Double

数据类型

什么是字节

  • 位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。
  • 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写B来表示。
  • 1B(byte,字节) = 8bit(位)
  • 字符:是指计算机中使用的字母、数字、字和符号
  • 1bit表示1位
  • 1Byte表示一个字节 1B=8b
  • 1024B=1KB
  • 1024KB=1M
  • 1024M=1G
  • 1024G=1TB

整数拓展:

10进制转2进制

  • 短除法:
    35:(35/2=17(余1)/2=8(1)/2=4(0)/2=2(0)/2=1(0)/2=0(1)反读)=100011

    100011 1* 2(0)+1* 2(1)+0* 2(2)+1* 2(5)=1+2+32=35(正向的)

  • 找次方数:
    35:35-2(5)=3-2(1)=1-2(0)=100011(有数的次方上加1,没有的补0)

    216:216-2(7)=88-2(6)=24-2(4)=8-2(3)=11011000

浮点数拓展:

  • float 、double 不够准确; 实际过程中浮点数无限且离散的,但是float是有限的,他会自动舍入误差,大约接近,但不等于;
  • 银行等准确的计算工具最好使用 BigDecimal 数学工具类
  • 精确的对账最好完全避免使用浮点数进行比较

字符拓展:

  • 所有的字符本质还是数字
  • Java使用Unicode字符集编码,格式 '\u0000'-'\uFFFF'

(Unicode是世界通用的定长字符集,所有的字符都是16位,2个字节)

转义字符:
如:'\n'“换行”,'\t'“制表符”;‘\’,‘\b’,‘\r’,‘\u0061’。
数字编码:‘0’:48,‘1’:49…
英文编码:‘A’:65,‘B’:66…
小写英文:‘a’:97,‘b’:98…

类型转换:

由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

低 ------------------------------------------------------>高

byte, short, char -> int -> long -> float -> double
(小数的优先级高于整数)

运算中,不同类型的数据先转换为同一类型,然后进行运算。

强制类型转换:( 高 -> 低 )
自动类型转换:( 低 -> 高 )

实例

注意:
1、不能对布尔值进行转换
2、不能把对象类型转换为不相干的类型
3、在把高容量转换到低容量的时候,需要强制转换
4、转换的时候可能存在内存溢出,或者精度问题!
(Java7 新特性,数字之间可以用下划线分割 10_0000_0000 )

变量

  • 变量是什么:就是可以变化的量!

  • Java是一种强类型语言,每个变量都必须声明其类型。

  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

注意事项:
1、每个变量都有类型,类型可以是基本类型,也可以是引用类型。
2、变量名必须是合法的标识符。
3、变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

变量作用域

  • 类变量
    在类里,整个类里可以使用,前面必须加static关键字;例:static int a = 3;

  • 实例变量
    在类里,从属于对象;int age;//默认值为0
    如果不自行初始化,数值类型的默认值 0 或 0.0 ;
    布尔值:默认是false;除了基本类型,其余的默认值都是null;

  • 局部变量
    在方法中,使用时必须声明和初始化值;int i = 3;

变量的命名规范

  • 所有变量、方法、类名:见名知意

  • 类成员变量:首字母小写和驼峰原则:monthSalary(除了第一个单词外,后面的单词首字母大写)

  • 局部变量:首字母小写和驼峰原则

  • 常量:大写字母和下划线:MAX_VALUE

  • 类名:首字母大写和驼峰原则:Man,GoodMan

  • 方法名:首字母小写和驼峰原则:run(),runRun()

常量

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。

  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

final 常量名 = 值;
final double PI = 3.14;
  • 常量名一般使用大写字符。

注意static final double PI = 3.14; 修饰符,不存在先后顺序。

运算符

  • 算术运算符:+,-,*,/,%(余),++(自增),–-(自减);

  • 赋值运算符:=;

  • 关系运算符:> , < , >= , <= , == , != , instanceof;

  • 逻辑运算符:&& (与), ||(或), !(非);
    (计算结果一定是true or false)

  • 位运算符:&,|,^,~,>>,<<,>>>;

  • 条件运算符:?:;x?y:z; //x值如果为true=y,如果为false=z;

  • 扩展赋值运算符:+=,-=,*=,/=;

++(自增)【–-(自减)同理】

  • a++:先赋值,再自增;

  • ++a:先自增,再赋值;

int a = 5;
int b = a++;//a++加在后,先给b赋值,再自增;
System.out.println(a);//a=6
System.out.println(b);//b=5
================================================
int c = ++a;//++a加在前,先自增,再赋值给c;
System.out.println(a);//a=6;
System.out.println(c);//c=6;

短路运算

&& 当前面为“false”时,后面的将不执行,只有“true”才会运行。

int z = 5;
boolean x = (z<4)&&(z++<4);//由于(z<4)不成立为false,(z++<4)就不运行
System.out.println(x);//(false)
System.out.println(z);//(5)由于(z++<4)没有运算,所以z没有自增

位运算符

  • & :全部为1才为1,否者为0

  • | :全部为0才为0,否者为1

  • ^ :相同为0,否者为1

  • ~(取反):取二进制相反的数

 A = 1100 0011
 B = 1001 0110
---------------
A&B= 1000 0010
A|B= 1101 0111
A^B= 0101 0101
~B = 0110 1001
  • "<<"二进制左位移=代表*2 2<<3=2*2*2*2=16

  • ">>"二进制右位移=代表/2

字符串连接符

在“+”号前出现String类型时,他会把“+”后面的一操作数,转换成String类型,进行拼接。

int a = 5, b = 20;
System.out.println("yes"+a+b);//(yes520)
System.out.println(a+b+"yes");//(25yes)
System.out.println("yes"+(a+b));//(yes25)
System.out.println(""+a+b+"yes");//(520yes)
System.out.println(""+a+b+(a+b)+"yes");//(52025yes)

包机制

为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。(包的本质就是文件夹)

包语句的语法格式为:package pkg1[.pkg2[.pkg3...]];//定义包

一般利用公司域名倒置作为包名; 例:com.baidu.www

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”完成此功能
import package1[.package2...].(classname|*);//导入包,*表示导入这个包下所有的类

JavaDoc

javadoc命令是用来生成自己API文档的

参数信息

  • @author 作者名
  • @version 版本号
  • @since 指明需要最早使用的jdk版本
  • @param 参数名
  • @return 返回值情况
  • @throws 异常抛出情况

生产文档:javadoc 参数 java文件

javadoc -encoding UTF-8 -charset UTF-8 文件名.java

posted on 2021-12-18 22:48  小小张丫  阅读(43)  评论(0)    收藏  举报

导航