JavaSE基础语法总结

目录

前言

一、注释、标识符、关键字

1.注释

2.标识符

3.关键字

二、数据类型

1.内置数据类型

2.引用数据类型

3.数据类型扩展及面试题

三、类型转换

自动类型转换

强制类型转换

隐含强制类型转换

四、变量、常量

1.命名规范

2.变量

3.常量

五、运算符

六、包机制

七、JavaDoc 

总结


 

前言

Java基础知识总结,包含注释、标识符、关键字、数据类型、类型转换、变量、常量、作用域、基本运算符、自增自减运算符、逻辑运算符、位运算符、三元运算符、包机制、JavaDoc生成文档……

一、注释、标识符、关键字

1.注释

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

Java中的注释有三种:单行注释、多行注释、文档注释。

/**
  *@Author 膀大腰圆的杨一
  *这是文档注释的示例
  */
public class HelloWorld {
   /* 这是一个多行
    * 这是一个多行注释
    * 这是一个多行注释的示例
    */
    public static void main(String[] args){
       // 这是单行注释的示例
       /* 这个也是单行注释的示例 */
       System.out.println("Hello World"); 
    }
}

2.标识符

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

关于 Java 标识符,有以下几点需要注意:

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 关键字不能用作标识符
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary
  • 不建议使用中文或字母拼写,我以前这样写被老师说很low

3.关键字

Java 关键字不能用于常量、变量、和任何标识符的名称。

注意:Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用。

类、方法和变量修饰符abstract声明抽象
class
extends扩充,继承
final最终值,不可改变的
implements实现(接口)
interface接口
native本地,原生方法(非 Java 实现)
new新,创建
static静态
strictfp严格,精准
synchronized线程,同步
transient短暂
volatile易失
程序控制语句break跳出循环
case定义一个值以供 switch 选择
continue继续
default默认
do运行
else否则
for循环
if如果
instanceof实例
return返回
switch根据值选择执行
while循环
访问控制private私有的
protected受保护的
public公共的
default默认
错误处理assert断言表达式是否为真
catch捕捉异常
finally有没有异常都执行
throw抛出一个异常对象
throws声明一个异常可能被抛出
try捕获异常
包相关import引入
package
基本类型boolean布尔型
byte字节型
char字符型
double双精度浮点
float单精度浮点
int整型
long长整型
short短整型
变量引用super父类,超类
this本类
void无返回值

二、数据类型

1.内置数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

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';。

 

2.引用数据类型

  • 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
  • 对象、数组都是引用数据类型。
  • 所有引用类型的默认值都是null。
  • 一个引用变量可以用来引用任何与之兼容的类型。
  • 例子:Site site = new Site("Runoob")。

3.数据类型扩展及面试题

 

 (1).整数拓展

进制问题使用前缀表示,二进制前缀0b   八进制前缀0   十进制   十六进制前缀0x

示例:

//整数扩展 进制问题前缀表示   二进制0b   八进制0   十进制   十六进制0x
System.out.println("========整数扩展========");
int i = 10;               //十进制
int i2 = 0b10             //二进制0b
int i8 = 010;             //八进制0
int i16 = 0x10;           //十六进制0x
System.out.println(i);    //输出 10
System.out.println(i2);   //输出 2
System.out.println(i8);   //输出 8
System.out.println(i16);  //输出 16

(2).浮点数拓展

问:银行业务怎么表示钱?

答:最好完全避免使用浮点数比较,float是有限的,离散的,舍入误差,大约,接近但不等于;

        可使用BigDecimal数学工具类。

//浮点数扩展     银行业务怎么表示钱?
System.out.println("========浮点数扩展========");
//float  有限、离散、舍入误差、大约、接近但不等于
//double
//最好完全避免使用浮点数比较,使用BigDecimal数学工具类
float f = 0.1f;             //值为0.1
double d = 1.0/10;          //值为0.1
System.out.println(f==d);   //但是输出false
System.out.println(f);      //0.1
System.out.println(d);      //0.1

float d1 = 31231231313213131213f;
float d2 = d1 + 1;
System.out.println(d1==d2); //输出true

(3).字符拓展

强制转换可以把字符转为数字吗?

每一个字符有对应的Unicode编码,故而可以强制转换为数字, U0000-UFFFF。

//字符拓展
//强制转换可以把字符转为数字
System.out.println("========字符扩展========");
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//输出97
System.out.println(c2);
System.out.println((int)c2);//输出20013
//所有的字符还是数字
//编码 Unicode表:97=a , 65=A  2字节   0-65536  2的16次方
//U0000-UFFFF
char c3 = '\u0061';      
System.out.println(c3);  //a

(4).布尔扩展

System.out.println("========布尔扩展========");
boolean flag = true;
//下面两个if语句相同
if (flag==true){}  //新手写法
if (flag){}        //老手写法

(5).以下代码(从内存分析)

看似一样,但是输出结果一个false,一个true

第一个比较内存地址不同,第二个比较是在字符串常量池。

String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);    //输出false

String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);    //输出true

三、类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级。

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

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

数据类型转换规则: 

        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.在把高容量转换为低容量的时候,强制转换
        4.转换的时候可能存在内存溢出,或者精度问题
        5.浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

自动类型转换

  • 必须满足转换前的数据类型的位数要低于转换后的数据类型。

 

强制类型转换

  • 条件是转换的数据类型必须是兼容的。

  • 格式:(type)value type是要强制类型转换后的数据类型

隐含强制类型转换

  • 整数的默认类型是 int。

  • 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。

四、变量、常量

1.命名规范

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

2.变量

在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:

type identifier [ = value][, identifier [= value] ...] ;
//type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。

Java语言支持的变量类型有:

  • 类变量(静态变量):独立于方法之外的变量,用 static 修饰。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量:类的方法中的变量。

3.常量

 

常量在程序运行时是不能被修改的。

在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:

final double PI = 3.1415927;

虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。

Java的字符串常量也是包含在两个引号之间的字符序列。

字符串常量和字符变量都可以包含任何 Unicode 字符。

Java语言支持一些特殊的转义字符序列。

五、运算符

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

六、包机制

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
  • 包语句的语法格式为:
package pkg1[.pkg2[.pkg3...]];
  • 一般利用公司域名倒置作为报名:com.baidu.XXX
  • 为了能够使某一个包的成员,我们需要在Java程序中明确导入该包,使用import语句完成该功能。
import package1[.package2...].(classname|*);

七、JavaDoc 

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

2.参数信息:

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

3.使用IDEA生成JavaDoc文档

参考地址:https://www.csdn.net/tags/Ntjacg2sODY4NDgtYmxvZwO0O0OO0O0O.html

总结

Java基础知识是必备的,所有之后的Java学习都是基于java的基础,如果基础不扎实,在学习较为深入的内容时会觉得非常艰难。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值