Java
文章平均质量分 65
Java全系列的系统性学习和总结
友人和他的朋友们
公众号:友人和他的朋友们 Java 全栈文档库 www.codermast.com 编程桅杆的作者
展开
-
详细剖析Java中Final关键字的用法及加载时机
必须是8种基本类型或者String类型,并且必须是通过字面量进行赋值,此时才会加上ConstantValue属性。final关键字修饰类,则表明该类无法被继承,如我们经常使用的java.lang.String类就是如此。final关键字修饰方法,则表明该方法无法被子类重写,但是可以被子类继承子类也可以调用该方法。被final和static同时修饰的变量,我们称为静态常量,需要在类加载的时候进行初始化。仅被final修饰的变量,我们称为对象常量,需要在实例化的时候进行初始化。我们能够明显的看到只有。原创 2023-03-29 22:47:30 · 1282 阅读 · 1 评论 -
Java中Static关键字的五种用法详解
直接一点,static关键字就是把属性和方法变为类相关,而不是实例相关。原创 2023-03-25 23:49:25 · 4335 阅读 · 0 评论 -
Java并发-线程与进程、线程安全、锁、阻塞队列详解,看这一篇就够了
但是在多线程的情况下,一个线程可能在步骤1和步骤2完毕以后,线程失去CPU进入就绪状态,CPU切换到另外一个线程,另外一个线程执行相同操作,那么在该线程的操作中,仅仅只运行到了步骤1,随即线程2被剥夺运行权,此时切换到线程1,继续执行步骤3,操作完毕以后,线程2开始运行,此时计算的账户金额,是以第一次运行时读取的账户余额为基础计算的,那么重新写回账户的金额就会出错,即将线程1的操作进行覆盖,钱款会存在丢失的情况。由于还没有分配CPU,线程将进入线程队列排队,等待CPU服务,这表明它已经具备了运行条件。原创 2023-03-19 20:53:40 · 776 阅读 · 0 评论 -
详解Java语言中JDK、JVM、JRE三者是什么和之间的关系
三者是什么?JDK JDK全称(Java Development Kit),根据其意思我们可以看出来其是Java开发时环境和所包含的配套元件,是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库。这里要提一下javac,这个工具,其本质就是一个编译器,用来将程序员写好的Java代码编译成Class文件,这时候才能使用java命令进行运行,运行时是运行的编译好的Class文件,而不是我们.原创 2021-09-26 23:44:10 · 569 阅读 · 2 评论 -
Java多线程系列 - 简单总结Java中线程的六种状态
枚举出状态线程的这些状态在Java中我们可以使用Thread类下的内部类State中的value方法获取,返回值是一个Thread.State类型的数组。将数组遍历,就能得到这些状态演示代码 // 获取到类型的数组 Thread.State[] values = Thread.State.values(); // 将类型的数组进行遍历 for(Thread.State state : values){ System.out.println(state); }线原创 2021-08-28 12:11:15 · 76 阅读 · 0 评论 -
Java多线程系列 - 使用Java多线程实现Http响应的实现
HTTP响应 HTTP响应是服务器根据用户的HTTP请求做出的一种回应。HTTP响应的实现import java.io.IOException;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.TimeUn原创 2021-08-19 18:42:36 · 927 阅读 · 0 评论 -
Java多线程系列 - 多线程简单应用:使用多线程实现斐波那契数的计算
斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 196原创 2021-08-19 10:00:33 · 1097 阅读 · 0 评论 -
著名的斐波那契数列通过Java实现的两种方法
定义斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从 1963 年起原创 2021-08-19 09:59:21 · 335 阅读 · 0 评论 -
Java多线程系列 - 多线程启动后如何关闭多线程?多线程的关闭
多线程的关闭 多线程的启动是一个重要的问题,同样关闭多线程也是一个很重要的问题。因为线程就是进程中处理问题的分支,其共享该进程中的资源,所以这就给了我们思路,可以通过共享的某种资源来进行控制线程的开关,接下来看代码。/** 如何让子线程停下来* 通过使用共享变量进行控制* */import java.util.Scanner;import java.util.concurrent.TimeUnit;class MyThread extends Thread{原创 2021-08-10 15:08:08 · 2656 阅读 · 0 评论 -
Java多线程系列 - 如何启动一个最简单的多线程?代码详解
多线程的启动 在Java中我们实现多线程有三种方法,他们分别是:继承Thread 类进行实现实现Runnable接口进行实现通过 Callable 和 Future 创建线程。接下来就让我们来进行多线程启动的代码详解代码详解继承Thread类/*继承Thread类,来实现多线程*/class MyThread extends Thread{ /* * 重写其 run 方法 * */ @Override public void run() {原创 2021-08-10 14:59:30 · 414 阅读 · 0 评论 -
Java多线程系列 - 什么是进程?什么是线程?什么是多线程?图文详解
从现在开始就正式步入Java多线程的学习了,因为这章节比较重要,就新开了一个章节进行学习记录,在学习多线程知识之前,我们先了解几个概念,什么是进程?什么是线程?什么是多线程?因为是我自己的学习总结,所以很多地方我都是用自己的话来总结的,如果有什么地方有遗漏,还请各位大佬在评论区提醒一下,感谢什么是进程 电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。不会产生影响,就比如下面的几个,都是进程。比如微信和谷歌浏览器,就不会产生影响,因为他们是两个独立的进程。什么.原创 2021-08-09 19:33:48 · 113 阅读 · 0 评论 -
JavaWeb之Servlet路径设置注意事项
什么是Servlet? Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。 狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但原创 2021-05-29 15:06:52 · 1069 阅读 · 0 评论 -
JAVA - 使用非递归实现二叉树的前序、中序和后续遍历
二叉树的遍历二叉树的遍历,通常分为4种前序:根 => 左子树 => 右子树中序:左子树 => 根 => 右子树后序:左子树 => 右子树 => 根层序:按二叉树的每层,从左往右一般来将,对于数据结构来讲都只研究前三种解题思路对于遍历,我们需要知道,每次走过的路径,开始不同时机的遍历。所以我们一般采用栈来进行模拟操作。前序遍历// 使用非递归实现二叉树的前序遍历 public static void preorder(TreeNode原创 2021-03-29 21:33:43 · 232 阅读 · 0 评论 -
JavaSE - 包(package)的使用教程
什么是包?简单的来说可以理解为文件夹,在我们的电脑上,所有的文件都是存放在文件夹内部,文件夹内部可以是文件也可以是文件夹,这里的包可以理解为存放子级包或者直接存放类文件的文件夹。有什么用处?通过合理的使用包,我们能将一个项目进行简单的结构梳理,通过不同的名称来区别每个包中存放什么文件,能大幅度降低我们对项目的书写和维护成本。怎么定义包?当我们在创建一个包后,我们在其内部创建好文件以后,需要再类的开头进行声明比如我们在pack包下存放了一个Hello.java文件则需要在此文件的开头进行声明原创 2021-03-18 22:39:38 · 273 阅读 · 0 评论 -
JavaSE初学者入门 引用和对象 重要知识点
文章目录什么是引用?什么是对象?引用和对象的关系什么是引用?如果引用类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。这种定义很纯粹,但是太过狭隘,一个对象在这种定义下只有被引用或者没有被引用两种状态。什么是对象?真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。从另外一种视角来看,对象是组织和管理数组的一个概念,表现为内存中的一块区域。引用和对象的关系同一个引用不能指向多个对象,可以不指向对象,但是只能指向一原创 2021-02-05 22:17:25 · 176 阅读 · 0 评论 -
JavaSE 初学者必做项目点 Arrays类中常用方法的实现 之 光脚造轮子
前言最近也是放假在家,因为自己家和自己的私事折腾了好几天,浪费了好久的学习时间,在家和学校的学习环境真的有很大差别,以后还是得找个好点的学习环境,从2月份开始就开始重新学习了,换了个学习环境,感觉还是学习的时间更舒服,话不多讲了,开始下面的学习 总结。Arrays类中的常见方法只针对Arrays类中常见的一些方法进行了简单的实现,因为认知有限,还未能够针对运行运行效率进行良好的优化,也没有进行完善的重构,但其具体的业务逻辑已经写出来了,只针对其中一种情况进行了实现。如果有更好的意见,还请各位直接留言原创 2021-02-02 11:42:08 · 210 阅读 · 1 评论 -
JavaSE 初学者入门 重点 数组的定义声明和使用
文章目录什么是数组数组的定义数组的使用什么是数组数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。数组是用于储存多个相同类型数据的集合。数组的定义直接初始化//定义一个整型的数组int[] arr = {原创 2021-01-21 23:33:06 · 123 阅读 · 0 评论 -
Java初学者基本语法 之 方法的重载
重载的定义如果有两个方法的方法名相同,但参数列表不一致,哪么可以说一个方法是另一个方法的重载。具体说明如下:方法名相同方法的参数类型,参数个不一样方法的返回类型可以不相同方法的修饰符可以不相同main 方法也可以被重载实例写一个方法,能够求得两数之和,要求如下:一个方法可以计算两个整数的和可以计算两个小数的和可以计算一个整数和一个小数的和可以计算一个小数个一个整数的和public class Sum{ public static void main(String[]原创 2021-01-03 22:02:51 · 210 阅读 · 2 评论 -
Java新手实战项目-猜数字小游戏,详解加源代码
import java.util.Random;import java.util.Scanner;public class GuessNumber { static Scanner scanf = new Scanner(System.in); static Random random = new Random(); //主体函数 public static void main(String[] args) { int a;原创 2020-12-27 18:06:55 · 809 阅读 · 0 评论 -
Java基础语法方法的定义及其使用
文章目录方法是什么使用方法的好处方法的定义方法的调用方法是什么和c++等其他面向对象的编程语言一样,java也是一门面向对象编程的语言,固然和他们一样,通过调用函数或者方法,来进行各种操作。方法就是一个将一段代码封装保存起来的容器,这段代码一般上是可以实现某种功能,在需要使用该功能时可以随时进行调用,达到代码的高效利用,提高代码的复用性,提高我们写代码的效率。使用方法的好处提高代码的复用性提高我们写代码的效率提高项目代码的可维护性,更好维护对于后续的更新,可以保证稳定性,创建新的方法,不会原创 2020-12-26 16:21:12 · 212 阅读 · 0 评论 -
Java初学者必备实战项目 - 三子棋(附源代码和思路详解)
文章目录游戏介绍效果图思路分析简单汇总项目总览小结游戏介绍三子棋是一种古老的简单棋盘游戏,玩家分别落子,当同种棋子连成一线即为胜利,先达到者为胜。效果图思路分析在开始写逻辑之前,我们先思考一下游戏的架构,基本逻辑以及各种条件的判断。在这里我简答的画了一张图给你们,应该会对你们的理解有所帮助。初始化棋盘我们做的是三子棋,必须将数据存储起来,所以这里我们最合适的是使用二维数组进行存储,将行和列的坐标存储起来,来判断是否获胜。创建一个方法initBoard意思为初始化棋盘,通过此方法,原创 2020-12-26 01:23:53 · 1419 阅读 · 16 评论 -
Java入门基本语法结构解析
文章目录基本结构类方法总结基本结构在Java中万物皆是类,所有的代码都得写在类里面,而方法必须写在类里面。类类就是一个结构,里面用来管理方法的集合体public class className{ //里面写的是方法}方法方法就是基于类下面的另外一个结构,用来管理指令的集合体,管理一段指令的集合体public static void main(String[] args){ //里面写的是一些语句 //statemant}总结java中所有的语句都得写在方法中,规范化,也便与原创 2020-12-23 22:36:39 · 260 阅读 · 0 评论