JAVA基本常识复习

1. Java基本常识

JDK java开发工具包
JRE 包含于JRE,JAVA运行时环境
JVM 包含于JRE,JAVA虚拟机

2. Cmd常见命令

启动 Win+R
返回上一级 cd …
返回根路径 cd
查看当前文件夹的内容 dir(linux是ls)
清屏 cls
退出 exit

3. JAVA的跨平台性

JAVA的跨平台性由JVM——JAVA虚拟机(翻译作用)实现,但JAVA的虚拟机本身不具备跨平台性,是JAVA程序具备跨平台性。

4 . JRE+JDK

运行一个已有的Java程序,只有有JRE即可。而开发JAVA程序,则需要JDK

5. Cmd里编译运行Java程序

编译 路径:>javac HelloWorld.java
运行 路径:>java HelloWorld

6. 关键字

特点:
1) 完全小写的字母
2) 在如Notepad++中有特殊颜色

7. 标识符

  1. 定义:
    程序中我们自己定义的内容。eg: 类的名字、方法的名字和变量的名字。

  2. 命名规则:

    • 可以包含英文字母、0-9数字、$、_

    • 不能以数字开头

    • 不能使用关键字

  3. 规范(建议):
    类名:首字母大写,后每个单词首字母大写(HelloWorld)
    变量名:首字母小写,后每个单词首字母大写(miniStorage),同方法名

8. 常量的打印输出

在这里插入图片描述

9. 数据类型

·基本数据类型

  • 整数型 byte short int long

  • 浮点型 float double(默认)字符型 char(Java中的char类型可以用来表示中文)

  • 布尔型 boolean

·引用数据类型

字符串*、数组、类、接口、Lambda

注意事项

  • 字符串是引用数据类型

  • 浮点型不一定是精确值(CSAPP闪现)

  • 数据范围与字节数不一定相关。long虽然表示的范围小于float,但float采用科学计数法更省空间,float4字节,long8字节。

  • 浮点数中默认类型为double。使用float类型需要加后缀F。
    整数中默认类型为int。使用long类型需要加后缀L。

10.变量

注意:当输入long类型时记得:
在这里插入图片描述

11. 类型转换

·自动类型转换

范围从小到大
注意:float范围大于long范围所以
在这里插入图片描述

·强制类型转换

可能发生精度损失、数据溢出

  • Byte/short/char可以发生数学运算,如+。
    在这里插入图片描述
    且在运算时会被首先提升成int类型,再进行计算
    在这里插入图片描述
    • boolean类型不能发生数据类型转换

12. 编码表

1) ASCII
2) Unicode:万国码,0-127和ASCII完全相同,从128开始包含更多字符

13. 算术运算符

1) 运算中有不同类型的数据时,结果将会是数据范围大的那种
2) +对char类型来说,计算之前会提升为int再计算
3) +对String字符串类型来说,代表连接操作,任何数据类型和字符串进行连接时结果都会变成字符串。
在这里插入图片描述

14. 自增自减运算符

1) 前++:先+后用; 后++:先用后+
2) 常量不能用自增自减运算符

15. 比较运算符

1) 比较运算符的结果一定是一个boolean(true/false)
2) 1<x<3这种形式不允许出现,连续比较时使用逻辑运算符

16. 逻辑运算符

1) 连续比较时:
System.out.println(3 < x && x < 5 );

17. 条件运算符

1) 必须保证?后的两个表达式都符合左侧数据类型的要求。
错误示例:Int result = 3 > 4 ? 2.5 : 10 ;
2) 三元运算符的结果必须被使用
错误示例:a > b ? a : b ;

18. 方法

1) 方法定义的先后顺序不影响
2) 方法定义中不能有嵌套包含关系
3) 需要进行调用:
方法名称();

·方法的重载

多个方法的名称一样,但参数列表不同(println实际上就是进行了多次的方法重载)
参数列表不同的定义:

  1. 参数个数不同
  2. 参数类型不同
  3. 参数的多类型顺序不同

注意:
1. 重载与方法的返回值类型无关

sum的返回值类型为int / double / …其余相同时不可作为方法的重载

2. 重载时方法前的public或static都不是影响因素,这两块不同,其余部分相同时也不能构成有效的重载

public static int sum(int a, double b){
···
};

 //参数个数不同
public static int sum (int a, double b, int c){ 
···
};

//参数多类型顺序不同
public static int sum(double a, int b){
···
}

基本方法的使用:
在这里插入图片描述
方法重载的使用:

public class Demo02Method {
    public static void main(String[] args) {
        byte a=10;
        byte b=20;
        System.out.println(isSame(a, b));
        System.out.println(isSame((short) 20, (short) 20)); //short
        System.out.println(isSame(10, 20));
        System.out.println(isSame(10L, 20L)); //long
    }


    public static boolean isSame(byte a, byte b) {
        return a == b;
    }

    public static boolean isSame(short a, short b) {
        return a == b;
    }

    public static boolean isSame(int a, int b) {
        return a == b;
    }

    public static boolean isSame(long a, long b) {
        return a == b;
    }
}

19. 编译器优化

1) 对byte/short/char来说,只要右侧数值没有超过范围,javac编译器会自动隐含的补上(byte)等
在这里插入图片描述
2) 常量优化:给变量赋值时,如果右侧表达式中全是常量,编译器会直接将常量表达式计算得结果。
在这里插入图片描述

20. Switch语句

1) Switch()括号中只能是:
基本数据类型:byte/short/char/int
引用数据类型:string字符串/enum枚举

21. 数组

Java中初始化数组的形式:

·动态初始化(指定长度)

数据类型[ ] 数组名称 = new 数据类型[数组长度]

int[] arrayTest1 = new int[300];
String[] arrayTeat2 = new String[5];

·静态初始化(指定内容,会根据内容自动推算长度)

数据类型[ ] 数组名称 = new 数据类型[ ] {元素1,元素2,…};
或者省略格式: 数据类型[ ] 数组名称 = {元素1,元素2,…};

注意:
1.静态初始化的标准格式可以拆分成2个步骤
2.动态初始化的标准格式也可以拆分成2个步骤
3.静态初始化的省略格式不可以拆分2个步骤

//标准静态
int[] arrayTest1;
arrayTest1 = new int[]{1,2,3}; 

//动态
int[] arrayTest2;
arrayTest2 = new int[5];
 
  1. 动态初始化数组时,元素会有默认值:
    整数:默认0
    浮点:默认0.0
    字符:默认’\u0000’;
    布尔:默认false
    引用:默认null

p.s 静态初始化也有默认值的过程,但系统会自动将默认值替换成大括号中的具体数值

  1. 获得数组长度
    数组名称.length

22.Java的内存划分

·Stack

存放方法中的局部变量,方法的运行一定在栈中运行

·Heap

凡是new出来的东西,都在堆中。
堆内存的数据都有默认值
3. Method Aera:存储.class相关信息,包含方法的信息
4. Native Method Stack
5. pc Register
在这里插入图片描述

23. 字符串

·3种构造方法

public String();    //创建一个空白字符串,不含任何内容
public String(char[] array);   //根据字符数组的内容创建字符串
public String(byte[] array);   //根据字节数组的内容创建字符(String底层是由byte构造的)
package day01.demo05;

public class Demo05String {
    public static void main(String[] args) {
//        空参构造
        String str1 = new String();
        
//        字符串数组构造
        char[] charArray = {'A','B','C'};
        String str2 = new String(charArray);
        
//        字节数组构造
        byte[] byteArray = {97,98,99};    //注意这里写的是ASCII值
        String str3 = new String(byteArray);
    }
}

·直接创建

String str = “HELLO”; //直接使用双引号
注意:对于字符串,直接写双引号也是字符串对象(jvm代替我们new了)

·字符串常量池

——1.7+后在堆中*
程序中直接写上的双引号字符串,就在字符串常量池中。
注意:==对于基本类型来说是比较数值,对于引用类型是比较地址值

因此当有

String str1 = "ABC";

char[] charArray = {'A','B','C'};
String str2 = new String(charArray);

但比较str1==str2时返回值是false。

·字符串比较

为了按照内容比较字符串,我们不能再使用==,而是应该使用下列两个方法进行比较。
1. public boolean equals(Obeject obj)
注意:equals方法具有对称性,也就是a.equals(b)等价于b.equals(a).但如果比较的是一个常量和一个变量,则按照经验会把常量写在前。例如: “abc”.equals(str1)——当str1为null时,若变量在前,则会产生空指针异常。
2. public boolean equalsIgnoreCase(String str)
忽略大小写,比较内容。

·字符串获取

常用方法包括:
在这里插入图片描述

package day01.demo05;

public class Demo05StringGet {

//    获取字符串长度
    int length = "hahahahahaha".length();

//    拼接字符串
    String str1 = "Hello";
    String str2 = "world";
    String str3 = str1.concat(str2);   //Helloworld

//    获取索引位置的字符
    char ch = "Hello".charAt(1);

//    查找参数字符串在本字符串中的第一次出现位置,没有则返回-1
    String original = "dajiahao";
    int index = original.indexOf("jia");
    System.out.println(index);

}

·字符串截取

在这里插入图片描述

·字符串转换

在这里插入图片描述

·字符串分割

在这里插入图片描述正则表达式中.有特殊含义,所以不能直接使用。

字符串练习
1.数组——>字符串
在这里插入图片描述2.键盘输入字符串,并统计大写字母、小写字母、数字、其他的次数。
在这里插入图片描述

24. 数学工具类Math

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值