【Java】java基础

Java基础

1 注释、标识符、关键字

1.1 注释

  • 注释并不会执行,是给写代码的看的
  • 书写注释是一个好习惯

Java注释分为三种

  1. 单行注释 //注释

    //这是单行注释
    
  2. 多行注释 /* 注释 */

    /*                                                                         
     *          .,:,,,                                        .::,,,::.          
     *        .::::,,;;,                                  .,;;:,,....:i:         
     *        :i,.::::,;i:.      ....,,:::::::::,....   .;i:,.  ......;i.        
     *        :;..:::;::::i;,,:::;:,,,,,,,,,,..,.,,:::iri:. .,:irsr:,.;i.        
     *        ;;..,::::;;;;ri,,,.                    ..,,:;s1s1ssrr;,.;r,        
     *        :;. ,::;ii;:,     . ...................     .;iirri;;;,,;i,        
     *        ,i. .;ri:.   ... ............................  .,,:;:,,,;i:        
     *        :s,.;r:... ....................................... .::;::s;        
     *        ,1r::. .............,,,.,,:,,........................,;iir;        
     *        ,s;...........     ..::.,;:,,.          ...............,;1s        
     *       :i,..,.              .,:,,::,.          .......... .......;1,       
     *      ir,....:rrssr;:,       ,,.,::.     .r5S9989398G95hr;. ....,.:s,      
     *     ;r,..,s9855513XHAG3i   .,,,,,,,.  ,S931,.,,.;s;s&BHHA8s.,..,..:r:     
     *    :r;..rGGh,  :SAG;;G@BS:.,,,,,,,,,.r83:      hHH1sXMBHHHM3..,,,,.ir.    
     *   ,si,.1GS,   sBMAAX&MBMB5,,,,,,:,,.:&8       3@HXHBMBHBBH#X,.,,,,,,rr    
     *   ;1:,,SH:   .A@&&B#&8H#BS,,,,,,,,,.,5XS,     3@MHABM&59M#As..,,,,:,is,   
     *  .rr,,,;9&1   hBHHBB&8AMGr,,,,,,,,,,,:h&&9s;   r9&BMHBHMB9:  . .,,,,;ri.  
     *  :1:....:5&XSi;r8BMBHHA9r:,......,,,,:ii19GG88899XHHH&GSr.      ...,:rs.  
     *  ;s.     .:sS8G8GG889hi.        ....,,:;:,.:irssrriii:,.        ...,,i1,  
     *  ;1,         ..,....,,isssi;,        .,,.                      ....,.i1,  
     *  ;h:               i9HHBMBBHAX9:         .                     ...,,,rs,  
     *  ,1i..            :A#MBBBBMHB##s                             ....,,,;si.  
     *  .r1,..        ,..;3BMBBBHBB#Bh.     ..                    ....,,,,,i1;   
     *   :h;..       .,..;,1XBMMMMBXs,.,, .. :: ,.               ....,,,,,,ss.   
     *    ih: ..    .;;;, ;;:s58A3i,..    ,. ,.:,,.             ...,,,,,:,s1,    
     *    .s1,....   .,;sh,  ,iSAXs;.    ,.  ,,.i85            ...,,,,,,:i1;     
     *     .rh: ...     rXG9XBBM#M#MHAX3hss13&&HHXr         .....,,,,,,,ih;      
     *      .s5: .....    i598X&&A&AAAAAA&XG851r:       ........,,,,:,,sh;       
     *      . ihr, ...  .         ..                    ........,,,,,;11:.       
     *         ,s1i. ...  ..,,,..,,,.,,.,,.,..       ........,,.,,.;s5i.         
     *          .:s1r,......................       ..............;shs,           
     *          . .:shr:.  ....                 ..............,ishs.             
     *              .,issr;,... ...........................,is1s;.               
     *                 .,is1si;:,....................,:;ir1sr;,                  
     *                    ..:isssssrrii;::::::;;iirsssssr;:..                    
     *                         .,::iiirsssssssssrri;;:.                      
    */
    
  3. JavaDoc:文档注释 /** 注释 */

    /**
     *@Description HelloWord
     *@Author GoddamnCode
     */
    

1.2 关键字

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile
truefalsenull

Java还有3个保留字:true、false、null。它们不是关键字,而是文字。包含Java定义的值。和关键字一样,它们也不可以作为标识符使用。

1.3 标识符

  • 标识符由数字(09)和字母(AZ 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
  • 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。
  • 不能使用关键字作为变量名或者方法名
  • 标识符是大小写敏感
    • Hellohello不是同一个变量名
  • 合法标识符举例:age、$salary、_value、 _1_value
  • 非法标识符举例:123abc、-salary、#abc
  • 可以使用中文命名,但是一般不建议这样去使用。

1.4 数据类型

Java是强类型语言,要求变量的使用要严格符合规定,所有变量都要先定义才能使用。

Java的数据类型分为两大类

1.4.1 基本类型

byte:

  • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是 -128(-2^7)
  • 最大值是 127(2^7-1)
  • 默认值是 0
  • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
  • 例子:byte a = 100,byte b = -50。

short:

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数
  • 最小值是 -32768(-2^15)
  • 最大值是 32767(2^15 - 1)
  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
  • 默认值是 0
  • 例子:short s = 1000,short r = -20000。

int:

  • int 数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是 -2,147,483,648(-2^31)
  • 最大值是 2,147,483,647(2^31 - 1)
  • 一般地整型变量默认为 int 类型;
  • 默认值是 0
  • 例子:int a = 100000, int b = -200000。

long:

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
  • 最小值是 -9,223,372,036,854,775,808(-2^63)
  • 最大值是 9,223,372,036,854,775,807(2^63 -1)
  • 这种类型主要使用在需要比较大整数的系统上;
  • 默认值是 0L
  • 例子: long a = 100000L,Long b = -200000L。
    "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。

float:

  • float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
  • float 在储存大型浮点数组的时候可节省内存空间;
  • 默认值是 0.0f
  • 浮点数不能用来表示精确的值,如货币;
  • 例子:float f1 = 234.5f。

double:

  • double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;

  • 浮点数的默认类型为 double 类型;

  • double类型同样不能表示精确的值,如货币;

  • 默认值是 0.0d

  • 例子:

    double   d1  = 7D ;
    double   d2  = 7.; 
    double   d3  =  8.0; 
    double   d4  =  8.D; 
    double   d5  =  12.9867; 
    

    7 是一个 int 字面量,而 7D,7. 和 8.0 是 double 字面量。

boolean:

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true 和 false;
  • 这种类型只作为一种标志来记录 true/false 情况;
  • 默认值是 false
  • 例子:boolean one = true。

char:

  • char 类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \u0000(十进制等效值为 0);
  • 最大值是 \uffff(即为 65535);
  • char 数据类型可以储存任何字符;
  • 例子:char letter = ‘A’;。
1.4.2 引用类型
  • String 是 类不是关键字

  • 接口

  • 数组

1.4.3 整数类型拓展
int i = 10;//十进制
int i2 = 010;//八进制
int i3 = 0x10;//十六进制
int i4 = 0b10;//二进制
1.4.4 浮点数拓展

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

浮点数是有限的、离散的、、有舍入误差、接近但不等于。

1.4.5 字符拓展

字符可以强制转换为数字

char c1 = 'a'
int a = (int)c1;

所有字符本质还是数字

Unicode编码 2字节 0 - 65536

U0000->UFFFF

1.4.5.1 转义字符
例子
\t 水平制表符
\n 换行符
......

1.5 类型转换

Java是强类型语言,在进行一些运算的时候,需要用到类型转换。

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

byte,short,char --> int --> long --> float --> double

为什么long64在float32之前?

因为小数的优先级大于整数

1.5.1 强制转换

类型 =(类型)变量名 (从高到底)

1.5.2 自动转换

从低到高

1.5.3 注意点
  • 不能对布尔值进行转换
  • 不能把对象类型转换成不相干的类型
  • 在把高容量转换到低容量的时候,强制转换
  • 转换的时候时候可能位数超过对应类型的位数导致数据错误,或者精度问题
//jdk7新特性 数字之间可以用下划线分割
int money = 10_0000_0000;
int year = 20;
long total = money * year;//-1474836480 计算时溢出,计算完时默认结果为int,之后才会转换为long
//先把一个数转换为long即可解决
//或者在数字后加L
long total2 = money * (long)year;
money = 10_0000_0000L;

1.6 变量

  • 变量是可以变化的量
  • Java是一种强类型语言,每个变量都必须声明其类型
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
  • 变量名必须是合法的标识符
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
1.6.1 变量作用域
public class Variable{
    static int allClicks = 0;//类变量
    String str = "hello world";//实例变量
    public void method(){
    int i = 0;//局部变量
	}
}
1.6.2 常量

常量:初始化后不能再改变的值,不会变动的值

final + 类型 + 名 = 值

常量名一般使用大写字母

final double PI = 3.14;
1.6.3 变量的命名规范
  • 所有的变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary(除第一个单词外其他单词首字母大写)
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

1.7 基本运算符

  • 算数运算符:+,-,*,%,++,–
  • 复制运算符:=
  • 关系运算符:>,<,>=,<=,==,!=,instanceof
  • 逻辑运算符:&&,||,!
  • 位运算符:&,|,^,~,>>,<<,>>>
  • 条件运算符: ? :
  • 扩展复制运算符: +=,-=,*=,/=
1.7.1 字符串连接符+
int a = 10;
int b = 20;
System.out.println(" "+a+b);//字符串在前面,会将其他操作数转换成string后进行连接,输出为 1020
System.out.println(a+b+" ");//字符串在后面,前面a+b仍会运算
1.7.2 三元运算符

x ? y : z

如果x为真,结果为y,如果x为假,结果为z

1.8包机制

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

包的本质就是文件夹

包语句的语法格式:

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

package必须放在最上面

一般利用公司域名倒置作为包名

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

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

导入包下所有类 *为通配符

import xxx.xxx.xxx.*;

1.9 JavaDoc生成文档

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

参数信息

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

使用命令行查看javadoc信息

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

也可在idea中设置鼠标移动在类上自动显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值