自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (13)
  • 问答 (6)
  • 收藏
  • 关注

原创 8.10 UDP实现双机通信

UDP实现双机通信版本1简介代码版本1简介      发送端可多次向接受端发送数据,接收端可多次接收数据,但发送端不可接收数据,接收端不可发送数据。      无实用价值,但存在一个问题:使用了字节缓冲流BufferedReader(InputStreamReader(S...

2020-03-31 09:40:23 552

原创 8.9 UDP编程:基本类型数据传输与对象数据传输

UDP编程:基本类型数据传输与对象数据传输基本类型数据传输对象数据传输基本类型数据传输code接收端import java.io.BufferedInputStream;import java.io.ByteArrayInputStream;import java.io.DataInputStream;import java.io.IOException;import java.n...

2020-03-30 16:42:25 415

原创 8.8 网络编程:UDP编程基本方法

网络编程:UDP编程基本方法分析JDK中封装好的工具类分析使用基于UDP协议的Socket网络编程不需要利用IO流实现数据的传输,也就是数据在网络中传输时不需要使用IO流。IO流可以用来在网络上读写数据,比如使用URL扒取网页数据。每个数据发送单元被统一封装成数据报包(简称数据包)的方式,发送方将数据包发送到网络中,数据包在网络中去寻找它的目的地。即数据在网络中以数据包的形式传输,数据包...

2020-03-29 21:13:03 184

原创 8.7 Socket套接字

Socket套接字我们开发的网络应用程序位于应用层,TCP和UDP属于传输层协议,在应用层如何使用传输层的服务呢?在应用层和传输层之间,则是使用套接字来进行分离。套接字就像是传输层为应用层开的一个小口,应用程序通过这个小口向远程发送数据,或者接收远程发来的数据;而这个小口以内,也就是数据进入这个口之后,或者数据从这个口出来之前,是不知道也不需要知道的,也不会关心它如何传输,这属于网络其它层次...

2020-03-29 20:56:21 142

原创 1.1 利用Socket实现双机通信

利用Socket实现双机通信目的环境所需知识实验分析实验结果代码目的利用WinSock来实现双机通信,理解TCP状态图要求使用WinSock编程,采用其中的TCP面向连接方式,实现文本数据的交换。环境Windows10操作系统、DevC++所需知识计算机网络通讯(1)实质:进程之间的通讯(2)两台计算机之间通讯的基础:主机唯一标识符(IP)、进程唯一标识符(PORT)So...

2020-03-29 17:29:46 10742 22

原创 8.6 网络编程:传输协议

网络编程:传输协议TCP传输协议概念特点协议基本内容UDP传输协议概念特点协议基本内容TCP传输协议概念      TCP(transfer control protocl),是一种面向连接的、可靠的、基于字节流的运输层通信协议。特点面向连接点到点的通信高可靠性占用系统资源多、效率低协议基本内容UDP传输协议概念...

2020-03-27 12:35:33 189

原创 8.5 网络爬虫

网络编程:爬虫原理网络获取数据获取数据的两种方式网络获取数据获取网络数据的URL通过URL对数据进行下载分析数据,使数据规格化(正则表达式)对数据进行抽取、清洗、存储。获取数据的两种方式code1:import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader...

2020-03-26 22:25:58 88

原创 8.4 网络编程:URL

网络编程:URLURLURLURI:Uniform Resource Identifier 统一资源标识符,用来标识抽象或物理资源的一个紧凑字符串。包括两种形式:URL和URNURL:Uniform Resource Locator 统一资源定位符,一种定位资源的主要访问机制的字符串,一个标准的URL必须包括:protocol、host、port、path、parameter、anchor...

2020-03-26 11:16:57 112

原创 8.3 网络编程:端口

网络编程:端口端口端口与IP的关系控制台命令查看端口状态端口IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用端口来区分这些应用程序。端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用 程序。端口范围0—65535,16位整数Oracle、MySQL、QQ、迅雷等应用程序都有自己的端口。分类:公任端口,0-1023,比如...

2020-03-26 09:55:58 167

原创 1.4 判断两个IP是否属于同一子网

判断两个IP是否属于同一子网题目描述输入描述输出描述代码实现总结题目描述子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”。利用子网掩码可以判断两台主机是否中同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。示例:IP地址...

2020-03-25 21:37:24 1530 1

原创 8.2 网络编程:IP

网络编程:IPIP地址IP地址定义:用来标识网络中的一个通信实体的地址。通信实体可以是计算机、路由器等。比如互联网的每个服务器都要有自己的IP地址,而每个局域网的计算机要通信也要配置IP地址。路由器是连接两个或多个网络的网络设备。分类(1)IPV4:32位地址,以点分十进制表示,如192.168.0.1。(2)IPV6:128位地址(16字节)写成8个16位的无符号整数,每个整数用四个...

2020-03-25 18:38:24 133

原创 8.1 网络编程:基本概念

网络编程:基本概念计算机网络网络分层计算机网络定义:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。分析(1)功能:资源共享、信息传递(2)组成:硬件有计算机、外部设备和通信线路,软件有网络操作系统,网络管理软件及网络通信协议。分类:按照规模分类有局...

2020-03-25 17:55:02 110

原创 7.20 线程组和线程池

线程组和线程池线程组介绍作用线程池介绍优势线程组介绍• 线程组表示一个线程的集合。• 线程组也可以包含其他线程组。线程组构成一棵树。在树中,除了初始线程组外,每个线程 组都有一个父线程组。• 顶级线程组名system,线程的默认线程组名称是main• 在创建之初,线程被限制到一个组里,而且不能改变到一个不同的组作用• 统一管理:便于对一组线程进行批量管理线程或线程组对象• 安全隔...

2020-03-24 23:22:37 104

原创 7.19 线程:CAS

线程:CAS简介锁的分类Compare and Swap(比较并交换)简介锁的分类悲观锁:synchronized是独占锁即悲观锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁而是假设没有冲突而去完成某项操作,如果因为冲突失败就重试,知道成功为止。Compare and Swap(比较并交换)...

2020-03-24 22:51:30 98

原创 1.3 容器装水溢出问题

容器装水溢出问题题目描述输入描述输出描述示例实现代码题目描述      N个X升容器分层叠放(即放N层),从上到下,编号分别从为从1到N。如果某个容器里装的水超过X升,则会溢出流到下层容器。      已知N个容器中已经分别装有若干升水,从最下层开始往上,每层导入若干升水,...

2020-03-24 22:20:10 679

原创 7.18 线程:可重入锁

线程:可重入锁简介测试简介      锁作为并发共享数据保证一致性的工具,大多数内置锁都是可重入的,也就是说,如果某个线程试图获取一个已经由它自己持有的锁时,那么这个请求会立刻成功,并且会将这个锁的计数值加1,而当线程退出同步代码时,计数器将会递减,当计数值等于0时,锁释放。如果没有可重入锁的支持,在第二次企图获得锁时将会进入死锁状态...

2020-03-24 14:40:36 108

原创 7.17 线程:ThreadLocal

线程:ThreadLocal简介测试简介在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程。ThreadLocal能够放一个线程级别的变量,其本身能够被多个线程共享使用,并且又能够达到线程安全的目的。说白了,ThreadLocal就是想在多线程环境下去保证成员变量的安全,常用的方法,就是get/set/ini...

2020-03-24 10:14:18 87

原创 1.2 任意大小数字相加问题

任意大小数字相加问题题目描述代码实现题目描述      请编码实现一个命令行工具,用于实现两个任意大小的正整数的加法操作。      因为是任意大小的整数,所以可以使用String来保存数据,至少不可以直接使用基本数据类型,因为它们都有范围。代码实现code:impo...

2020-03-23 23:05:30 180

原创 7.16 线程:单例模式

线程:单例模式介绍实现介绍      单例模式是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一...

2020-03-22 22:36:16 108

原创 7.15 线程:volatile

线程:volatile介绍实例测试介绍      volatile保证线程间变量的可见性,简单地说就是当线程A对变量X进行了修改后,在线程A后面执行的其它线程能看到变量X的变动,更详细的说是要符合以下两个规则:线程对变量进行修改之后,要立刻写回到主存线程对变量读取的时候,要从主内存读,而不是缓存。  &nb...

2020-03-22 22:14:51 63

原创 7.15 线程:简单任务调度

线程:任务定时调度介绍简单任务调度使用类测试代码介绍可以指定时间点,在指定时间点执行某一段固定的代码。简单任务调度使用类      通过Timer和TimeTask,我们可以实现定时启动某个线程。java.util.Timer:类似闹钟的功能,本身就是一个线程;java.util.TimerTask:一个抽象类,该类实现了R...

2020-03-22 21:46:53 121

原创 7.14 线程通信:生产者消费者问题

线程通信:生产者消费者问题应用场景分析解决问题所需方法解决方法1:管程法原理解决方法2:信号灯法应用场景• 假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费• 如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止• 如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止...

2020-03-22 10:17:45 169

原创 1.1 数字全排列和补给点问题

数字全排列和补给点问题数字全排列问题问题代码补给点问题问题分析代码数字全排列问题问题      2,3,3,4,5,6这6个数字,用Java写一个main函数,打印出所有不同的排列      要求: '4’不能在第4位, '3’与’5’不能相连代码/** * 2,3...

2020-03-21 22:59:04 345

原创 7.13 线程死锁

线程死锁简介简介当两个线程相互等待对方释放“锁”时就会发生死锁出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续过多的同步可能会造成死锁。...

2020-03-19 22:13:05 71

原创 7.12 线程同步实例

线程同步实例模拟电影院购票模拟电影院购票import java.util.ArrayList;import java.util.List;/** * 使用多线程模拟实现影院选位子 * @author dxt * */public class Cinema { public static void main(String[] args){ //影院位子 List<...

2020-03-19 20:20:18 158

原创 7.11 线程同步

线程同步线程同步synchronized同步方法线程同步当多个线程访问同一个数据时,容易出现线程安全问题。需要让线程同步,保证数 据安全。为了保证数据在方法中被访问时的正确性,在访问时加入了锁机制。当一个线程获得对象的排它锁,其它线程必须等待,使用后释放锁即可。假如锁机制后会产生新问题:一个线程锁会导致其它所有需要此锁的线程挂起;在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延...

2020-03-19 11:19:41 114

原创 7.10 线程安全问题

多线程安全问题简介安全问题示例简介产生安全问题的条件存在共享数据 (也称临界资源)存在多条线程共同操作共享数据安全问题原因分析首先要知道线程如何访问临界资源的:一个线程建立,具有了线程自己的内存空间,当需要访问临界资源时(对临界资源进行读取,计算、重新赋值等操作),会先从临界资源中取得一个所需数据的备份到自己的内存空间中,然后在线程操作中对备份数据进行读取,计算、重新赋值...

2020-03-19 10:08:31 87

原创 7.9 线程中的常用方法

线程中的常用方法介绍测试介绍isAlive() :判断线程是否还未终止setName() :给线程起一个名字getName() :获取线程的名字currentThread() :获取当前正在运行的线程对象,即获取自己本身。测试code:/** * 测试线程中的常用方法 * @author dxt * */public class InfoTest { public...

2020-03-18 21:49:06 81

原创 7.8 守护线程

守护线程介绍测试代码介绍线程分为用户线程和守护线程虚拟机必须确保用户线程执行完毕虚拟机不用等待守护线程执行完毕守护线程作用:后台记录操作日志、监控内存使用等测试代码/** * 测试守护线程 * 守护线程为用户线程服务;jvm不用等待守护线程结束 * 默认线程都是用户线程 * @author dxt * */public class DaemonTest { pub...

2020-03-18 14:43:51 66

原创 7.7 线程优先级

线程优先级priority测试代码priorityJava提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程。线程调度器 按照线程的优先级决定应调度哪个线程来执行。线程的优先级用数字表示,范围从1到10。例如:Thread.MIN_PRIORITY = 1 、 Thread.MAX_PRIORITY = 10 、 Thread.NORM_PRIORITY = 5 。使用下述方法获...

2020-03-18 12:11:12 219

原创 7.6 在程序中观察线程状态

在程序中观察线程状态程序中的线程状态代码测试程序中的线程状态创建线程对象,处于NEW状态就绪和运行状态,都显示为RUNNABLE状态阻塞状态,显示为TIMED_WAITING状态结束状态是Terminated获取线程个数:Thread.activeCount();代码测试import java.lang.Thread.State;/** * 观察线程状态 * * @...

2020-03-18 11:12:24 97

原创 7.5 线程终止、暂停、礼让、插队

线程终止、暂停、礼让、插队线程终止线程终止code:/** * 终止线程 * 1. 线程执行完毕-->次数 * 2. 外部干涉--->加入标识 * 不要使用stop() 或 destory()来终止线程 * @author dxt * */public class TerminateThread implements Runnable{ //加入标识 priv...

2020-03-17 17:42:50 211 1

原创 7.4 线程五大状态

线程五大状态新生状态就绪状态运行状态阻塞状态死亡状态新生状态用new关键字建立一个线程对象后(Thread t = new Thread()),该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start进入就绪状态。该内存空间与主内存进行数据交流。就绪状态处于就绪状态线程具备了运行条件,但还没分配到CPU,处于线程就绪队列,等待系统为其分配CPU。当系统选...

2020-03-17 16:07:50 153

原创 csp试题2:回收站选址

csp试题2:回收站选址题目分析代码总结题目题目背景      开学了,可是校园里堆积了不少垃圾杂物。      热心的同学们纷纷自发前来清理,为学校注入正能量。题目描述      通过无人机航拍我们已经知晓...

2020-03-16 23:03:48 1499 3

原创 7.3 静态代理设置模式

静态代理设置模式简介测试简介在使用实现Runnable接口创建线程时,使用了静态代理模式,Thread对象就是代理对象。两个角色必须都实现同一个接口。测试code/** * 静态代理 * 接口: * 1. 真实角色 * 2. 代理角色 * @author dxt * */public class StaticProxy { public static void m...

2020-03-16 22:02:39 67

原创 7.2线程的创建

线程的创建方法1:继承Thread类简介方法2:实现Runnable接口方法3:实现Callable接口方法1:继承Thread类简介创建多线程的方法1:继承Thread类,重写run()方法。注意:慎用,因为java中只能单继承。Thread类实现了Runnable接口,Runnable接口应由任何类实现,其实例由线程执行。该类必须定义一个无参的run方法。Java虚拟机允许应用程...

2020-03-16 11:41:17 110

原创 csp试题1:报数

csp试题1:报数题目分析代码总结题目题目描述      甲乙丙丁决定玩一个报数的游戏来打发时间。游戏规则为四个人从1开始轮流进行报数,但如果需要报出的数是7的倍数或含有数字7则直接跳过。      此外大家约定,在总共报出了n个数字后(不计入被跳过的数)游戏结束。现在需...

2020-03-15 21:43:06 1192

原创 7.1 线程基本概念

线程基本概念程序、进程和线程并发与并行进程与线程的区别程序、进程和线程程序是一段静态代码,它是应用程序执行的蓝本。进程是一种正在运行的程序,有自己的地址空间,进程具有动态性、并发性和独立性。线程是进程内部一个执行单元,它是程序中一个单一的顺序控制流程。线程可并发执行,是独立调度的基本单位,能够共享进程资源。并发与并行并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到...

2020-03-15 21:20:30 141

原创 6.19 CommonsIO

CommonsIOCommonsIO环境搭建CommonsIO核心操作CommonsIO拷贝操作CommonsIO总结CommonsIO环境搭建进入apache网站下载CommonsIO下载地址选择windows版本,点击即可下载下载后解压向项目中添加CommonsIO先创建一个java项目在项目中建立一个文件夹lib将commons-io-2.6.jar和comm...

2020-03-14 22:09:21 113

原创 JAVA实现十进制之内数的进制转换

JAVA实现十进制之内数的进制转换解释测试代码解释其它进制转为十进制:对应位乘以其对应基数。十进制数转为其它进制数:除以进制数取余法。(例如:除2取余法)测试代码/** * 测试进制转换 * 1. 一个任意进制的数字转为十进制 * 2. 一个十进制数字转为任意进制的数字 * 可以作为功能函数 * @author dxt * */public class Convers...

2020-03-07 17:45:56 185

java开发的飞机躲炮弹小游戏

文件中包含整个游戏项目(源代码和所需图片)和游戏录屏(gif图片),是直接使用java语言在eclipse上开发的。游戏是一个飞机躲多个炮弹的游戏,总共设置了三关,有些简陋。

2020-02-18

909数据结构.zip

山东大学2012年至2018年计算机科学与技术专业研究生考试的909数据结构试题及对应答案,试题有的是以图片形式呈现,有的是以pdf形式呈现,答案一般是以图片形式呈现,希望对考山东大学的大学生们有所帮助。

2020-01-07

朴素贝叶斯.zip

文档中包含托儿所的录取数据,录取数据包含训练数据和测试数据,依据训练数据训练朴素贝叶斯分类器,然后将所得的分类器应用到测试数据中对测试数据进行分类。其中代码中使用全部训练数据对分类器进行训练。文档中还包含一个对初始数据进行处理的一个代码文件,它的作用是将录取数据中的字符串表示的类型用数字来表示。

2019-07-27

正则化.zip

mathlab中实现的对线性回归和逻辑回归的正则化。再对线性回归进行正则化时,正则化参数分别选取0,1和10;对逻辑回归进行正则化时,采用牛顿法优化的成本函数,正则化参数大小可自己设置。

2019-07-20

k-means聚类算法.zip

在mathlab中实现的k-means算法,实验目的是通过减少图片颜色数来压缩图片,其中k-means算法用于找出图片中的16种聚类中心颜色,用这16种颜色代替图片中的每个像素上的颜色,然后显示图片并保存。

2019-07-17

逻辑回归.zip

机器学习中的逻辑回归实验,有一组学生高考成绩及录取情况数据集,训练一个逻辑回归模型,使之可以对一组成绩进行分类,判断这组成绩是否能被学校录取。通过两种方法(牛顿法和梯度下降法)分别优化逻辑回归模型中的theta值,并依据所得的theta值绘制决策边界,利用所得的回归模型进行预测。

2019-07-14

matlab中实现的线性回归.zip

机器学习课程中的线性回归实验代码,运行环境为mathlab,包含两个实例:一个是身高与年龄的二元线性回归实例,运用梯度下降算法求theta,并预测年龄为3.5和7岁的两个男孩的身高;另一个是多元线性回归实例,是关于房价的,运用了数据缩放,并探索梯度下降算法中学习率对算法迭代的影响,以及最后预测1650平方英尺和3个卧室的房子的价格。代码运行时需修改数据加载路径。

2019-07-04

hadoop并行化和非并行化的kmeans算法.zip

包含两种平台上运行的kmeans算法:一种是在Hadoop系统上的并行化kmeans算法,支持读文件,执行聚类算法,输出质心文件,将每个数据的聚类信息输出到控制台上;另一种是串行的聚类算法,支持读文件数据,执行kmeans算法,将每个数据的聚类信息输出到文件中。代码注释清晰。

2019-05-27

ElGamal.zip

c++实现的基于ElGamal协议的密钥交换实验。实现了ElGamal加密和ElGamal数字签名。压缩包中包含源代码和可执行文件。

2019-05-13

基于Diffie-Hellman协议的密钥交换

用c++实现的基于Diffie-Hellman协议的密钥交换,包含求一个素数的本原根函数,但由于数据类型问题,不能求太大的素数的本原根。压缩包中包含源代码和可执行文件,代码注释清晰。

2019-05-10

山东大学 大数据实验二 倒排索引算法Java实现

山东大学大数据课程的实验二。基于hadoop集群系统(也可以在伪分布式系统上运行)系统使用Java编写的倒排索引实现,具有使用停词表功能,使用正则表达式选择规范的单词。代码重构了setup(),map(),combiner(),partitation()和reducer()函数,功能是对文档进行倒排索引,得到一个单词有序,且单词的文件列表同样有序的倒排列表集合。

2019-04-21

分组密码加密之DES和3DES加密

包含密码学中分组密码加密的DES加密和3DES加密算法源代码以及编译完成的可执行文件,代码包含详细注释。

2019-03-24

四种古典密码算法实现

四种古典密码的c++算法实现,有playfair密码,vegenere密码,置换密码,移位密码。包含四种密码的加密和解密源代码以及可执行文件,代码注释清晰。

2019-03-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除