• Java的基础知识



    活动地址:CSDN21天学习挑战赛

    Java 的基础语法

    因为有C语言的基础,之前在C语言学到过的知识都会简单的略过,重点介绍C语言和Java不同的地方

    注释

    Java中的注释有三种:

    • 单行注释 //
    • 多行注释 /* 内容 */
    • 文档注释 /** 内容 */

    使用方法:

    单行注释
    // 这是用来解释注释的应用方法的
    多行注释   
    /*
    这是用来解释注释的应用方法的 
    */
    文档注释
    /**
    这是用来解释注释的应用方法的
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    用的最多的就是单行注释了,文档注释可以被javadoc工具解析,生成一套以网页文件形式体现的程序说明文档

    标识符

    标识符是程序员自己定义的类名、常量、变量名等,还可以定义接口名,方法名

    标识符命名规则

    标识符命名规则要符合语法规定,否则会报错

    • 标识符可以用字母(包括中文)、数字、下划线、美元符号组成,除此之外不能包括其他符号
    • 标识符不能以数字开头
    • Java 的关键字也不能做标识符
    • 严格的区分大小写字母,有些情况下大写 A 和小写 a 是不一样

    默认遵守的规范

    • 起的名字最好是看到就知道它的作用是什么
    • 起名字时遵守驼峰命名方式,例如:每个单词的首字母大写

    Java中的关键字

    下面就是关键字列表:

    bytecharshortintlong
    floatdoublebooleanenumconst
    ifelseforwhiledo while
    breakcontinuecasedefineextends
    protectedabstractassertcatchclass
    finalfinallygotoimplementsimport
    instanceofinterfacenativenewpackage
    privatepublicreturnstrictfpstatic
    superswitchsynchronizedthisthrow
    throwstransienttryvoidvolatile

    常量

    固定不变的量就被称之为常量
    例如:
    字符串常量:由1个以上用 “ ”括起来的,比如“123”,“abc”,“hello”,“你好”
    整形常量:整形的数字,比如:123
    浮点常量:有小数的数字 比如:1.3,0.26
    字符常量:由 ' '括起来的字符 比如:‘A’、‘B’
    布尔常量:只要二种true(真) 和 false(假)

    变量

    Java 中的变量和C 语言略有不同
    在Java中使用变量需要注意的点:

    • Java 中定义变量必须赋初始值,否则会报错
    • 在赋初始值时,初始值不能超过数据类型的范围,否则会溢出,也会报错
    • C语言的 字符 是使用ASCII码表示字符,而 Java 中使用Unicode码表示字符,不过Java的 Unicode码 也包含了ASCII码
    • Java 中不是用0表示假非0表示真,而是使用布尔类型(bollean)的 true 表示真,false 表示假

    数据类型

    数据类型是用来声明变量,根据不同的类型分配不同的空间
    基本数据类型可以划分为 四 大类 和 八 小种
    四大类:

    • 整形(没有小数)
      byte、short、int、long
    • 浮点型
      float、double
    • 布尔型(boolen)
      只有两个值true和false,true表示真,false表示假
    • 字符型
      char

    八小种:

    数据类型字节大小
    字节型(byte)1字节
    字符型(char)2字节
    短整形(short)2字节
    整形(int)4字节
    长整形(long)4字节
    单精度浮点型(float)4字节
    双精度浮点型(double)8字节
    布尔型(boolan)没有规定
    • Java 是没有分平台的,所以大小都按照上面来
    • Java 是没有无符号类型的,所以都是有符号类型
    • 这里和C语言不同的地方,需要注意的是 char 类型是 2 个字节,
    • float 的数据类型在定义时,要在后面加上 f ,否则会默认为 double 类型
      long的数据类型同样在定义时,要在后面加上 L ,否则会默认为 int 类型
      例如:
    public static void main(String[] args) {
            float a = 63.8f;
            long b = 6L;
            System.out.println(a);
            System.out.println(b);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    计算数据类型的大小

    public class JavaEight {
        public static void main(String[] args) {
            // 计算 int 的最大值和最小值
            System.out.println(Integer.MAX_VALUE);
            System.out.println(Integer.MIN_VALUE);
            // 计算 char 的最大值和最小值
            System.out.println(Character.MAX_VALUE);
            System.out.println(Character.MIN_RADIX);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 其他的类型都是 类型名.MAX_VALUE 的格式,首字符是大写的
    • 只有 int char 的不同,类型名分别是 Integer Character

    类型转换

    Java中也存在强制类型转换(显式)、隐式类型转换(隐式)等,不存在C语言的截断

    隐式类型转换

    隐式类型转换是自动进行转换的,代码不需要经过任何处理,在代码编译时,编译器会自动进行处理
    隐式类型转换都是数值较小的向数据范围大的转换
    例如:

    public static void main(String[] args) {
            int a = 100;
            long b = 6;
            b = a;
            System.out.println(b);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    强制类型转换

    强制类型转换是指 数据类型较大数值强行存放到数据类型较小的空间中
    例如:

    public static void main1(String[] args) {
            int a = 10;
            long b = 100;
            a = b; // 这种是不行的,编译器会报错
            a = (int)b;  //正确的方法  
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    其他的数据类型同上都是类似的

    注意事项:

    • 数据范围小的向数据范围大的强制类型转换,会造成精度丢失
    • 强制类型转换有可能会失败,不相干的类型不能互相转换

    类型提升

    在不同的数据类型进行运算时,数据类型小的会被提升到数据类型大的
    例如:
    int 和 long 之间的运算,int 类型会先被提升到long 类型

    public static void main(String[] args) {
            int a = 10;
            long b = 20;
            //int c = a+b; 这是错误的示范
            long c = a+b;  //正确的写法
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    byte 和 byte 的运算

     public static void main(String[] args) {
            byte a = 1;
            byte b = 3;
            //byte c = a+b;  这是错误的示范
            int c = a+b; //正确的写法
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • byte 和 byte 虽然都是相同的类型,但是会出现编译器报错,原因是 a 和 b 是 byte 类型,但是进行运算时会同时进行类型提升成 int 类型,最后的结果是 int 类型,所以用 byte 接收就会出错

    总结:

    • 不同类型的混合运算会提升到最大的数据类型
    • 对于 short 和 byte 比 4 个字节小的类型,都会先提升到 int 类型再计算

    字符串类型

    在Java 中字符串是有类型的,是使用 String 类定义字符串的

     public static void main(String[] args) {
            int a = 10;
            int b = 20;
            String n = "hello";
            System.out.println("a:" + a + "b:"+b);
            System.out.println("a:" + a +b);
            System.out.println(a+b+"hello");
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    结果:

    在这里插入图片描述

    • 在Java中字符串不是以‘\0’ 为结束标志的
      Java的字符串可以和整数进行相加的,得出的结果是以拼接的形式打印
      当字符串和整数在一起使用 + 时,就是拼接到一起的意思
    • 第一个结果:
      从左边遇到的第一个是字符串,那后面就是以拼接的形式打印
      结果: a :10 b:20
      第二个结果:
      后面的 a + b 并不是相加,由于第一个是字符串,所以后面就是以拼接的形式打印
      结果: a :1020
      第三个结果:
      左边第一遇到的不是字符串,按正常计算
      结果:30hello

    还有就是字符串可以和字符串进行拼接

    String a = "hello ";
    String b = "world";
    System.out.println(a+b);
    
    • 1
    • 2
    • 3

    结果:
    在这里插入图片描述

  • 相关阅读:
    vue2(5)
    MMU如何通过虚拟地址找到物理地址?
    chrome浏览器设置--disable-web-security解决跨域
    Fiddler利用Edxposed框架+TrustMeAlready来突破SSL pinning抓取手机APP数据
    从零学算法41
    你是怎么封装微信小程序的数据请求的?
    最常见的Java面试题【杭州多测师_王sir】【杭州多测师】
    Redis缓存雪崩及解决办法
    博途1200/1500PLC上升沿下降沿指令编程应用技巧(bool数组)
    8月榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!
  • 原文地址:https://blog.csdn.net/m0_66483195/article/details/126113880