• 【java核心技术】Java知识总结 -- 语法篇



    下面是看Java核心技术卷1时觉的有必要进行总结的知识点。虽然有一些知识不是很常用,但是还是很有必要掌握的,对于构建完整的知识体系十分的重要。

    第三章 Java基本程序设计结构

    数值类型之间的转换

    我们经常需要将一种数值类型转换成另外一种数值类型。

    image-20220910010212922

    其中实线表示的是无精度丢失的转换,虚线表示可能有精度丢失的转换。

    比如将byte转换成short精度不会损失,而将int转换成float将会导致精度的损失。

    对于 byte、short、char型的相互运算,会先将它们强转为int型再进行运算.

    		byte a = 1;
            byte b = 2;
            short c = 3;
            short d = 4;
            char e = 'a';
            char f = '\u0000';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    byte类型相加

    在这里插入图片描述

    byte + short:

    在这里插入图片描述

    byte + char:

    在这里插入图片描述

    short + char:

    在这里插入图片描述

    char + char:

    在这里插入图片描述

    位运算符

    位运算符在实际的工作中虽然用的不多,但是知道它的语法和原理也是很有必要的。

    image-20220910011330717

    在本节中会涉及到原码,反码补码的知识可以参考下面的文章

    计算机中原码,反码,补码详解

    String类型的详解

    如果想对于String有更加详细的认识,可以参考文章:字符串参考文章

    下面主要讲的是StringBuilder,是线程不安全的,但是效率最高的。

    效率的高低排序 StringBuilder>StringBuffer(线程安全的)>String

    image-20220910111010887

    StringBuilder builder = new StringBuilder();
    
    • 1

    当需要添加内容的时候,可以调用append()

    builder.append(ch)  //添加一个单一的字符
    builder.append(str)   //添加一个字符串    
    
    • 1
    • 2

    image-20220910111313751

    String completedString = builder.toString();
    
    • 1

    image-20220910111419303

    image-20220910111636269

    image-20220910111645719

    控制流程

    块作用域

    image-20220910115159709

    但是需要注意的嵌套的两个块不能有同名变量的声明。如下面的代码中将会报错。

    public class Exer {
        public static void main(String[] args){
            int a;
            {
                int a;
                int b;
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    image-20220910115601223

    swich语句

    image-20220910120400985

    image-20220910120418763

    image-20220910120426051

    其中的case标签可以是如下:

    • 类型为char、byte、short、或是int
    • 枚举常量
    • 从Java7开始,case标签还可以是字符串字面量

    image-20220910120726341

    带标签的break语句

    在java中为了达到和c语言中goto语句相似效果的语句可以使用带标签的break语句,不过不太建议使用这个语句。

    具体的用法

    image-20220910121643042

    image-20220910121729619

    数组
    • 声明数组

    在java中允许长度为0的数组,注意,需要注意的是长度为0的数组和null并不相同

    下面两种定义长度为0的数组

    int[] b = new int[0];  //长度为0的数据组
    int[] c = new int[]{};  //长度为0得到数组 
    
    • 1
    • 2
    • 访问数组中的元素

    image-20220910134054811

    String[] a = new String[10];
    
    • 1

    image-20220910134138168

    for(int i =0;i<10;i++) name[i] = "";
    
    • 1

    需要注意的是如果访问数组下标以为的元素,将会产生数组下标越界异常

    foreach循环

    语法格式为

    for(variable:collection) statement
    
    • 1

    它定义了一个变量用于暂存集合中的每一个元素,并执行相应的语句(也可以是语句块)。collection这一集合表达式必须是一个数组或者是一个实现了Iterable接口的类对象(例如ArrayList)。

    for(int element:a) System.out.println(element);将打印数组中每一个元素,一个元素占用一行
    
    • 1
    int[] wei =new int[]{1,2,3,4,5};
    System.out.println(Arrays.toString(wei));
    
    • 1
    • 2

    image-20220910135220887

    总结

    本章为Java的程序设计结构的基础语法部分,在看完本章之后,对于一些觉得有疑惑的地方进行了代码的验证,同时对于一些不是很熟悉的知识例如位运算书中讲的不是很详细,并且感觉大部分的内容都已经忘记,因此为了弥补不足,通过查阅资料的方式进行进一步的学习。同时对于之前没有了解过的知识有了初步了认识比如带标签的break语句。看完本章的内容,整体上收获挺多,后面将更加更加认真的观看其它章节的内容,弥补不足指出。

  • 相关阅读:
    安全基础~通用漏洞5
    C# WPF入门学习主线篇(三十)—— MVVM(Model-View-ViewModel)模式
    复原 IP 地址(回溯+剪枝)
    树与森林转
    【第五部分 | JS WebAPI】2:DOM 元素操作
    java语言程序设计教程pdf,java面试简历
    96 # cookie
    Docker部署gitlab_ce(避坑版---社区版)
    【Linux网络编程】TCP/IP协议详解
    Pytorch网络层参数初始化方法
  • 原文地址:https://blog.csdn.net/weixin_47994845/article/details/126797029