JAVA基础

这篇博客详细介绍了Java的基础知识,包括注释、标识符、数据类型、类型转换、变量、运算符、包机制、javaDoc、流程控制、方法、数组等方面。讲解了变量的声明、作用域、数据类型的强类型特性,以及String对象的创建区别。此外,还涉及到了运算符的使用、包的作用和导入,以及流程控制结构如if、switch、循环等。还涵盖了数组的声明、创建和使用,包括多维数组和数组操作的相关方法。最后提到了冒泡排序和稀疏数组的概念。
摘要由CSDN通过智能技术生成

注释

注释不会实行,写给别人看的解释。

  1. 单行注释 // 注释内容

  2. 多行注释 /星号 注释内容 星号/

  3. 文档注释

    //输出一个Hello,world!
    
            /*
            我是多行
            注释
            */
    
        //JAVADOC文档注释
        /**
         * @deprecation
         */
    

标识符

关键词

在这里插入图片描述

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

所有的标识符都应该已字母a-z 美元符号$ 下划线_ 开始

首字符之后是字母a-z 美元符号$ 下划线_ 或数字的任意字符组合

不能使用关键词作为变量名或者方法名

标识符大小写敏感大的

尽量不要用中文命名,或者拼音 很low

数据类型讲解

强类语言

要求变量的使用严格按照规定,所有变量必须先定义后才能使用

变量就是可以变化的量

每个变量都必须声明其类型

java变量是程序中最基础的存储单元,要素包含变量名、变量类型和作用域

type varName [=value] [{
   ,varName[=value]}]//数据类型 变量名称 = 值;可以使用多个逗号来声明多个同类型变量

基本数据类型

浮点类型=小数类型

在这里插入图片描述

//八大基础数据类型

        //整数类型
        int num1 = 10000;  //最常用类型
        byte num2 = 20;
        short num3 = 2000;
        long num4 = 30L;  //long类型要在数字后面加L

        //小数类型:浮点数
        float num5 = 50.1F;  //float类型要在后面加F
        double num6 = 3.1415926;

        //字符
        char name = '张';  //只能一个字符

        //字符串  String不是关键词,是类
        String name2 = "张思成";

        //布尔值 值只有true和false
        boolean flag = true;
        boolean flag1 = false;

引用类型数据

包含类、接口和数组

数据类型拓展

import java.math.BigDecimal;

public class demo3 {
   
    public static void main(String[] args) {
   
        //整数拓展:  进制  二进制0b   八进制0   十进制  十六进制0x

        int i = 0b10;  //二进制0b
        int i2 = 010;  //八进制0
        int i3 = 10;   //十进制
        int i4 = 0x10; //十六进制0x

        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println(i4);

        //小数  浮点类型拓展  银行业务表示钱用,BigDecimal,不用浮点进行比较
        //float  有限的表示,会有误差,接近数值但不完全等于数值
        //double
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较


        System.out.println("===================================");
        //===================================
        //字符拓展
        //===================================
        char c1 = 'a';
        char c2 = '张';

        System.out.println(c1);
        System.out.println((int)c1); //强制转换
        System.out.println(c2);
        System.out.println((int)c2);  //强制转换

        //所有的字符本质还是数字,所以可以强制转换!
        //编码 unicode编码表 占用2字节 最多表示65536字符 0-65536
        //97 = a

        System.out.println("===================================");
        //===================================
        //转义字符
        // \t  指标符号
        // \n  换行

        System.out.println("Hello\tWorld");
        System.out.println("Hello\nWorld");

        System.out.println("===================================");

        String sa = "Hello";
        String sb = "Hello";

        String sc = new String( "Hello");
        String sd = new String( "Hello");

        System.out.println(sa==sb); //true
        System.out.println(sc==sd);  //false
        // String sa = "Hello";从对象分析
        // String sc = new String( "Hello"); 从内存分析
    }
}

java中String与new String的区别

String对象的创建:
1):直接赋一个字面量: String str1 = “ABCD”;
2):通过构造器构造:String str = new String(“ABCD”);

[区别]()

面试题1:两种方式有什么区别,分别在内存中如何分布?
常量池:专门存储常量的地方。
编译常量池:把字节码加载进JVM的时候,存储的是字节码的相关信息(不研究)。
运行常量池:存储常量数据(研究)。
解释:
String str1 = “ABCD”;最多创建一个String对象,最少不创建String对象。如果常量池中,已经存在“ABCD”,那么str1直接引用,此时不创建String对象,否则,先在常量池先创建“ABCD”内存空间,再引用。
String str2 = new string(“ABCD”);最多创建两个String对象,至少创建一个String对象。new关键字:绝对会在堆空间创建内存区域。

String对象的空值:
    1):表示引用为空(null): String str1 = null; 没有初始化,没有分配内存空间
    2):字符序列为空字符串:string str2 = ""; 已经初始化,分配内存空间,不过没有内容。

类型转换

1.运算中,不同类型的数据先转化为同一类型,再运算

在这里插入图片描述

  • 强制转换 (类型)变量名 高范围值——低范围值
  • 自动转化 低范围值——高范围值
public class demo {
   
    public static void main(String[] args){
   
        int i = 128;
        double b = i ;//给i进行重新定义为byte

        //强制转换 (类型)变量名  高范围值——低范围值
        //自动转化   低范围值——高范围值

        System.out.println(i);
        System.out.println(b);
        
        
        /*
        注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型转换成不相干的类型
        3.高到低转换,强制转换
        4.转换时候可能存在内存溢出,或者精度问题
        */
        
        System.out.println((int)23.7);
        System.out.println((int) 10.23f);

        char a = 'a';
        int c = a+1;
        System.out.println(c);
        System.out.println((char) c);

        //操作比较大的数字时候,注意溢出问题
        int money = 1000000000;
        int years = 20;
        int total = money*years;//-1474836480 计算的时候溢出且为负数
        long total2 = money*years;//money*years默认是int,计算之前已存在问题
        long total3 = money*(long)years;//先把一个变量定义为long 或者一开始就设置为long

        System.out.println(total2);
    }

}

变量

变量就是可以变化的量,每个变量都要声明其类型
变量是最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [{
   ,varName[=value]}]//数据类型 变量名称 = 值;可以使用多个逗号来声明多个同类型变量
每个变量都有类型,基本类型或者引用类型
变量名是要合法的标识符
变量声明是要合法的语句,每个声明以分号结尾
变量作用域
  • 类变量
  • 实例变量
  • 局部变量
public class demo2 {
   

    //属性=变量

    //类变量 static
    static double salary = 2500;

    //实例变量:从属于对象,如果不进行初始化,则输出为类型的默认值 0 0.0
    //布尔值默认是false
    //除了基本类型,其余的默认值都是null
    String name;
    int age ;

    //main方法
    public static void main(String[] args) {
   
        int i = 10;//局部变量,只在方法当中存在,必须声明和初始化

        //变量类型 变量名字 = new demo2();
        demo2 demo2 = new demo2();
        System.out.println(demo2.age);
        System.out.println(demo2.name);

        //类变量 static
        System.out.println(salary);

    }

}

常量:初始化后不能再改变的值,不会再变动的值

值被设定后,程序运行过程中不允许被改变

常量名一般用大写字符

//final 常量名 = 值
final double PI = 3.14;
变量的命名规范

在这里插入图片描述

运算符

运算符优先级()

% 是取余数的意思

!= 是不等于的意思

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rhG7F8T8-1647052008687)(C:\Users\xfwl-z\AppData\Roaming\Typora\typora-user-images\image-20220304160614635.png)]

算术运算符
package operator;

public class Domo01 {
   
    public static void main(String[] args) {
   
        //二元运算法
        // CTRL+D 复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
        
    }
    
}

自增 自减 ++ –
package operator;

public class Demo04 {
   
    public static void main(String[] args) {
   
        // ++ -- 自增 自减 叫做一元运算符

        int a = 3;
        int b = a++;//++在后,先赋值,再增加  先将a的值赋给b,再将a的值加1,此时,a为4,b为3
        int c = ++a;//++在前,先增加,再赋值  先将a的值加1,然后赋值给b,此时,a值为4,b值为4

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }

}
不同类型的算术运算符
package operator;

public class Demo02 {
   
    public static void main(String[] args) {
   
        long a =123411l;
        int b = 123;
        short c = 10;
        byte d = 8;
        double e = 0.1;

        System.out.println(a+b+c+d);//Long
        System.out.println(b+c+d);//int
        System.out.println(c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值