![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 56
DailyOutput
这个作者很懒,什么都没留下…
展开
-
如何在centOS7上运行jar文件
1. 在自己的电脑上上传jar文件 唯一一个在自己电脑上的操作 scp filename.jar root@IP:/目录/目录/目录 目录是指在服务器上的目录 在服务器上配置jvm环境 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 安装jvm 创建目录 mkdir /java/ 解压到目录 tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /java/ 设置环境变量原创 2022-04-09 00:39:51 · 1435 阅读 · 0 评论 -
关于OutputStream类中write(int b)与write(byte[] b)的效率问题
据说write(int b)与 write(byte[] b)的效率不一样???测试发现,在发送相同内容的数据时(100000个26),write(int b)确实比write(byte[] b)效率要低,经过一层层查看代码与试验,得知了出现这个问题的原因。 一言以蔽之,write(byte[] b)与write(int a)都在OutputStream的子类SocketOutputStream中被重写,write(int a)中调用了write(byte[] b),而每次调用write(byte[] b)原创 2022-03-09 22:35:38 · 743 阅读 · 0 评论 -
Java 实现服务器
如果一台电脑不能连接网络,就是一座孤岛。而如果想要与成个世界联系起来,这个孤岛就需要有一个经纬度,告诉世界,如何才能到达这里。 IP就是一个电脑的经纬度,IPv4地址由32个bit组成,也可以说由4个byte组成(可以提供2^32个不同的地址,但是不够用啊)。所以有了IPv6,128bit。而在一个计算机中如果要想在程序上进行通信的话,还需要知道是哪一个程序,这个时候我们就需要一个端口号,来确定是哪一个程序。 所以,如果知道一个计算机的Ip地址,和想要进行通讯的程序的端口号,我们就可以在该程序上进行通讯。原创 2021-09-19 20:11:40 · 519 阅读 · 0 评论 -
Java--线程安全
一、线程不安全 之前我们介绍了线程的应用,那么在线程的应用中,会有一些意想不到的问题出现,比如我们今天提到的,线程安全。 说到线程安全,首先我们要理解多线程到底是怎么样实现的: 在下图中,我们展示了三个有三条指令的线程的一种可能执行的顺序。虽然在线程内指令是依次执行的,但是在线程之间,指令执行顺序是随机的。 那么我们假设三个线程的三条指令都是一样的,且都有同一个对象a //a.value的值初始化为9 if(a.value <10){ //Instruction1 a.value++;原创 2021-08-08 17:22:29 · 68 阅读 · 0 评论 -
Java-ArrayList的实现
我们在使用数组这种数据类型的时候会遇到一个问题,就是这个数组在一开始的时候就要确定一定的长度,这使得数组的容量有限,一旦后续需要存储的数据个数超过了数组长度,就无法再存储了。 为了在实际应用中,有一个可以不限制长度的数组,我们要自己实现一个ArrayList。实现ArrayList的方法是通过对数组和相关参数进行封装,来起到自动扩容的作用。具体来说,就是当数组没有被填满的时候,后续的数据和普通数组一样存入,当要数组被填满的时候,我们就new一个新的,更长的数组,将原来的数组内容以此复制到新的数组内,并存入新原创 2021-08-06 18:46:43 · 150 阅读 · 0 评论 -
线程的介绍
一、程序、进程和线程的关系和并发与并行的关系 线程(Thread)是执行程序的一个线(主线或者支线),每一个线程都有一个优先级(priority),线程被按照优先级的高低依次执行。当一个线程内创建了一个新的线程,新的线程的优先级就会被初始化为和已有线程一样的优先级。 进程是线程的容器,是系统进行资源分配和调度的基本单位 程序是指令、数据及其组织形式的描述,进程是程序的实体——运行的程序就是进程。 线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程——程序执行的最小单位。 二原创 2021-07-28 23:18:05 · 101 阅读 · 0 评论 -
数据结构-Java-队列的实现
在这一文章中,我们希望通过使用数组,创建一种先进先出,后今后出的(队列)特殊的动态数组。这种队列就像名字一样,在超市排队买单的时候,先排队的人先结账,后排队的人后结账。 而我们知道,new一个数组的时候是需要进行长度的指定的,那么为了实现在一开始的时候不需要进行指定数组,我们有两种办法 1.在申请足够长的数组,我们就可以肆无忌惮的放置数据而无需顾虑长度; 2.每次新建增加或者减小一个长度的数组,把结果放置进去。 而实际我们既不希望一开始就申请10000个长度的数组,也不希望每一次增删都要重新折腾一遍数组,为原创 2021-05-20 20:20:34 · 56 阅读 · 0 评论 -
Java 与 五子棋游戏
一、功能分析 五子棋的实现还是较为简单的,通过下期的流程我们可以知道大概要实现一下功能: 网格界面 点击下棋 悔棋 判断输赢 二、功能实现 根据之前的功能分析,要有网格先要有窗体,我们先重新写一个类,来继承JFrame类,以便在窗口变动的情况下,对窗口进行重绘(防止在窗口大小发生改变的时候,之前的绘画会消失),这里我们重写paint方法,画出网格线 public class MyFrame extends JFrame{ public void paint(Graphics g) { super.原创 2021-04-24 12:49:35 · 67 阅读 · 0 评论