初识Java ~ (一) 从0开始,Java基础知识,双手奉上~ 可收藏!!


大家好啊~ , 清汉 回来了, 再也不离家出走了

在这里插入图片描述

时隔一月," 断更人 "终于开更了~

本次更新带来了全新的一门编程语言 Java~

这门编程语言,将是今后文章更新的主打选手,将荣登本博客 C位,哈哈~

博主,很是期待,信心爆棚,哦~
在这里插入图片描述


这本书呢,开始阅读的时候很不习惯,(可能是学过Python的原因吧,两种编程语言基础知识差不太多)感觉啰啰嗦嗦的进度很慢。

后来慢慢读进去了,觉得作者的这种笔法对 “0”基础初学者很是友好,顺着作者的思维由浅入深,就很容易理解。

尤其是作者阐述 Java 编程思想,封装、继承、多态的时候,层层递进,让你理解的很自然。先带你将各种例程走一遍,并没有强调单个例程的就是 java 的某个编程思想,而是用生活中的例子带入到编程中,最后引出 封装、继承、多态的含义,让人豁然开朗。

(这就是我决定引用本书中的知识,来作为 初识 Java 系列文章的原因)

掌握一门编程语言的精髓,就是掌握他的编程思想。

当你理解并可以熟练运用这门编程语言的核心思想的时候,做起开发来,那就是下笔如有神,才思如泉涌,如有神助啊~


DIY 1

在这里插入图片描述
声明:未打广告,全文知识梳理来源于《JAVA入门1-2-3》豆瓣评分9.0

注:例中所有 >>> 符号后为输出结果

- -snip- - 为代码省略位置



知识框图

在这里插入图片描述


引言

  • 目前的知识框图还不够全面,只是基础中的基础,后续整理后再更新。
  • 文章中就不把全图都展开了,思维导图内写的内容比较多,更像是一个笔记,展开也看不清楚~ ~
  • 若是那位小伙伴需要可私聊发你完整导图,共同进步!!

在这里插入图片描述


Hello World
public class HelloWorld {

    public static void main(String[] args) {
    
        System.out.println("Hello World !!");
    }
}
  • 欢迎来到 Java 的世界,Hello World !!

  • 不知道小伙伴们有没有好奇过,为什么每学习一门编程语言都是从 Hello world 开始,为甚?

  • 我想每种编程语言都是一个新世界吧,当年在控制台输出 Hello World 的时候,就标志着你进入了 Java 这个面向对象的世界,多姿多态的新世界。


JDK
  • 要想敲开 Java 世界的大门,首先你要用拥有开启它的钥匙,而 JDK 就是这把钥匙。目前已经更新到 jdk-17 了 ~ Java 钥匙领取处

  • JDK 是什么呢?

    • JDK 全称 Java Development Kit, Java开发工具,包含了JRE和开发工具。
  • 那 JRE 又是什么呢?

    • JRE 全称 Java Runtime Environment, Java运行环境,包含了 JVM 和 Java 的核心类库(Java API)。
  • JVM 呢?

    • JVM 全称 Java Virtual Machine, Java 虚拟机。
    • JVM 就是 Java 可以实现跨平台的根本。我们编写出来的源码 .java 文件,经过编译器编译后生成 .class 字节码文件,最后被 JVM 所解释执行。因此只要在对应的操作系统上安装了 JVM 就可以实现跨平台了。
  • 到这里大家是不是已经迫不及待要安装 JDK 了?这里就不再单独书写了,C 站安装教程太多了,这位博主Marvin_996写的不错,大家可以参考。


IDE
  • 安装好 JDK 后,应该在哪里编写代码呢?
  • 记事本?
    • 作为 21世纪 20年代的现代人类,总不能在记事本里编写代码吧?那样也太原始了,简单编写一个 Hello World 还可以,要是以后开发项目了,一个项目里有多个 Java 文件,需要相互配合,这个时候还用记事本?
  • 集成开发环境
    • 新时代的人们都在一种叫做集成开发环境的东西里面写代码。
    • 集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
    • 懂了吗?也就是一个软件里面,可以把程序开发所有的事情都干完,而且还是自动干。一键编译、运行 ~
    • 这里推荐 IDEA ,书中使用的 Eclipse,并不推荐使用。

再看 Hello World
// 定义一个类,所有的Java程序都是在类种编写的可以理解为一类对象
// 语法如下,其中 HelloWorld 是类名称。
// 注意存放这个类的文件要与类名一致,如这个源码文件全称:HelloWorld.java
public class HelloWorld {	
	// 定义一个方法,方法是实现功能载体,可以理解为一个方法就是一个功能。
	// 语法如下:
    public static void main(String[] args) {
    	// 向控制台输出 Hello World !! 这个字符串
    	// 语法如下:
        System.out.println("Hello World !!");
    }
}

// >>> Hello World !!

拓展内容:

  • 注释可以让我们轻易理解这段代码或者这行代码是在干什么?不用费力的一点点阅读代码来猜测它的功能
  • 例如:打开 Java 的源码,可以看到 Java 开发工程师们对每一段代码的功能都做了注释,让我们可以轻易知道代码的功能
  • 下面是 Java 中 lang 包下 System 类中的代码截图,其中绿色的灰色的都是注释内容,在 IDEA 中按下键盘上的 ctrl + 鼠标左键点击相应的类,即可查看源码。
  • System类中的源码截图
  • Java中的注释分为三种
    • 单行注释 // 注释的内容
    • 多行注释 /* 注释的内容 */
    • 文档注释 /** 注释的内容 */
  • 被注释的内容不会被编译执行,现在的 IDE 都很友好,注释的内容会有不同的高亮显示,可以轻易识别。

Java 中的基本数据类型和运算符

Java 中的基本数据类型和运算符的思维导图


基本数据类型
  • Java 中的数据类型分为基本数据类型和引用数据类型,本篇文章我们只详细介绍基本数据类型,引用数据类型后续文章慢慢引出。
  • 基本数据类型,Java 给出了几个关键字,用来分别定义不同值域、不同类型的数据。
关键字含义
byte、short、int、long整数类型
float、double小数类型(浮点型)
char字符类型
boolean布尔类型
public class BasicDataType {

    public static void main(String[] args) {

        // 整数类型
        // 定义 4种 整数类型的变量,并分别赋值
        byte by = 127;

        short sh = 32767;

        int in = 2147483647;

        long lo = 922;
        // 向控制台输出整数类属性变量的值
        System.out.println("by: " + by +
                "\nsh: " + sh +
                "\nin: " + in +
                "\nlo: " + lo);
        // println 单独一行语句没有内容,可以有换行的效果
        System.out.println();

        // 小数(浮点数)类型
        // 定义 2种 小数类型的变量,并分别赋值
        float fl = 1.5f;

        double dou = 2.3;
        // 向控制台输出小数类属性变量的值
        System.out.println("fl: " + fl +
                "\ndou: " + dou);
        // println 单独一行语句没有内容,可以有换行的效果
        System.out.println();

        // 字符类型
        // 定义 char 类型变量并赋值
        // 注意只能保存一个字符
        char ch = '人';
        System.out.println("ch: " + ch);
        System.out.println();

        // 布尔类型
        // 定义布尔类型变量,并赋值为 true 也可以赋值 false
        boolean boo = true;
        System.out.println("boo: " + boo);
    }
}

拓展内容

  • 变量
  • 上面代码中 by sh in lo 都是变量。不同类型变量,可以储存不同的值。
  • 在声明变量之前,要定义这个变量的类型,因为 Java 是一种强类型语言,它是不会自己根据值来判断数据类型的。
  • 变量的命名规则:
    • 必须以字母、下划线、或者美元符$开头
    • 变量名必须由字母、数字、下划线组成
    • 变量名不能是 Java 中的关键字
  • 温馨提示:
    • 变量名最好是做到见名知意,不要命名一些与变量实际用处不相干的字符

类型转换

Java 中的数据类型转换机制

  • 强制转换
    • Java 中高精度的数据类型转换为低精度的数据类型,需要强制类型转化,强制类型转换的格式如下代码所示
// 强制类型转换实例
public class ForceConcert {
    public static void main(String[] args) {
        double doubleValue = 9.6;		// 首先声明了一个双精度的浮点型变量并赋值一个小数
        int intValue;					// 然后声明了一个整型变量

        intValue = (int) doubleValue;   // 强制类型转换,浮点型转换为整型;
        System.out.println(intValue);   // 浮点型强制转换位整型时,Java会将小数点后的部分全部删除。

        intValue = (int) (doubleValue + 0.5);   // 可做 +0.5 运算,达到四舍五入的效果;
                                                // 此处对运算加括号是因为强制类型转换优先于运算符
                                                // 若是运算不加括号,首先将 doubleValue 转换为整型,再做加法运算编译器会输出损失精度的错误。
        System.out.println(intValue);
    }
}

// >> 9
// >> 10

基本运算符

基本运算符

  • Java 中的基本运算符包括数学中的四则运算符“加减乘除”,不过其中还是有一些细微区别的,不过有些功能还是完全跟数学运算是一样效果的哈。
  • 比如,我们这里用的 / 这个斜杠符号表示,不过这个运算结果只取商,而不计余数。要想得到余数须使用 % 百分号这个符号,则不取整只取余
  • = 等号是用来给变量赋值的
  • () 括号与数学运算中作用一样都是用来改变运算的优先级的,,其中如果出现在 Java 关键字、类、方法后面就不是这个作用了
  • 其他运算符的作用会在下面代码中慢慢刨析
public class BasicOperator {

    public static void main(String[] args) {

        int a = 7, b = 2;       // 定义两个 int类型

        int c = a + b;          // 常规加法运算
        System.out.println("a" + " + " + "b = " + c);     // + 作用:字符串拼接

        int d = a - b;          // 常规减法运算
        System.out.println("b - a = " + d);

        int e = a * b;          // 常规乘法运算
        System.out.println("a * b = " + e);

        int f = a / b;          // 除法取商(取整)运算
        System.out.println("a / b = " + f);

        int g = a % b;          // 除法取余运算
        System.out.println("a % b = " + g);
    }
}

// >> a + b = 9
// >> b - a = 5
// >> a * b = 14
// >> a / b = 3
// >> a % b = 1

布尔运算符

关系运算符

  • 作用是:比较两个值,并返回一个值(true或者false)
  • 关系运算符都是两元操作符,也就是说这个操作符需要有两个操作数
  • 关系运算符,左边和右边的变量类型必须有比较的可能性
// 关系运算符实例演示
public class BooleanRelation {

    public static void main(String[] args) {

        int a = 2, b = 5;           // 声明两个int类型的变量

        System.out.println("a == b :" + (a == b));  // 相等运算符,判断左右两边是否相等
        System.out.println("a != b :" + (a != b));  // 不等运算符,判断左右两边是否不相等
        System.out.println("a > b :" + (a > b));   // 大于运算符,判断左边是否大于右边
        System.out.println("a < b :" + (a < b));   // 小于运算符,判断左边是否小于右边
        System.out.println("a <= b :" + (a <= b));   // 小于等于运算符,判断左边是否小于或者等于右边
        System.out.println("a >= b :" + (a >= b));   // 大于于等于运算符,判断左边是否大于或者等于右边
    }
}

// >> a == b :false
// >> a != b :true
// >> a > b :false
// >> a < b :true
// >> a <= b :true
// >> a >= b :false


逻辑运算符

  • 求 boolean 类型数据关系的布尔运算符
  • 作用是:把各种运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,返回判断结果(true或者false)
  • 包括 逻辑与、逻辑或、逻辑异或、逻辑非
  • 注意:其中逻辑非属于单元运算符,且只能用于 boolean 类型变量
// 逻辑运算符
public class Bo0leanLogic {

    public static void main(String[] args) {

        boolean a = true, b = true;
        boolean c = false;
		// 逻辑与
        System.out.println(a & b);  // >> true
        System.out.println(a & c);  // >> false
		// 逻辑或
        System.out.println(a | b);  // >> true
        System.out.println(a | c);  // >> true
		// 逻辑异或
        System.out.println(a ^ b);  // >> false
        System.out.println(a ^ c);  // >> true
		// 逻辑非
        System.out.println(!a);     // >> false
        System.out.println(!b);     // >> false
    }
}

拓展:

短路逻辑运算符

  • 当使用短路逻辑运算符的时候,只要第一个表达式的结果为 false ,那么结果就是 false,程序不会去对第二个表达式再做判断了。
  • 这样做的好处是可以节省,运算时间、空间,提高程序运行效率
  • 其中包括 &&、||
  • 下面代码中只演示了短路逻辑与,并没有演示短路逻辑或。两种运算符的短路用法是一样的,有兴趣的小伙伴可以自己敲一下试试
// 短路逻辑与实例
public class ShortBoolean {

    public static void main(String[] args) {

        int a = 1;
        int b = 2;
        int c = 0;

        boolean d = a > b && (c = a + 2) > b;
                //  条件1 && 条件2
                // 条件1若为false,条件2就不会执行了
        System.out.println("短路逻辑与 c :" + c);

        boolean e = a > b & (c = a + 2) > b;
                //  条件1 && 条件2
                // 条件1若为false,条件2还会执行
        System.out.println("逻辑与 c :" + c);

        System.out.println("d:" + d);
        System.out.println("e:" + e);
    }
}

// >> 短路逻辑与 c :0
// >> 逻辑与 c :3
// >> d:false
// >> e:false

位运算符

  • 位运算符是专门针对内存中的二进制数据进行运算的一种运算符
  • 二进制是由 0 1 组成,其中每一个数子所占的位置称为,在进行位逻辑运算时就会对比相同位置上的数字计算。

位逻辑运算符

符号运算方式结果
&0010 & 00110010
|0010 | 00110011
^0010 ^ 00110001
~00101101
  • Java 中二进制最高位是符号位,【0】表示正,【1】表示负,其余位表示数值的大小

移位运算符

符号运算方式结果
<<0 0011 1111 << 10 0111 1110
>>1 0011 1111 >> 11 1001 1111
>>>1 0011 1111 >>> 10 1001 1111

注 :<< 1 ,意思是,左移一位

移位运算符,运算规则


拓展:

三元运算符

  • 前面说了那么多的两元运算符,一个单元运算符,下面说一下三元运算符。
  • 顾名思义三元运算符,就是要有三个数或者说三个表达式凑在一起,然后使用固定的语法格式书写,最后得到一个结果。
  • 如下面代码:
// 三元运算符
public class ThreeOperator {

    public static void main(String[] args) {

        int a = 2, b = 5;           // 声明两个 int类型变量

        int c = a > b ? a : b;
               // 条件 ? 返回值a : 返回值b
                // 条件如果是 true 就返回 a 的值,如果条件为 false 就返回 b 的值

        System.out.println(c);
    }
}

// >> 5

拓展知识

String 类型

  • 文章前面有提到字符串,但一直没有详细讲解,是因为与我们这篇文章的主题【基本数据类型和运算符】没什么关系的原因。但是,在测试用例中怎么都还是绕不开 String 类型的字符串。。。所以在此部分,我们简单说一下,不至于让大家看不懂文章中的代码里都写得啥,哈哈~
  • 使用关键字 String 声明得变量是为字符串类型得变量,变量赋值通过 “” 双引号包括内容,表示这是段字符串。
  • System.out.println() 向控制台输出,可以直接使用双引号包括字符输出字符串内容
  • 字符串得拼接规则,将通过代码来演示
  • 同时在字符串中有时还会用到转义符,在思维导图中我们有详细得列出了 8 种转义符。这些转义符都是在 字符或者字符串 类型中使用,就像我们使用doc文档编辑文字,偶尔需要换行、退格等操作,在我们编辑的代码并不是doc文档没有给我们内置这些操作,这时就需要转义符来帮助我们了。文中就不在一一演示了,有兴趣的可以自己去敲代码去尝试
public class StringAddPrimer {
    public static void main(String[] args) {
        int a = 3;
        int b = 5;
        String str1 = "将数字的字符拼接到字符串中:" + a;
        String str2 = a + b + "加法从左到右运算"; // a + b 运算后的结果转化为字符在与字符串拼接;
        String str3 =  "加法从左到右运算" + a + b ; // 字符串与 a 拼接,再与 b 拼接,所以 a + b 没有运算;
        String str4 = "可以使用括号改变运算顺序" + (a + b); // 这样就先运算 a + b,后与字符串拼接了;
        String str5 = "可使用空字符串将两个变量分开" + a + "" + b; // 看似与 str2 一致,实际改变了运算结果。

        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);
        System.out.println(str4);
        System.out.println(str5);
    }
}

// >> 将数字的字符拼接到字符串中:3
// >> 8加法从左到右运算
// >> 加法从左到右运算35
// >> 可以使用括号改变运算顺序8
// >> 可使用空字符串将两个变量分开35

自增和自减

  • a++;
  • 在 Java 中上述表达式,等同于 a = a + 1;
  • 所以我们将,++ 或者 – 称为自增、自减操作。
  • 不过 ++ 或 – 在变量前后分别有不同的运算顺序,下面通过代码来演示
public class Test {

    public static void main(String[] args) {

        int i = 10;
        int j = 10;

        i++; // 单独使用
        System.out.println("i:" + i);

        ++j; // 单独使用
        System.out.println("j:" + j);

        int x = 10;
        int y = x++; // 赋值运算,++在后边,所以是使用x原来的值赋值给y,x本身自增1
        System.out.println("x:" + x + ", y:" + y);

        int m = 10;
        int n = ++m; // 赋值运算,++在前边,所以是使用m自增后的值赋值给n,m本身自增1
        System.out.println("m:" + m + ", m:" + m); 
    }
}

// >> i:11
// >> j:11
// >> x:11, y:10
// >> m:11, m:11

本篇小结

  • 初步接触了 Java语言
  • 学习了 Java 的 8 种基本数据类型
  • 学习了基本数据类型之间的转换
  • 学习了 Java 中的运算符,有基本运算符、布尔运算符两大类
  • 逻辑运算符的掌握还需要多加练习,需对二进制及进制转换多加了解~

文章中若是有什么不对的地方,欢迎大家指出纠错,共同进步!!


这是一张描述学习的表情包


感谢,每一位认真阅读到这里的少侠!来个手滑三联吧,不迷路~

一张猫咪比心的表情包
关于一键三联的图片


下期见,等你哟~


在这里插入图片描述

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清汉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值