01java基础-基础语法

基础语法


二进制

计算机中的数据都以二进制数字保存。二进制:逢二进一。即只有 0、1 两个值。

  • 计算机中信息的存储单位

    (Bit):表示一个二进制数码 0 或 1,是计算机存储处理信息的最基本的单位。

    字节(Byte):一个字节由 8 个位组成。它表示作为一个完整处理单位的 8 个二进制数码。 一个字节最大的数:11111111,即下十进制的255。

在这里插入图片描述

变量
变量分类
  • 按数据类型分:

    1. 基本数据类型变量:共8种。数值型(整型:byte,short,int,long,浮点型:float,double,字符型:char),布尔型(boolean)
    2. 引用数据类型变量:字符串、类、接口、数组
  • 按变量申明的位置划分:

    1. 局部变量(方法内部 或 代码块内部定义的变量)
    2. 成员变量(方法外部、类的内部定义的变量)

备注:类的外面不能有变量的声明

变量作用域
package day01_demo2;

public class demo02 {
   
    public static void main(String[] args) {
        method1();
        
    }
    
    // 内层范围可以访问外层范围定义的变量
    public static void method1() {
        int a = 10;
        int b = 20;
        {
            System.out.println(a+b);
        }
    }
    
    // 外层范围可以不访问内层范围定义的变量
    public static void method2() {
        {
            int a = 10;
            int b = 20;
        }
        //System.out.println(a+b); // 报错
    }
}

基本数据类型
数据类型关键字内存占用取值范围
字节型byte1个字节 8位-128~127
短整型short2个字节-32768~32767
整型int(默认)4个字节-2的31次方~2的31次方-1【-2147483648 ~ 2147483647】
长整型long8个字节-2的63次方~2的63次方-1
单精度浮点数float4个字节1.4013E-45~3.4028E+38
双精度浮点数double(默认)8个字节4.9E-324~1.7977E+308
字符型char2个字节0-65535
布尔类型boolean1个字节true,false
// 定义 long 类型的变量, 必须加 L 后缀,因为默认是 int 类型
long a1 = 10L;

// 定义 float 类型的变量, 必须加 F 后缀,因为默认是 double 类型
float a2 = 1.1F;
类型转换
  • boolean 类型不能转换成任何其它数据类型。

  • **自动类型转换:**容量小的类型自动转换成容量大的数据类型

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

    (byte,short,int 不会互相转换,它们三者在计算时会转换成 int 类型)

  • **强制类型转换:**容量大的类型转换成容量小的数据类型时,要加上强制转换符

    long a = 100L;
    int b = (int)a; // 将a强制转换int类型再赋值给b
    

注意事项

  • 强制类型转换一般不推荐使用,大的转小的 有可能发生精度损失、数据溢出

    int num3 = (int) 3.99 小数点后面的会被丢弃(num3=3)

  • byte/short/char 这三种类型都可以发生数学运算,例如加法"+"

    chart x = 'A'
    System.out.println(x+1) // 得到65+1=66,A 在编码表ASCII为 65
    
  • byte/short/char 这三种类型在运算的时候,都会先转换成为int类型,然后再计算

    short num1 = 60
    byte num2 = 40
    int res = num1 + num2 或者 short res = (short) (num1+num2) 
    

    ASCII码表 :American Standard Code for Information Interchange 美国信息交换标准代码
    ​ 48: ‘0’
    ​ 65: ‘A’
    ​ 97: ‘a’

ASCII 码表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GJjUKV42-1613996250766)(.\pic\ascii码表.jpg)]

标识符

Java 对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。

  1. 由字母、数字、下划线_ 和 美元符号$ 组成。
  2. 不能以数字开头。
  3. 区分大小。
  4. 长度无限制。
  5. 不能是 Java 中的保留关键字。
编程规范(简)
命名风格
  • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用

    单数形式,但是类名如果有复数含义,类名可以使用复数形式。

    正例: 应用工具类包名为 com.alibaba.open.util、类名为 MessageUtils

  • 类名使用 UpperCamelCase 风格,必须遵从大驼峰形式

  • 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从

    小驼峰形式。

  • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

    正例:MAX_STOCK_COUNT,反例:MAX_COUNT。

  • 抽象类命名使用 Abstract 或 Base 开头;

  • 异常类命名使用 Exception 结尾;

  • 测试类命名以它要测试的类的名称开始,以 Test 结尾。

  • 中括号是数组类型的一部分,数组定义如下:String[] args;

代码格式

示范

public static void main(String[] args) {
    // 缩进 4 个空格
    String say = "hello";
    // 运算符的左右必须有一个空格
    int flag = 0;

    // 关键词 if 与括号之间必须有一个空格,括号内的 f 与左括号,0 与右括号不需要空格
    if (flag == 0) {
        System.out.println(say);
    }

    // 左大括号前加空格且不换行;左大括号后换行
    if (flag == 1) {
        System.out.println("world");
        // 右大括号前换行,右大括号后有 else,不用换行
    } else {
        System.out.println("ok");
        // 在右大括号后直接结束,则必须换行
    }
}
  • 注释//: 双斜线与注释内容之间有且仅有一个空格。

    // 注释内容,注意在//和注释内容之间有一个空格。
    
  • 方法参数在定义和传入时,多个参数逗号后边必须加空格。

    method("a", "b", "c"); // 实参的"a",后边必须要有一个空格。
    
  • IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,不要使用 Windows 格式

  • 没有必要增加若干空格来使某一行的字符与上一行对应位置的字符对齐。

关键字

共 51 + 2个保留关键字 = 53 个关键字

2个保留关键字:const、goto

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile
关键字含义
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用在循环结构中
方法

方法用于封装一段特定的逻辑功能。

格式
权限修饰符 返回值类型声明 方法名称(参数列表){
    方法中封装的逻辑功能; 
    return 返回值; // 当声明了返回值类型时需要return语句
}
权限修饰符
访问修饰符同一个类同包不同包,子类不同包,非子类
private
默认
protected
public
运算符
算术运算符
运算符描述备注
+
-
*
/除(求商)
%取模(求余)
++自增如果是变量前缀:先对此变量加 1,再执行其他的操作。
如果是变量后缀:先执行当前语句的其他操作,再对此变量加 1
自减对此变量减1,规则同上
package day01_demo2;

public class demo01 {
	public static void main(String[] args) {
		int a = 10;
		System.out.println(++a); // 自增在前,先自增再运算,结果为11
		
		int b = 20;
		System.out.println(b++); // 自增在后,先运算再自增,结果为20
	}
}
赋值运算符
运算符描述示例
=赋值a = 10
+=加等于a += 10 等于 a = a + 10
-=减等于a -= 10 等于 a = a - 10
*=乘等于a *= 10 等于 a = a * 10
/=除等于a /= 10 等于 a = a / 10
%=模等于a %= 10 等于 a = a % 10
关系运算符

关系运算符作用是比较两边的操作数,结果总是 boolean 型的。

运算符描述示例
==相等2 == 1 结果 false
!=不等于2 != 1 结果 true
<小于
>大于
<=小于等于
>=大于等于
逻辑运算符
运算符描述示例
&与(左右两边都要运算,两边为true,结果true)true & true = true
|或(只要有一个true,结果为true)true & false = true
!非(取反)!false = true
&&短路与(左边false,右边不运算)
||短路或(左边true,右边不运算)
^异或(相同为false)true ^ true = false
字符串连接运算符

"+"除了可用于字符串相连接,也能将字符串与其它的数据类型相连成一个新的字符串。

三目运算符

boolean 类型表达式? 表达式1:表达式2

boolean 类型表达式结果为true,则三目运算结果为表达式1结果,反之最终结果是表达式2的结果

操作符优先级

表达式的运算按照运算符的优先顺序从高到低进行,同级运算符从左到右进行。

优先次序运算符
1. [] ()
2++ – ! ~ instanceof
3new (type)
4* / %
5+ -
6>> >>> <<
7> < >= <=
8= = !=
9&
10^
11|
12&&
13||
14?:
15= += -= *= /= %= ^=
16&= |= <<= >>= >>>=
转义字符

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值