> 文档中心 > java基础语法(知识点+拓展)

java基础语法(知识点+拓展)


  • 👨‍💻作者简介: 大家好,我是小火车~~,在校大二学生一枚
  • 🛳️个人主页: 嘟嘟嘟的小火车的博客
  • 📗系列专栏: 本文写在《java从0到1》专栏
  • ✉️如果文章知识点有错误的地方,请指正! 和大家一起学习一起进步🎈
  • 🔥如果觉得博主的文章还不错的话,请👍三连支持👍一下博主哦

java语法

  • 一.注释
    • 1.1单行注释
    • 1.2多行注释
    • 1.3文档注释
  • 二.关键字
  • 三.标识符
  • 四.变量,常量
    • 4.1 变量
    • 4.2 常量
  • 五.数据类型
  • 六.类型转换
  • 七.转义字符
  • 八.运算符
    • 算术运算符: + , - , * , / , % , ++ , --
    • 赋值运算符: =
    • 关系运算符: > , = ,<= , == , != , instanceof
    • 逻辑运算符: && , || , !
    • 位运算符: & , | , ^ , ~ , >>, <>>(了解即可!!!)
    • 条件用算符: ? :
    • 扩展赋值运算符: += , -= , *= , /=
    • 优先级
  • 九.包机制
  • 十.javaDoc
  • 补充拓展
    • 1整数拓展
    • 2 浮点数拓展
    • 3 字符扩展
    • 4字符串拓展
    • 5 布尔值扩展
    • 6 类型转换扩展
    • 7 标识符命名扩展
    • 8 快捷键扩展
    • 9 字符串连接符拓展
    • 10 关键字拓展
  • 其他专栏

一.注释

1.1单行注释

//这是单行注释

1.2多行注释

/*这是多行注释这是多行注释这是多行注释这是多行注释*/

1.3文档注释

/***@Description helloworld*@Author Xiaohuoche*这是文档注释*/

二.关键字

大概了解一下,使用过程种会慢慢掌握.

abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try void volatile while

三.标识符

  1. 标识符由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。
  2. 不能把java关键字和保留字作为标识符。
  3. 标识符没有长度限制。
  4. 标识符对大小写敏感。

类名,变量名以及方法名都被称为标识符.

四.变量,常量

4.1 变量

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

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

type varname [= value];

//数据类型 变量名 = 值;

注意事项:

每个变量都有数据类型,类可以是基本数据类型,也可以是引用数据类型.

变量声明是一条完整的语句,必须要用分号结束.

变量的作用域:类变量,实例变量,局部变量.

public class Variable{    static int  allClicks = 0;   //类变量    String str ="hello world";   //实例变量 public void method(){ int i = 0;   //局部变量 Variable viable = new Variable();System.out.println(vriable.str);    }    }
  • 局部变量:在方法中有效 使用时必须声明变量和初始化值,才可以使用
  • 实例变量:在类中在方法外 从属于对象 使用时必须声明变量 但是不用初始化值 先new一个对象在进行调用

如果不初始化,这个类型的默认值 整数0 浮点数0.0 布尔值默认false 除了基本类型,其他的默认值都是null

  • 类变量:在类中在方法外 需要加修饰符static 从属于类 可以在方法中直接调用

4.2 常量

初始化后不能再改变值.不会变动的值.

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

final 常量名=;static final double PI = 3.1415926;final static double PI = 3.1415926;

修饰符不分前后

五.数据类型

java是强类型语言.

强类型语言:

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

一共有两大数据类型:

  • 基本数据类型(内置数据类型)
  • 引用数据类型

Java 语言支持 8 种基本数据类型:byteshortintlongfloatdoublecharboolean

  • 基本数据类型分成数值类型(整型类型byte,short,int,long浮点类型float,double字符类型char)和boolean类型(true和false)
  • 引用数据类型有类,接口,数组.

字符串String是一个类不是一个关键字

具体的范围和默认值,请参考下表:

类型 大小(位) 大小(字节) 最小值 最大值 默认值
byte 8 1 -128 +127 0
char 16 2 0 +655,35 ‘\u0000’
short 16 2 -32,768 +32,767 0
int 32 4 -2,147,483,648 +2,147,483,647 0
long 64 8 -9,223,372,036,854,775,808 +9,223,372,036,854,775,807 0L
float 32 4 1.4 E-45 3.402,823,5 E+38 0.0f
double 64 8 4.9 E-324 1.797,693,134,862,315,7 E+308 0.0d
boolean 1 false

一个字节(byte)是8位(bit).

字符:是指计算机中使用的字母,数字,字和符号.

六.类型转换

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

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

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

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

  • 强制类型转换(高->低)

    (类型)变量名

  • 自动类型转换(低->高)

/*注意点:1.不能对布尔值进行转换2.不能把对象类型转换成不相干的类型3.强制转换的时候可能存在内存溢出,或精度问题!(浮点数转整数会丢第小数部分)/

七.转义字符

符号 代表字符
\ n 换行(0x0a)
\ r 回车(0x0d)
\F 换页(0x0c)
\ b 退格(0x08)
\ s 空格(0x20)
\ t 制表符
" 双引号
单引号
\ 反斜杠
\ddd 八进制字符(ddd)
\ uxxxx 十六进制 Unicode 字符(xxxx)

八.运算符

算术运算符: + , - , * , / , % , ++ , –

+, - , * , / , % , 二元运算符

++ – 自增 自减 一元运算符

整数/整数会舍去小数部分 %取余 模运算 5%2=1

a++或++a 就是 a = a + 1 ; a的结果都加1

int a = 3;//a为3int b = a++;//b为3 a为4   先赋值后自增 int b = ++a;//b为5 a为5 a在上一条代码已经+1  先自增后赋值

幂运算 2^3=8 2*2*2=8

double pow = Math.pow(2,3);System.out.println(pow);//很多运算,我们会使用一些工具类来操作

赋值运算符: =

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

关系运算符的返回的结果: true或false 布尔值

逻辑运算符: && , || , !

a&&b ab都为true结果为true 其中只要有一个为false 结果为false

a||b ab都为false结果为false 其中只要有一个为true 结果为true

!a a为true ,!a为false;a为false,!a为true

短路运算

如果a&&b 如果a为false 就不会继续计算b 结果为false

如果a||b 如果a为true 就不会继续计算b 结果为true

位运算符: & , | , ^ , ~ , >>, <>>(了解即可!!!)

A = 0011 1100

B = 0000 1101


A&B = 0000 1100 //同一位上都为1得1

A|B = 0011 1101 //同一位上有一个为1得1

A^B = 0011 0001 //同一位 相同为0 不相同为1 相当于二进制相加

~B = 1111 0010 //0和1取反

<< 相当于 *2

a = 0001 a<<2 a=4 a = 0100

>> 相当于 /2

a = 0100 a>>1 a=2 a = 0010

a = 0101 a>>1 a=2 a = 0010 5/2=2

条件用算符: ? :

? : 三元运算符

x?y:z;  如果x为ture结果为y,如果y为ture结果为z

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

a+=b a=a+b

优先级

( )优先级最高 然后是一元运算符

经常使用()方便阅读

九.包机制

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

包语句的语法格式为:

package pkg1[.pkg2[.pkg3]];

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

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包.在包语句下面.

import pkg1[.pkg2[.pkg3]];

导入包下所有的类

import pkg1.pkg2.pkg3.*;

十.javaDoc

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

/***@author Cui**/

参数:

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

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

补充拓展

1整数拓展

进制 表示方法
二进制 0b
八进制 0
十进制
十六进制 0x

2 浮点数拓展

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

会用BigDecimal类 数学工具类

3 字符扩展

所有的字符的本质还是数字 2个字节 2的16次 0-65536 U0000-UFFFF

unicode表(97=a 65=A) 一个数字对应一个字符

4字符串拓展

String s1 = new String(original:"hello world");String s2 = new String(original:"hello world");System.out.println(s1==s2);

false

String s3 = "hello world";String s4 = "hello world";

true

第一组因为对象 需要从内存角度分析

5 布尔值扩展

boolean flag = true;if(flag==ture){}//新手if(flag){}//老手

6 类型转换扩展

操作比较大的数的时候,注意溢出问题

JDK7 新特性,数字之间可以用下划线分割

int money = 10_0000_0000;int year = 20;int total1 =  money*year;//-1474836489,计算的时候溢出了long total2 = money*year;//-1474836489,俩个变量都是int类型,计算时默认是int,已经出现了溢出long total3 = money*((long)year);//20000000000//运算时先转换为相同类型在进行计算  //有long转换为long,有float转换为float,有double转换为double  没有默认是int //同时有 优先级 double>float>long

7 标识符命名扩展

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

  • 常量:大写字母和下滑写

  • 变量和类成员变量:首字母小写和驼峰原则

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

  • 方法名:首字母小写和驼峰原则

8 快捷键扩展

ctrl + D : 复制当前行到下一行

9 字符串连接符拓展

int a = 10;int b = 20;  //字符串连接符 + 两边有一个String类型 就会连接起来System.out.println("5"+a+b);  //51020  String类型在前面 后面都会按字符串连接System.out.println(a+b+"5");  //305   String类型在后面 前面会先运算

10 关键字拓展

关键字 含义
abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,声明布尔类型的关键字
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循[IEEE 754](https://baike.baidu.com/item/IEEE 754)算术规范
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中

关键字一律用小写字母标识,按其用途划分为如下几组。

(1)用于数据类型。

用于数据类型的关键字有 boolean、byte、char、 double、 float、int、long、new、short、void、instanceof。

(2)用于语句。

用于语句的关键字有break、case、 catch、 continue、 default 、do、 else、 for、 if、return、switch、try、 while、 finally、 throw、this、 super。

(3)用于修饰

用于修饰的关键字有 abstract、final、native、private、 protected、public、static、synchronized、

transient、 volatile。

(4)用于方法、类、接口、包和异常。

用于方法、类、接口、包和异常的关键字有 class、 extends、 implements、interface、 package、import、throws。

还有些关键字,如 future、 generic、 operator、 outer、rest、var等都是Java保留的没有意义的关键字。

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


其他专栏

❤️《编程相关技能》专栏
🧡《HTML5》专栏
💛《CSS3》专栏
💚《java从0到1》专栏
💙《英语语法》专栏