![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java学习
文章平均质量分 53
从基础开始学习Java
肆悟先生
惩奸除恶,维护世界和平
展开
-
基本的Dos命令
【代码】基本的Dos命令。原创 2023-04-20 17:27:09 · 81 阅读 · 0 评论 -
1.2 计算机语言发展史
而我们的Java语言就是基于C和C++的高级语言,刚开始的时候很多人称Java为C+±-也就是很多人认为Java是把C++中很多不好的给减掉了。以上四种语言就算是计算机中的鼻祖语言了,像后面的这些Python、PHP、JavaScript,这些语言都是随着时代的发展有些人不停地去创造出来的针对不同的领域,比如PHP可以快速的构建一个网站,Python主要用于大数据分析和人工智能相关,Java则主要用于服务器的开发,每种语言的分工都不同,任何形式的更新都不是凭空而来的,都是基于之前的旧事物的发展。原创 2023-04-23 16:44:13 · 116 阅读 · 0 评论 -
2.1 Java帝国的诞生
于是在1982年C++语言就诞生了,添加了一些面向对象的功能,它是兼容C的,一些静态类型的检查,性能比较好,但是这门语言比起C语言更加复杂,复杂到很多人都没有办法完全去掌握这门语言,很多复杂特性让人至今放弃了学习,但C++在图形领域和游戏领域取得了成功,但是在这里不推荐大家一上手就学习C++,如果想要去了解计算机相关的底层的东西,因为学习C++会学到很多计算机底层的知识,要去操作指针跟单内存这是一件比较麻烦的事情。到目前为止Java的实力之强大是其他语言无法比拟的。原创 2023-04-25 17:47:41 · 95 阅读 · 0 评论 -
2.2 Java特性和优势
Java还可以写一些分布式的程序,之前我们谈到的Java就是为网络分布式环境所设计的,因为他可以处理很多TCP/IP协议上的东西,在Java中通过一个url统一资源定位符可以访问一些网络上的资源就跟访问本地一样,通过学习以后会通过Java获取一些网络上的资源,就像在本地打开了一个我的电脑一样是非常简单的,而且Java还支持一些远程的方法调用,使得一些程序能够通过网络调用方法,也是非常强大的。一次编写到处运行,有一句话称之为write once run anywhere。原创 2023-05-09 17:14:40 · 59 阅读 · 0 评论 -
2.3 Java的三大版本
Java最大的一个特性就是跨平台,write once run anywhere,只要编写一次就可以在任何地方运行,简单的来讲如果你有一个开发团队你们用Java编写了一款应用程序并将其打包成了一个可以执行的程序,那么你这个程序就可以运行在任何支持Java平台的系统上,这是因为Java有个JVM即Java的虚拟机,虚拟机就是一个虚构出来的计算机这个虚构的计算机可以泡在任何的平台上,因此他可以实现跨平台,下面我们来看一下Java的三大版本。原创 2023-05-09 17:44:28 · 674 阅读 · 0 评论 -
2.4 JDK、JRE、JVm
Java虚拟机,可以简单的把它当成一种规范,他可以用软件来实现也可以用硬件来实现,他就相当于在所有的操作系统上模拟了一个小巧的CPU去处理Java的相关程序,之后我们要学习Java代码是如何编译成字节码的就有两种运行方式一种叫做解释型一种叫做编译型,这在后面会介绍,这里我们只需要记住Java的跨平台的核心是因为使用了JVM,在不同的操作系统上都是用了Java的虚拟机,通过Java的虚拟机就屏蔽了底层系统的一些差别,真正实现了一次编译到处运行。jar可以把写的程序打包成一个应用等,这些都是比较常见的。原创 2023-05-09 18:10:17 · 57 阅读 · 0 评论 -
2.5 Java开发环境搭建
bin目录:存放可执行程序,比如javac,以及一些其他的运行工具include目录:因为JDK是由C和C++编写的,所以说在启动的时候需要引入一些C语言的头文件,这个目录里面就是存放的C语言的头文件。jre目录:这就是Java运行时环境,如果我们只运行Java程序的话有这个目录就足够了,我们在环境变量的path中配置也是因为系统运行Java程序时需要用到jre,如果不配置path,那将来Java程序就无法执行。lib目录:lib目录是library的缩写,这个目录下存放的是Java的类库文件。原创 2023-05-15 17:51:41 · 699 阅读 · 0 评论 -
2.6 Hello World 及简单语法规则
编译Java文件,因为Java需要运行字节码文件,因此我们需要把Java文件编译成字节码文件,编译成JVM可以运行的字节码文件,使用javac命令编译Java文件。回到写代码的路径,在地址栏前面输入cmd加空格就可以直接进入当前目录的控制台窗口,在控制台窗口导航栏右键->属性可以设置字体。运行字节码文件,使用java命令运行字节码文件,此时就会成功输出我们的Hello,World!尽量使用英文,因为有些控制台的环境不一样,可能会出现问题。每个单词的大小写不能出现问题,新建Hello.java文件。原创 2023-05-31 17:43:30 · 657 阅读 · 0 评论 -
2.7 编译型和解释型
刚才我们已经说了程序的运行机制,我们的Java程序的源文件是通过一条javac命令把我们的Java文件编译成我们的class文件,在通过解释器告诉操作系统我们这段代码写了是干什么的,操作系统就按照我们的指令进行操作,这就是程序将一系列的指令按照有规律的操作进行执行,这里只是笼统的解释,这里我们要理解其中的原理,最起码我们要知道程序运行的流程。编译型语言和解释型语言。不同,比如一个中国人和一个美国人,两个人之间的文字是不一样的,如果他们想要看同一本书,比如三国演义,如果美国人想看我们可以采用两种方法。原创 2023-06-01 09:02:22 · 623 阅读 · 0 评论 -
3、Java基础语法----3.1 Java注释
注释并不会被执行,是给写代码的人看的,书写注释是一个非常好的习惯。文档注释与JavaDOC联合写的。Java中的注释有三种。//这是一个单行注释。原创 2023-06-26 17:08:39 · 35 阅读 · 0 评论 -
3.2 Java标识符
图中的关键字都是Java预先设定好的,在平时应用中不能用这些关键词作为名字来使用。因为Java已经赋予这些关键字一些意义不能直接使用,这些关键词是Java中的第一个规范。Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。关键字,Java中一些预先设定好的单词被称为关键字常用关键字如下图所示。原创 2023-06-28 17:12:11 · 125 阅读 · 0 评论 -
3.3 Java数据类型
位(bit):是计算机内部数据存储的最小单元,11001100是一个八位二进制数。字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示1B(byte,字节)=8bit(位)字符:指计算机中使用的字母、数字、汉字和字符1bit表示1位1byte表示一个字节 1B=8b1024B=1KB1024KB=1M1024M=1G电脑中的32位和64位的区别是什么?原创 2023-06-29 17:59:01 · 119 阅读 · 0 评论 -
3.4 Java数据类型扩展
我们通过单引号表示字符常量,char类型数据涉及到编码问题,编码中有Unicode编码,Unicode可以处理各种语言的文字,占用两个字节,最多可以表示65536个字符。Unicode有一个编码表,编码表中97编码对应的就是a,而A对应的是65。而是使用BigDecimal的数学工具类,Java中有很多这种预先自定义好的工具类可以直接拿来用。从这个实例中我们知道等学到对象的时候从内存级别分析就能让我们明白为什么眼睛看到一样的东西却不相等。使用float和double是有问题的。原创 2023-06-30 17:45:52 · 188 阅读 · 0 评论 -
3.5 类型转换
之所以会是-128是因为byte最大值为127,此时就会内存溢出的问题。我们知道Java是强类型语言,有些运算需要用到类型转换。强制类型转换:这是一种从高到低的转换。自动类型转换:是从低到高的转换。低和高指的是容量,字节大小。原创 2023-07-03 16:43:07 · 189 阅读 · 0 评论 -
3.6 变量、常量、作用域
变量就是指代的一个空间,假设内存中有个一空间,变量指的就是这个空间,这个空间放什么东西是自己是不确定的。这就好比家里有一个大衣柜,衣柜被分割成大小不同的格子,每个格子我们给它贴上不同的标签,有鞋子、衣服、袜子等,首先这个柜子本身就存在,就像我们电脑中的内存一样,而各个格子,以及贴的不同的标签就是我们说的变量,我们给内存不同空间贴上了不同的标签,使它能够放入合适的数,我们需要给内存指定一定的空间,这个空间要放某个数据类型整数或者浮点等,为了区分各个空间就需要给各个空间起一个名字,这个名字就叫做变量名。原创 2023-07-05 18:25:41 · 151 阅读 · 0 评论 -
3.7 基本运算符
Java语言支持如下运算符。原创 2023-07-11 17:00:26 · 103 阅读 · 0 评论 -
3.7.1 自增自减运算符、初识Math类
以上示例中a的初始值为3。原创 2023-07-11 17:33:00 · 52 阅读 · 0 评论 -
3.7.2 逻辑运算符、位运算符
【代码】3.7.2 逻辑运算符、位运算符。原创 2023-07-13 17:15:12 · 199 阅读 · 0 评论 -
3.7.3 三元运算符
【代码】3.7.3 三元运算符。原创 2023-07-13 18:03:41 · 154 阅读 · 0 评论 -
3.8 包机制
为了更好的组织类,Java提供了包机制,用于区别类的命名空间(一些类的名字一样,无法在同一个项目中,于是使用包就解决了这个问题)。包的本质就是一个文件夹。为了能够使用某一个包的成员,我们需要在Java程序中明确导入该报。使用“import”语句可完成此功能。如www.baidu.com包的命名就是com.baidu.www。原创 2023-07-14 17:06:09 · 227 阅读 · 0 评论 -
3.9 JavaDoc生成文档
javadoc是一种技术,他可以将我们的注释信息生成一个帮助文档。使用Javadoc命令可以生成javadoc文档。javadoc命令是用来生成自己API文档的。原创 2023-07-14 18:24:03 · 137 阅读 · 0 评论 -
4、Java流程控制----4.1 用户交互Scanner
我们之前学习的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextline()判断是否还有输入的数据。next()与nextline()两种输入方式的区别。使用nextline()方法获取用户输入字符串。原创 2023-07-21 18:07:15 · 41 阅读 · 0 评论 -
4.2 Scanner 进阶使用
判断输入是否为整数或小数。原创 2023-07-24 11:51:23 · 40 阅读 · 0 评论 -
4.3 顺序结构
语句与语句之间,框与框之间是从上到下的顺序进行的,它是由若干个依次执行的步骤组成的,它是任何一个算法都离不开的一种基本算法结构。Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。原创 2023-07-24 12:17:28 · 31 阅读 · 0 评论 -
4.4 if选择结构
我们发现不论是单选择还是双选择的代码都不符合实际情况,真实的情况还可能存在ABCD,存在区间多级判断。等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题!这样的需求用一个if就搞不定了,我们需要有两个判断,需要一个双选择结构,所以就有了if-else结构。也就是说可以在另一个if或者else if语句中使用if或else if语句。我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样的一个过程在程序中用if语句来表示。if-else双选择结构流程图。原创 2023-07-24 17:10:20 · 53 阅读 · 0 评论 -
4.5 Switch选择结构
反编译:我们编写的文件是java文件,编译之后变成class文件,class文件是字节码文件,字节码文件普通人是看不懂的看不懂就需要通过“反编译”,反编译成我们的java程序或者其他我们能看懂的,反编译的工具使用IDEA就可以实现反编译。从反编译的字节码文件可以看出switch之所以能够匹配字符串是匹配了字符串的hashCode,也就是说最终还是匹配的一个具体的数字。if是判断区间比较方便,而case则是匹配一个具体的值。与一系列值中某个值是否相等,每个值称为一个分支。switch case语句判断一个。原创 2023-07-25 10:23:21 · 58 阅读 · 0 评论 -
4.6 While循环详解
循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中赢尽量避免死循环。会影响程序性能或者造成程序卡死崩溃!顺序结构的程序只能被执行一次,如果想让相同的操作执行多次就需要用到循环结构。Java中主要有三种循环结构。少部分情况需要循环一直执行,比如服务器的请求响应监听等。比如等待客户端连接、定时检查。只要布尔表达式为true,循环就会一直执行下去。While循环是最基本的循环,它的结构为。原创 2023-07-25 11:09:43 · 166 阅读 · 0 评论 -
4.7 DoWhile循环
do-while循环和while循环相似,不同的是,do-while循环至少会执行一次。对于While语句而言,如果不满足条件,则不能进入循环。While和do-while的区别。原创 2023-07-25 11:50:45 · 160 阅读 · 0 评论 -
4.8 For循环详解
虽然所有循环结构都可以用while或者do-while表示,但Java提供了另一种语句for循环,使一些循环结构变得更加简单。示例:用While或for循环输出1-1000之间能被5整除的数,并且每行输出3个。for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。for循环执行的次数是在执行前就确定的。示例:计算0到100之间的奇数和偶数的和。在for循环中应当注意的是。原创 2023-07-26 16:35:32 · 77 阅读 · 0 评论 -
4.9 打印九九乘法表
【代码】4.9 打印九九乘法表。原创 2023-07-26 17:25:20 · 201 阅读 · 0 评论 -
4.10 增强for循环
增强for循环主要用于遍历数组和结合对象,是JDK5之后才引入的。原创 2023-07-26 17:57:05 · 104 阅读 · 0 评论 -
4.11 break、continue、goto
然而,在break和continue这两个关键字身上,我们仍然能看出一些goto的影子-----带标签的break和continue。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,他们就会中断到存在标签的地方。break在任何循环语句的主体部分,均可用break控制循环的流程。,不执行循环中剩余的语句。,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。continue语句在循环语句体中,原创 2023-07-27 10:53:53 · 82 阅读 · 0 评论 -
4.1.2 打印三角形及Debug
打印一个五行的三角形。原创 2023-07-27 11:50:11 · 77 阅读 · 0 评论 -
5、Java方法----5.1 什么是方法
生活中我们要做某件事情而采取的一些解决办法,比如我们通过何种方法到达学校,骑自行车、电动车,这些为了解决问题行为就是方法。在Java中方法就是为了完成某些事情的,比如计算两个数的和、两个数的商,这些为了解决问题的都是方法。示例//main方法,这个方法是交给程序管的,不是自己写的 public static void main(String [ ] args) {} //加法运算 public static int add(int a , int b) {} }原创 2023-07-27 17:28:57 · 231 阅读 · 0 评论 -
5.2 方法的定义和调用
Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:方法包含一个方法头和一个方法体修饰符 返回值类型 方法名 (参数类型 参数名) {···方法体··· return 返回值;修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。这种情况下,returnValueType是关键字void。方法名。原创 2023-07-27 18:24:14 · 119 阅读 · 0 评论 -
5.3 方法的重载
5.3 方法的重载重载就是在一个类中,有相同的方法名称,但形参不同的方法。方法重载的规则:方法名称必须相同参数列表必须不同(个数不同或类型不同或参数排列顺序不同等)方法的返回类型可以相同也可以不相同仅仅返回类型不同不足以成为方法的重载实现理论方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。原创 2023-07-28 08:48:55 · 67 阅读 · 0 评论 -
5.4 命令行传递参数
报错:错误: 找不到或无法加载主类 Demo03,是因为包里有一个package,不能再class目录下直接运行,需要到src目录下加上全路径才能运行。有时候你希望运行一个程序时再传递给它消息。这要靠传递命令行参数给main()方法实现,这里只做了解即可,在实际工作生活中也并不一定能用得到。原创 2023-07-28 09:49:36 · 194 阅读 · 0 评论 -
5.5 可变参数
当我们写方法的时候会遇到很多不确定的参数,这样的情况下我们就会写很多的类或者方法来代替它,参数越多,代码就越繁琐,有可能一个方法的重载要写几十次,如此以来就非常的麻烦,于是我们就可以向main方法一样,可以传递很多个参数进去,而main方法是用数组来实现的,而数组本质上就是一种数据结构可以放很多的数字,而这样也是十分不方便,这就需要用到这里的。一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。JDK 1.5开始,Java支持传递同类型的可变参数给一个方法。原创 2023-07-28 11:04:09 · 203 阅读 · 0 评论 -
5.6 Java递归讲解
这里我们需要知道的是Java是使用**“栈”**机制的,相当于栈的底部是main方法,每次调用一个方法就往上压一个方法,如果每个方法都正常结束,程序就正常运行,main方法执行完之后栈里就空了,但是如果无限的往栈里压方法,空间就不行了,对于一些嵌套层次比较深的算法递归就会显得力不从心了,从物理层面理解就是我们说的内存崩溃。,在示例中递归头就是f(1),到了f(1)之后程序就执行到底了,程序就不会再往下走了。递归的理解我们可以从以下几步来理解。在这个示例中,我们可以看到。原创 2023-07-28 17:38:30 · 157 阅读 · 0 评论 -
6、Java数组----6.1 什么是数组、数组的声明创建
数组是一个最简单的数据结构,是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。原创 2023-07-31 09:53:07 · 91 阅读 · 0 评论