Java基础

1.注释\标志符\关键字

1.1注释


书写注释是一个非常重要的习惯 !!!


平时写代码一定要注意规范 !!!


Java中的注释有三种:

  • 单行注释 line comment
  • 多行注释 block comment
  • 文档注释 JavaDoc

1.2标志符

Java 所有的组成部分都需要名字. 类名\变量名以及方法名都被成为标志符.

1.2.1标志符注意点:

  • 所有的标志符都应该以字母(A-Z或者a-z),美元符,下划线 '_' 开始 ;

  • 首字母之后可以是字母(A-Z或者a-z) ,美元符 , 下划线 或者数字的任何字符组合 ;

  • 不能使用关键字作为变量名或者方法名 ;

  • 标志符是大小写敏感的 !!! ;

    String man = "hello";
    String Man = "hello";
    
  • 通常不使用中文,拼音 ;

2.数据类型

2.1数据类型

  • 强类型语言

    要求变量的使用要严格符合规定, 所有变量都必须先定义后才能使用(Java) ;

  • 弱类型语言

    JS, WB


  • Java的数据类型分为两大类

    • 基本类型(primitive type)

    • 引用类型(reference type)

  • 基本类型

    • 数值类型

      • 整数类型

        • byte占1个字节范围:-128~127

        • short占2个字节范围:-32768~32767

      • int占4个字节范围:-2147483648~2147483647

        • long占8个字节范围

          //long类型要在数据后面加上L;
          long num = 12414L;
          
      • 浮点类型

        • float占4个字节
          //float类型要在数据后面加上F;
          float num = 3.14F;
        
        • double占8个字节
      • 字符类型 char占2个字节

    • boolean类型 占一位其值只有true和false

  • 引用类型

    • 接口
    • 数组

2.2拓展

2.2.1整数拓展

//进制
int i = 10;
int i1 = 010;//八进制
int i2 = 0x10;//十六进制

System.out.println(i);//10
System.out.println(i1);//8
System.out.println(i2);//16

2.2.2浮点数拓展

最好完全避免使用浮点数进行比较

最好完全避免使用浮点数进行比较

最好完全避免使用浮点数进行比较

float f = 0.1f;
double d = 0.1;

System.out.println(f==d);//false
System.out.println(f);//0.1
System.out.println(d);//0.1

float f1 = 12214214f;
float f2 = f1+1;
System.out.println(f1==f2);//true
原因

浮点数是有限长的, 离散的, 存在舍入误差.

银行业务怎么表示

BigDecimal

2.2.3字符拓展

//所有的字符本质还是数字
char c1 = 'a';
char c2 = '中';

System.out.println(c1);//a
System.out.println((int)c1);//97
System.out.println(c2);//中
System.out.println((int)c2);//20013
转义字符
//\t	制表符
//\n	回车

2.2.4布尔值拓展

boolean flag = true;
if (flag==true){};//新手
if (flag){};//老手
//Less Is More	代码要精简易读

2.3字节

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

2.4思考 : 电脑的32位和64位的区别

2.4.1 32位和64位是什么?

​ 32位和64位意思是处理器一次能处理的最大位数;

2.4.2 区别在哪里?

  1. CPU要求不同。CPU有32位和64位之分,32位的CPU只能安装32位系统,而64位的CPU既可以安装32位系统也可以安装64位系统;
  2. 运算速度不同。64位CPU的指令集可以运行64位数据指令,比32位CPU提高了一倍;
  3. 寻址能力不同。32位系统的处理器最大只支持到4G内存,而64位系统最大支持的内存高达亿位数,实际运用过程中大多数的电脑32位系统最多识别3.5GB内存,64位系统最多识别128GB内存;
  4. 软件兼容性不同。64位系统比32位系统的软件少,主要是64位系统推出的时间不长,所以64位系统的兼容性不如32位,虽然可以兼容32位软件,但是部分32位的软件在64位系统无法运行,但是目前的Win7 64位系统兼容性好了很多;

3.类型转换

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

3.1强制转换/自动转换

​ 当从高容量转换到低容量时,需要使用强制转换;当从低容量转换到高容量时,可以使用自动转换.

int i = 128;
byte b = (byte)i;//内存溢出	强制转换
double c = i;//自动转换

3.2注意点

  1. 不能对布尔值进行类型转换;
  2. 不能把对象转换为不相干的类型;
  3. 在把高容量转换到低容量的时候需要强制转换;
  4. 转换的时候可能存在内存溢出或者精度问题.

3.3拓展

​ 操作比较大的数的时候,要注意内存溢出问题(JDK7的新特性,数字之间可以用下划线分割).

int money = 10_0000_0000;
System.out.println(money);//1000000000
int year = 20;
int total = money*years;
long total2 = money*years;//默认是int,转换之前已经存在溢出
long total3 = money*(long)years;//先把一个数转换为long
System.out.println(total);
System.out.println(total2);
System.out.println(total3);

4.变量\常量

4.1变量 Variable

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

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

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

type varName [=value] [{,varName[=value]}];
//数据类型	变量名	=	值;
//可以使用逗号隔开来声明多个同类型的变量.(但不建议)

//int a,b,c;//不可使用
//int a=1,b=2,c=3;//程序可读性差
String name = "autumn";
char x = 'x';
double pi = 3.14;

4.1.2注意事项

  • 每个变量都有类型, 类型可以是基本类型, 也可以是引用类型 ;
  • 变量名必须是合法的标志符 ;
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束 ;

变量作用域

  • 类变量
  • 实例变量
  • 局部变量
public class Variable{
    static int allClicks=0;//类变量
    String str="hello world";//实例变量 从属于对象;如果不自行初始化,这个类型的默认值0 0.0;布尔值默认时为false;除了基本类型,其余的默认值都是null
    
    public void method(){
        int i=0;//局部变量 必须声明和初始化值
    }
}

4.2常量 Constant

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

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

final 常量名=值;
final double PI=3.14;

常量名一般使用大写字符.

4.3变量的命名规范

  • 所有变量, 方法, 类名: 见名知意 ;
  • 类成员变量: 首字母小写和驼峰原则: monthSalary 除了第一个单词以外, 后边的单词首字母大写;
  • 局部变量: 首字母小写和驼峰原则;
  • 常量: 大写字母和下划线;
  • 类名: 首字母大写和驼峰原则;
  • 方法名: 首字母小写和驼峰原则: run(), runRun();

5.运算符

​ Java语言支持如下运算符:

  • 算术运算符: +, -, *, /,%, ++, --
  • 赋值运算符: =
  • 关系运算符: >, <, >=, <=, ==, !=, instanceof
  • 逻辑运算符: &&, ||, !
  • 位运算符: &, |, ^, ~, >>, <<, >>>(了解)
  • 条件运算法: ? :
  • 扩展赋值运算符: +=, -=, *=, /=

5.1 拓展

​ 字符串连接符

int a = 10;
int b = 20;

a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a);

//字符串连接符    +   ,string
System.out.println(a+b);//30
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
System.out.println(a+b+""+a+b);//301020

6.包机制\JavaDoc

6.1包机制

为了更好的组织类, Java提供了包机制, 用于区别类名的命名空间.

包语句的语法格式为:

package pkg1[.pkg2[.pkg3...]];

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

为了能够使用某一个包的成员, 我们需要在Java程序中明确导入该包. 使用"import"语句可以实现此功能.

import package1[.package2...].(classname|*);

6.2JavaDoc

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

参数信息:

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

使用cmd生成JavaDoc文档

  1. 通过open in Explorer打开文件目录;

  2. 在文件夹目录前添加cmd打开命令行

  3. 使用javadoc命令

    javadoc -encoding UTF-8 -charset UTF-8 xxx.java
    

使用IDEA生成JavaDoc文档

  1. Tools-->generate javadoc

  2. 必填选项

    Genrate JavaDoc scope

    Output directory

    Other command line arguments

    -encoding UTF-8 -charset UTF-8