【Java的自我反省】

2023-11-04 00:40
文章标签 java 自我 反省

本文主要是介绍【Java的自我反省】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

一、啥是Java

二、系统化学习

1.注释

2.常量

3.数据类型

4.变量

5.标识符

6.类型转换(基本数据类型转换)

7.运算

8.小练一下

总结


前言

        本文章主要是个人在学习Java过程中的思考以及笔记,正如标题所言,这是一篇“反省”。

(写这篇文章时也是刚刚接触Java,在此之前学习过C语言)


一、啥是Java

        刚刚接触C语言时,我一直在问一个问题:啥是C语言。近期开始学习java,又再问“啥是Java”,依据这个问题,网上给了很多版本的介绍。

        比如我们看百度百科的解释:16e2530f86cc4c52a0128ff6ceab9440.png———Java(计算机编程语言)_百度百科 (baidu.com)

        很显然,这个解释过于官方,起码本人读完第一句就不想继续读下去了。

        看过“官方”解释后,我来谈谈我对于Java的非“官方”解释(主要是个人理解,多少不够严谨或者正确):

                首先,java语言,不止是java语言,还有c语言,c++,它们都属于语言,什么是语言,像是英语,汉语,法语等都是语言,这些语言最重要的功能便是交流,只不过我们日常生活中所使用的语言是人与人之间的交流,而java语言是用于人与计算机的交流。举一个例子,当你去银行存款时,身上有1000w的现金,在没有遇见抢劫并成功到达银行的情况下,你就会去找业务员办理存款业务,你会说“我要存1000w”,此时业务员便能够理解并执行,但对于计算机而言,你直接说要存钱,它是听不懂的,那么如何让他听懂并执行那,这就用到了java语言,java语言需要人工按照java规则的语法结构输入指令,使得计算机能够明白下一步的操作。输入过程即敲代码,当一个代码完成以后,计算机便明白你的意图,并开始执行。

        打招呼大家都会,人与人之间直接张口说便是,但是计算机不是,如上所述,必须先让计算机听懂,在java语言中,相信大家第一个代码都是“Hello world”:

public class Hello {public static void main(String[] args){System.out.println("Hello world");}
}

         就这样,计算机会执行并打印出“Hello world”。这就是java的作用,将个人思想通过java语言传递给计算机。

二、系统化学习

1.注释

        注释就像是一种说明书,在生活中注释无处不在,像药品说明书,衣服洗洁说明等,在java语言中也存在注释:

6174b1189a3647139ec3a5e19c333372.png

在java语言中,注释有三种方法:

1.单行注释:单行注释是以“//”开头,后面加上所描述的内容

716b68b1b23540dfb3173197debb136f.png

2.多行注释:多行注释是以“/*”开头,中间加所述内容,以“*/”结尾

3.文档注释:文档注释以“/**”开头,以“*/”结尾

           /**

                * 功能:。。。。。

                * 作者:。。。。

            */

 实际应用如下:

public class zhushi{/**主方法*/public static void main(String[] args){int a,b,sum; // 声明三个整型变量/*输入部分,直接赋值*/a = 123;b = 321;// a 和 b 求和sum = a + b;//输入变量sum的值System.out.println("sum = " + sum);}
}

总的来说,注释是为了更好的梳理思路,以及便于读懂所写代码的意思。 

2.常量

如其名,就是固定不变的量,在代码中不会被改变的量。

具体如下:

常量类型说明举例
字符串常量“”双引号中的内容“Hello world”
整数常量不带小数点的数666
字符常量‘’单引号中的内容‘a’
小数常量带小数点的数666.666
布尔常量真或假(true or false)true or false
空常量空值null

public class ChangLiang{public static void main(String[] args){System.out.println("Hello world");  //字符串常量System.out.println(“-----------”);System.out.println('A');            //字符常量System.out.println(“-----------”);System.out.println(666);            //整数常量System.out.println(“-----------”);System.out.println(666.666);        //小数常量System.out.println(“-----------”);System.out.println(true);           //布尔常量}
}

3.数据类型

说到数据类型,应当先补充一下计算机存储单元的知识:

计算机常见的存储单位有 bit, byte, KB, MB, GB, TB,其中最小的单位“bit”,我们叫做位,是计算机存储设备的最小信息单元,计算机中最小的单元为byte(字节),简称为B,一个字节八个位。

        1B(byte 字节)=8bit,
   1KB (Kilobyte 千字节)=1024B,
   1MB (Megabyte 兆字节 简称“兆”)=1024KB,
   1GB (Gigabyte 吉字节 又称“千兆”)=1024MB。

以上是计算机存储单元的知识的一些知识,回归此模块数据类型:

32fd352135f94e229296a84523d55dee.png

数据类型关键字占用内存
整形byte1
short2
int4
long8
浮点数float4
double8
字符char2
布尔boolean1

对数据类型的个人理解:在java程序中,我们在定义一些变量或数组或常量的时候,就要根据需求运用不同的数据类型,好比 int a;这个语句,int数据类型就像是姓,而a则是名,将整体看成一个完整的名字,叫做 int a。

4.变量

在前面我学习了常量,在一个代码中,我可以用print函数打印一个常数,例如:

System.out.println(10);

 但如果我像改变输出的值,一种方法是直接改变println中的数值,比如我想将10改成30,则可以:

System.out.println(30);

但如果是100个println语句,一个一个改必然麻烦,在此,我们引出变量:

变量:在程序运行中,可以改变的量。顾名思义,就是可以变的量。

那么变量如何使用呢?我们来看一个代码:

public class BianLiang{public static void main(String[] args){int a;a = 10;System.out.println(a);}
}

这个代码中,print语句没有直接输出10,而是将10先赋值给a,然后在输出a,此时的a的意义也已经发生改变,所以电脑最后打印出的值也是10,在这里a便是一个变量,我们可以将不同的值赋值给a,最后在print语句中输出。这么说或许有一些笼统,举一个例子吧,我们有一个房间,房间为a,当你获得这个房间的钥匙的时候,你就可以进去这个房间,倘若有人来找你,可以直接去房间a,同理,任何一个获得a房间钥匙的人都可以进入这个房间,那么这个钥匙如何获得,当然看你的心情,钥匙在你手中,你可以在不犯法的情况下分配个任何满足条件的人。 

当我们想要修改时:

public class BianLiang {public static void main(String[] args){int a;a = 10;System.out.println(a);a = 30;System.out.println(a);}
}

输出结果为: 

4c9a226115a44f2f9b11f01ecd8e9e01.png

 可以看到a的值由10变为了30,变量a的值随之改变了。

5.标识符

官方标识符的解释为:

201ed94c279b45efac6c4640db02b22f.png

——标识符(标识某个实体的符号)_百度百科 (baidu.com) 

在我看来标识符就是用来识别的,它就是给类,方法,变量起名字的,至于类和方法后面会提到,不用钻牛角尖。

在百度百科给出的解释中,提到标识符是由字母,数字,下划线,汉字和美元符号组成的,特别注意第一个字符不可以是标识符,Java中的关键字也不可以是标识符。关键字?诸如public,class这种。

我们说像bj,_666这样的便是合法标识符,但是像class,public,6hjk这样的就不是合法标识符。

至于命名法有大小驼峰法,这个可以自己了解一下。

6.类型转换(基本数据类型转换)

类型转换想的变态一点就像是做变形手术,不仅外形改变,内在也发生变化。

在java中,存在自动类型转换和强制类型转换:

自动类型转换:

这种转换在程序运行中不会报错,系统会自动转换成正确的数据类型,我们是看不到的

在类型中,由小到大以此为:

e7acbd7c4aaf4c94b9bb2b49480884e0.png

遵从原则如下:

小转大;整转浮,有误差;符升级,整下来。(个人总结)

具体解释为:小的自动转换为大的,整数类型转成浮点数时会存在误差,字符型可以自动升级为整数型。
直接写一个整数,默认是int型。但如果它的范围在byte,short表数范围之内,而且程序直接将它赋给byte,short类型的变量,系统会自动把它当成byte,short用;所有数值型,都可以自动转换为double类型;所有数值型,除了double之外,都可以自动转换为float型;所有整型都可以自动转换为long型,依次向下。

比如说:

byte a = 10;
int b = a + 10;
public.out.println(b);

此代码在运行中就会将byte类型转换为int类型,并进行运算输出b的值。

7.运算

运算有好多,有赋值运算,加减运算,逻辑运算和关系运算。

先说一些需要用到的知识,在运算中,“=”叫做赋值,而真正的等号是“==”,并且在输出语句中,我们可以用“+”连接字符串或者数据或者字符。

public  class BasicKnowledge {public static void main(String[] args) {int i;int j;for(i=1;i<=9;i++){for(j=1;j<=i;j++){System.out.print(i+"*"+j+"="+ i*j +"\t");}System.out.println();}}
}

在这个代码中,print语句中的“+”就是用来连接“i”和“j”的,以便输出结构是“i*j”的形式:

6ff2e022218e41a285b89c1adce5649e.png

如果没有“+”连接的话,情况如下:1e9b17ac73204f5ebe60a574411e260c.png

编译器就会报错。

然后就是算数运算符:

在java中,算术运算符有下列几个:

运算符名称运算符符号举例
+1+1
-1-1
*1*1
/7/2
取余%7%2

加减乘不需要多数,特别说一下除和取余,在除中,系统默认结果为整数,“7/2”的结果应该是3.5,但系统只会输出3,而取余运算的意思就是取除未尽的数,7%2的结果为1(即结果为3余1,取余数1):

public  class BasicKnowledge {public static void main(String[] args) {int a = 7;int b = 2;int c = 7/2;int d = 7%2;System.out.println(c);System.out.println(d);}
}

结果如下:

36fcae5ddffe4563bd39dee360ae2488.png

了解了以上,我们来说一说赋值运算:

赋值运算:

public  class BasicKnowledge {public static void main(String[] args) {int a = 7;  //将7赋值给aSystem.out.println(a); //输出a的值为7}
}

前面我们说过代码中的“=”读作赋值,在我看来,赋值就是将一个定义的字母(int a)变为一个数,但是名义表面上还是那个字母。

这个的输出结果就是“7”.

自增自减运算:

自增(++)和自减(–)运算符是一种特殊的算术运算符,自增自减运算符是一个操作数。

public class ZI{public static void main(String[] args){//定义一个整型变量a,并赋值为99int a=99;//定义一个变量b,做自增运算int b=++a;//结果为100//定义一个整型变量a1,并赋值为8int a1=8;//定义一个变量b1,做自减运算int b1=--a1; //结果为7}}

让我们来看一下过程:

int b = ++a; 过程为: b=a+1=99+1=100; a=b=100, 最后结果为b=100,a=100

int  b1 = --a1; 过程为: b1=a1-1=8-1=7;a1=b1=7, 最后结果为b1=7,a1=7。

综上为:后缀自增自减法(a++,a–): 先进行表达式运算,再进行自增或者自减运算 。

 关系运算:

java中的关系运算,其结果为boolean类型,无非是ture或是false;

名称运算符
大于>
小于<
等于==
不等于!=
大于等于>=
小于等于<=

public class Ljys {public static void main(String[] args) {int a = 10;int b = 10;System.out.println(a > b);   //  falseSystem.out.println(a >= b);  //  trueSystem.out.println(a < b);   //  falseSystem.out.println(a <= b);  //  trueSystem.out.println(a == b);  //  trueSystem.out.println(a != b);  //  false      }
}

8.小练一下

1.比较体重:甲重160斤,乙重140斤,用程序比较体重是否相等?

public class lianxi {public static void main(String[] args) {int a = 160;//输入甲的体重int b = 140;//输入乙的体重boolean jiehuo=a==b?ture:false;/*用三元运算符进行判断*/System.out.println(jiehuo)//打印结果}
}


这篇关于【Java的自我反省】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/342008

相关文章

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B