一、Java基础语法[JavaSE系列]

常用储存单位:

1B(字节)=8bit

1KB=1024B

1MB=1024KB

1PB=1024TB

常见命名约定:

小驼峰命名法:(方法、变量)

  • 约定1:标识符是一个单词的时候,首字母小写
  • exp1:name
  • 约定2:标识符是由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写
  • exp2:firstName

大驼峰命名法:(类)

  • 约定1:标识符是一个单词的时候,首字母大写
  • exp1:Students
  • 约定2:标识符是由多个单词组成的时候,每个单词首字母大写
  • exp2:GoodStudents
java的基本数据类型:

整型:byte short int long 空间大小依次为:(1 2 4 8)字节 常用int 使用long初始化时要在值后加L exp:long a = 5000L

浮点型:单精度float 双精度double 空间大小依次为:(4 8)字节 常用double 使用float初始化时要在值后加F exp:float a = 11.2F

字符型:char 空间大小为:2字节

布尔型:boolean 空间大小为:1字节

类型转换:
隐式转换:
  • 小的数据类型和大的数据类型运算,小的会先提升为大的再进行运算

  • 特殊关注:byte short char 三种数据在运算时,不管是否有更高的数据类型,都会提升为int再进行运算

    • exp:

      byte a = 10; 
      byte b = 20; 
      int c = a+b;	//需要用int接收
      
强制类型转换:
double a = 10.5;
int b = (int)a;  //b=10
数值拆分:
  • 个位:num%10
  • 十位:num/10%10
  • 百位:num/10/10%10
  • 千位:num/10/10/10%10
自增自减运算符:
++a:

先进行a的自增,再使用a参与操作

a++:

先使用a参与操作,再进行a的自增

int a = 10;
int b = ++a;
System.out.println(a);  //a=11
System.out.println(b);  //b=11
a = 10;
int c = a++;
System.out.println(a);  //a=11
System.out.println(c);  //c=10
System.out.println(c++);  //res=10 c先操作,然后自增,c=11
System.out.println(++c);  //res=12 c=12
赋值运算符:

注意:扩展赋值运算符底层自带强转

short a = 11;
a = (short)a+1;	//不加强转会报错  因为short运算会提升为int
a+=2;	//内部自带强转 a = (short)a+2
短路逻辑运算符:

&&:有短路效果,符号左边为false时,右边不执行

&:不论左边是true或者false,右边都执行

||:有短路效果,符号左边为true时,右边不执行

|:不论左边是true或者false,右边都执行

位运算符

位运算就是把两个数转成二进制,使用不同规则进行运算

&位与:遇0则0

|位或:遇1则1

^位异或:相同为0,不同为1 ps:一个数被另一个数异或两次,该数本身不变

~取反:全部取反,0变1,1变0(包括符号位)

​ << 有符号左移运算符,二进制位向左移动,左边符号位丢弃,右边补0 exp: 12<<1 ans=24

​ >>有符号右移运算符,二进制位向右移动,左边使用符号位补位 exp: 12>>1 ans=6 -12>>1 ans=-6

​ >>>无符号右移运算符,无论符号位是0还是1,都补0 exp: -12>>>1 ans=2147483642

三元运算符:

格式:关系表达式?表达式1:表达式2

执行流程:

  1. 先计算关系表达式的值
  2. 如果值为true,取表达式1的值
  3. 如果值为false,取表达式2的值
break跳出指定循环:
标号名:while(true){
    switch(表达式){
        case 1:
            break 标号名;	//此处的break,可以直接跳出while循环
    }
}
IntelliJ IDEA快捷键
  • psvm+回车:快速生成main方法
  • sout+回车:快速生成输出语句
  • alt+1:打开/隐藏 工程目录
  • alt+4:打开/隐藏 控制台
  • ctrl+alt+l:格式化代码
  • alt+enter:代码修正提示
  • ctrl+d:向下复制一行
  • alt+shift+↑:上移当前行
  • alt+shift+↓:下移当前行
  • ctrl+alt+v:快速生成方法的返回值
Java中的内存分配

栈内存:方法运行时,进入的内存,局部变量都存放在栈内存

堆内存:new出来的内容都会进入堆内存,并且会存在地址值

方法区:字节码文件(.class)加载时进入的内存

本地方法栈:调用操作系统相关资源

寄存器:交给cpu去使用

public class Demo1{
    public static void main(String[] args){
        int[] arr = new int[3];
        System.out.println(arr[0]);
            
    }
}

以上代码的调用流程为:

  1. Demo1类的字节码文件加载进方法区
  2. main方法被jvm自动调用进入栈内存执行
  3. arr数组变量在main方法中声明(int[] arr)
  4. 通过new关键字在堆内存中开辟内存空间并产生地址值(new int[3])
  5. 将地址值赋予main方法中的arr变量
方法重载

同一个类中,方法名相同,参数不同的方法。(参数不同:个数不同、类型不同、顺序不同[不建议])

注意:识别方法之间是否是重载关系,只看方法名和参数,和返回值无关。

引用数据类型

方法参数传递为引用数据类型时,传入方法中的,是内存地址 。

exp: int[] arr

进制转换
十进制转任意进制

公式:除基取余

​ 使用源数据,不断除以基数(目标是几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可。

二进制快速转八进制、十六进制

转八进制:将三个二进制位看为一组,再进行转换(参照8421表) exp: 0b111100->074

转十六进制:将四个二进制位看为一组,再进行转换(参照8421表) exp:0b111100->0x3c

原码反码补码
原码:看数据

最高位为符号位,【0】表示正,【1】表示负。

反码:转数据

正数的反码与其原码相同;负数的反码市对其原码逐位取反,符号位除外

补码:运算数据

正数的补码与其原码相同;负数的补码是在其反码的末位加1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值