
Java编程训练
文章平均质量分 66
风暴计划
一枚代码小菜鸟
展开
-
Java网络编程8.TCP网络编程之服务器多线程实现
TCP网络编程之服务器多线程实现 1、TCP网络编程之服务器多线程实现的背景(1)假设我们的一个服务器供很多客户端使用,而这些客户端都是来上传文件的。那么,如果服务器端是单线程实现的,则就会出现”先到的客户端优先使用服务器端资源“的现象,即让客户端依次排队使用服务器,这是不符合常理的。常理应该是:不同的客户端会抢占服务器的资源,哪个客户端的带宽大、哪个客户端需要上传的资源小,哪个客户端...原创 2018-09-23 21:23:46 · 1434 阅读 · 0 评论 -
Java网络编程7.TCP网络编程之练习
一、TCP网络编程之客户端键盘录入-服务器控制台输出1、键盘录入数据BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));2、...原创 2018-09-23 19:46:43 · 389 阅读 · 0 评论 -
Java网络编程6.TCP网络编程之反馈
TCP网络编程之反馈 1、TCP网络编程图解2、TCP网络编程之反馈(1)TCP服务器端package cn.itcast_07;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import...原创 2018-09-23 19:18:56 · 375 阅读 · 0 评论 -
Java网络编程5.TCP网络编程
TCP网络编程——Socket类和ServerSocket类 1、TCP协议接收数据——服务器端(1)TCP协议接收数据的步骤TCP协议接收数据的步骤: A: 创建接收端的Socket对象 B: 监听客户端的连接,并且返回一个对应这个客户端的Socket对象 C: 获取输入流,读取数据显示在控制台 D: 释放资源:close() (2)TCP协议接收数据的方法...原创 2018-09-23 17:54:22 · 363 阅读 · 0 评论 -
Java网络编程4.UDP网络编程之多线程优化
UDP网络编程之多线程优化——DatagramSocket类 1、UDP网络编程之多线程优化的思想(1)一个线程实现客户端——发送数据(2)一个线程实现服务器端——接收数据(3)在控制台显示解析出来的数据2、UDP网络编程之多线程优化(1)发送数据端的线程——客户端线程package cn.itcast_05;import java.io.BufferedRea...原创 2018-09-23 17:07:56 · 483 阅读 · 0 评论 -
Java网络编程3.UDP网络编程之循环发送与接收优化
UDP网络编程之优化——DatagramSocket类 1、UDP协议循环发送数据——客户端package cn.itcast_04;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;...原创 2018-09-23 16:43:48 · 1593 阅读 · 1 评论 -
Java网络编程2.UDP网络编程
UDP网络编程——DatagramSocket类 1、UDP协议发送数据——客户端(1)UDP协议发送数据的步骤:UDP协议发送数据 A: 创建发送端Socket对象 B: 创建数据,并把数据打包 C: 调用Socket对象的发送方法发送数据包 D: 释放资源 (2)UDP协议发送数据的方法DatagramSocket():创建发送端Socket对象 Dat...原创 2018-09-23 16:12:36 · 372 阅读 · 0 评论 -
Java网络编程1.网络编程概述
网络编程概述 1、计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。2、网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。3、网络参考模型注:网络模型7层概述:物理层:主要定义物理设备标准,如网线的接口类型、光纤...原创 2018-09-23 11:00:05 · 395 阅读 · 0 评论 -
批量修改文件名称
使用IO技术和字符串功能批量修改文件名称 * 需求:把E:\评书\三国演义下面的视频名称修改为 * 00?_介绍.avi * * 思路: * A:封装目录 * B:获取该目录下所有的文件的File数组 * C:遍历该File数组,得到每一个File对象 * D:拼接一个新的名称,然后重命名即可。package cn....原创 2018-05-25 17:56:10 · 374 阅读 · 3 评论 -
键盘输入一个字符串,统计每个字符出现的次数,并且按照结果格式输出
键盘输入一个字符串,统计每个字符出现的次数,并且按照结果格式输出。/* * 需求:"aababcabcdabcde",获取字符串中每一个字母出现的次数,要求结果输出格式是: * a(5)b(4)c(3)d(2)e(1) * * 分析: * A:定义一个字符串 * B:定义一个TreeMap集合 * 键:Character * ...原创 2018-05-22 20:52:12 · 34202 阅读 · 3 评论 -
把字符串转化为字符数组并把字符数组排序输出
把字符串转化为字符数组并把字符数组排序输出需求:循环输入一个字符串String,把字符串转化为字符数组char [ ] ,并把该字符数组按照自然顺序排序后输出。package cn.itcast_07;import java.util.Arrays;import java.util.Scanner;public class stringTostringarray { public s...原创 2018-05-22 19:58:25 · 2198 阅读 · 0 评论 -
ArrayList存储字符串并且遍历——ArrayList存储自定义对象并且遍历
ArrayList存储字符串并且遍历输出——ArrayList存储自定义对象并且遍历输出1、ArrayList存储字符串并遍历。 遍历方式A: 迭代器 遍历方式B: 普通for 遍历方式C: 增强for2、代码演示package cn.itcast_01;import java.util.ArrayList;import java....原创 2018-04-23 15:16:05 · 3137 阅读 · 0 评论 -
ArrayList中删除重复的字符串元素——ArrayList中删除重复的自定义对象元素
ArrayList中删除重复的字符串元素——ArrayList中删除重复的自定义对象元素1、ArrayList中删除重复的字符串元素: 需求:ArrayList中去除集合中字符串的重复值(字符串的内容相同) 要求:不能创建新的集合,就在以前的集合上做。2、代码演示:/* * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) * 要求:不能创建新的...原创 2018-04-22 16:51:52 · 1268 阅读 · 0 评论 -
把字符串中的字符进行排序
把字符串中的字符进行排序:把字符串中的字符进行排序、toCharArray( ):把字符串转换为字符数组、valueOf( ):把字符数组转换为字符串。1、把字符串中的字符进行排序。 举例:"dacgebf" 结果:"abcdefg"分析: A: 定义一个字符串 B: 把字符串转换为字符数组 C: 把字符数组进行排序 D: 把排序后的字符数组转成字符串 ...原创 2018-04-17 23:07:51 · 15162 阅读 · 0 评论 -
字符串——String、 StringBuffer、StringBuilder 的区别、String作为参数传递、StringBuffer作为参数传递
字符串:String, StringBuffer, StringBuilder 的区别、String作为参数传递、StringBuffer作为参数传递1、字符串字符串是一种特殊的引用类型,但是,当把字符串String对象作为方法的形式参数的时候,需要把它当作基本类型来看待。2、面试题1:String, StringBuffer, StringBuilder 的区别?(1)String是内容...原创 2018-04-17 21:02:43 · 481 阅读 · 0 评论 -
String和StringBuffer之间的转换——append( )和toString( )
String和StringBuffer之间的转换:构造方法、append( )、toString( )、题目1:String和StringBuffer的相互转换、题目2:把数组拼接成一个指定格式的字符串、题目3:把字符串反转、题目4:判断一个字符串是否是对称字符串。1、为什么我们要讲解类之间的转换:(1)A -- B的转换:我们把A转换为B,其实是为了使用B的功能。(2)B -- A的转换:我们可...原创 2018-04-17 20:23:40 · 4591 阅读 · 0 评论 -
统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数
统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)1、需求:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)举例: "Hello123World" 结果: 大写字符:2个 小写字符:8个 数字字符:3个 2、分析: 前提:字符串要存在 A: 定义三个统...原创 2018-04-17 16:06:13 · 42116 阅读 · 7 评论 -
统计大字符串中小字符串出现的次数
统计大字符串中小字符串出现的次数1、举例:在大字符串 "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun" 中查找小字符串“java”,结果是:java出现了5次。2、分析:前提:是已经知道了大串和小串。 A: 定义一个统计变量,初始化值是0 B: 先在大串中查找一次小串第一次出...原创 2018-04-17 15:43:22 · 2439 阅读 · 0 评论 -
字符串的翻转
字符串的翻转1、需求:字符串翻转键盘录入一个字符串"abcd",要求输出反转后的字符串"dcba"。分析: A:键盘录入一个字符串。 B:定义一个新字符串。 C:倒着遍历源字符串,得到每一个字符。 a:length()和charAt()方法结合实现。 b:利用字符串类的转换功能toCharArray()方法把字符串转换为字符数组。 D:用新字符串...原创 2018-04-17 11:54:32 · 434 阅读 · 0 评论 -
int数组转换为一个指定格式的字符串
int数组转换为一个指定格式的字符串:把数组中的数据按照指定个格式拼接成一个指定格式的字符串1、需求:把 int 数组中的数据按照指定个格式拼接成一个字符串。举例: int[] arr = {1,2,3}; 输出结果: "[1, 2, 3]" 分析: A:定义一个字符串对象,只不过内容为空 B:先把字符串拼接一个"[" C:...原创 2018-04-17 11:16:04 · 2206 阅读 · 0 评论 -
把一个字符串的首字母转成大写其余为小写
把一个字符串的首字母转成大写其余为小写。字符串中字符的大小写转换和拼接。1、需求:把一个字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符)。举例:helloWORLD结果:Helloworld 分析: A:先获取第一个字符 B:获取除了第一个字符以外的字符 C:把A转成大写 D:把B转成小写 E:C拼接D2、代码演示:package cn.itcast_...原创 2018-04-17 10:17:57 · 10425 阅读 · 1 评论 -
字符串中字符的遍历
字符串中字符的遍历:字符串遍历1、需求:给定一个字符串,遍历输出其中的每一个字符。/**需求:给定一个字符串,遍历输出该字符串中的每一个字符。(1) char charAt(int index);(2) int length(); */package cn.itcast_06;public class StringDemo2 { public static void main(...原创 2018-04-17 09:45:55 · 9243 阅读 · 0 评论 -
猜数字小游戏和模拟用户登录的字符串练习
猜数字小游戏和模拟用户登录的字符串练习(1)这是猜数字小游戏package cn.itcast_05;import java.util.Scanner;/** * 这是猜数字小游戏 * * @author asus * */public class GuessNumberGame { private GuessNumberGame() { } public stat...原创 2018-04-16 23:16:33 · 328 阅读 · 0 评论 -
二分查找
二分查找1、查找: (1)基本查找:数组元素无序(从头找到尾)。 (2)二分查找(折半查找):前提是数组元素有序。 分析: A:定义最大索引和最小索引 B:计算出中间索引 C:拿中间索引的值和要查找的值进行比较 相等:就返回当前的中间索引 不相等: 大了 ...原创 2018-04-18 15:29:13 · 284 阅读 · 0 评论 -
数组排序——归并排序
数组排序——归并排序1、数组排序之归并排序 归并操作(merge),也叫归并算法,指的是将两个已经排序的序列合并成一个序列的操作。 如:设有数列 {6,202,100,301,38,8,1} 初始状态: [6] [202] [100] [301] [38] [8] [1] 比较次数: i=1 ...原创 2018-04-18 14:58:26 · 1138 阅读 · 0 评论 -
数组排序——堆排序
数组排序——堆排序1、数组排序之堆排序: 堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。(1)用大根堆排序的基本思想: A:先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区。 B:再将关键字最大的记录R[1](即堆顶)和无序区的最后一个 记录R[n]交换,由此得到...原创 2018-04-18 11:16:34 · 3775 阅读 · 0 评论 -
数组排序——快速排序
数组排序——快速排序1、数组排序之快速排序 一趟快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j=j-1即j--),找到第一个小于key的值A[j],A[i]与A[j]交换; 4)从...原创 2018-04-18 09:55:25 · 5530 阅读 · 0 评论 -
数组排序——希尔排序
数组排序——希尔排序1、数组排序之希尔排序 先取一个小于n(数组长度n )的整数d1作为第一个增量,把文件的全部记录分成(n除以d1)个组。所有距离为d1的倍数的记录放在同一个组中,先在各组内进行直接插入排序; 然后,取第二个增量d2<d1,重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<…<d2<d1),即:所有记录放在同一...原创 2018-04-18 09:38:38 · 1376 阅读 · 0 评论 -
数组排序——插入排序
数组排序——插入排序1、数组排序之插入排序原理:将n个元素的数列分为已有序和无序两个部分,如插入排序过程示例下所示: {{a1},{a2,a3,a4,…,an}} {{a1⑴,a2⑴},{a3⑴,a4⑴ …,an⑴}} {{a1(n-1),a2(n-1) ,…},{an(n-1)}} 每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找...原创 2018-04-18 08:38:27 · 5997 阅读 · 0 评论 -
数组排序——选择排序
数组排序——选择排序1、数组排序之选择排序原理:从0索引开始,依次和后面元素比较,小的往前放,第一次完毕,最小值出现在了最小索引处。依次循环。2、代码演示package cn.itcast_01;public class ArraySort_selectSort { public static void main(String[] args) { // 定义一个数组 int[] ar...原创 2018-04-17 23:29:42 · 797 阅读 · 0 评论 -
数组排序——冒泡排序
数组排序——冒泡排序、一维数组的遍历1、数组排序之冒泡排序原理:相邻元素两两比较,大的往后放,小的往前纺,第一次完毕,最大值出现在了最大索引处。依次循环。2、代码演示:package cn.itcast_01;public class ArraySort_bubbleSort { public static void main(String[] args) { // 定义一个数组 i...原创 2018-04-17 23:20:28 · 476 阅读 · 0 评论 -
数字加密
数字加密要求:某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加密规则如下:首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。复杂化代码:/* 某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全, 在传递过程中...原创 2018-04-09 10:36:14 · 1894 阅读 · 0 评论 -
打印杨辉三角
打印杨辉三角:行数可以从键盘输入/* 需求:打印杨辉三角形(行数可以键盘录入) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 分析:看这种图像的规律 A:任何一行的第一列和最后一列都是1 B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 步骤: A:首先定义一个二维数组。行数如果是n,我们把列...原创 2018-04-09 10:06:00 · 2223 阅读 · 0 评论 -
二维数组的一些操作
二维数组的一些操作:二维数组的遍历、1、二维数组的遍历操作:外循环控制的是二维数组的行数(其实就是二维数组的长度),内循环控制的是二维数组的列数(其实就是一维数组的长度)。/* 需求:二维数组遍历 外循环控制的是二维数组的长度,其实就是一维数组的个数。 内循环控制的是一维数组的长度。*/class Array2Test { public static void main(String...原创 2018-04-09 09:48:47 · 787 阅读 · 0 评论 -
一维数组的一些操作
一维数组的一些操作:一维数组的逆序、一维数组的遍历、一维数组中的最值问题:最大值和最小值、一维数组的数组查表法、一维数组的数组元素查找1、一维数组的逆序/* 数组元素逆序 (就是把元素对调) 分析: A:定义一个数组,并进行静态初始化。 B:思路 把0索引和arr.length-1的数据交换 把1索引和arr.length-2的数据交换 ... 只要做到ar...原创 2018-04-08 22:58:28 · 839 阅读 · 0 评论 -
把一个文本文件中的字符串排序后输出到另一个文本文件中
把一个文本文件中的字符串排序后输出到另一个文本文件中 * 已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” * 请编写程序读取数据内容,把数据排序后写入ss.txt中。 * * 分析: * A:把s.txt这个文件给做出来 * B:读取该文件的内容,存储到一个字符串中 * C:把字符串转换为字符数组 ...原创 2018-05-31 15:18:39 · 5839 阅读 · 0 评论 -
TreeSet集合存储自定义对象2
TreeSet集合存储自定义对象——比较器方式——匿名内部类方式1、TreeSet集合存储自定义对象——比较器方式(1)学生类package cn.itcast_07;public class Student { private String name; private int age; public Student() { super(); } public Student...原创 2018-05-05 15:42:30 · 369 阅读 · 0 评论 -
TreeSet集合存储自定义对象
TreeSet集合存储自定义对象(两个不同需求的案例)1、TreeSet存储自定义对象并保证 元素的排序和元素的唯一。 A: 你没有告诉我们怎么排序。 自然排序,按照年龄从小到大排序。 B: 元素什么情况算唯一你也没告诉我。 成员变量值都相同即为同一个元素。2、代码演示1——存储学生对象:按照元素的年龄排...原创 2018-04-25 10:58:40 · 3577 阅读 · 0 评论 -
键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值。
* 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值。 * * 分析: * A: 创建键盘录入数据对象 * B: 键盘录入多个数据,我们不知道多少个,所以用集合存储 * C: 以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了 * D: 把集合转成数组 * E: 对数组排序 * ...原创 2018-04-23 20:43:46 · 2559 阅读 · 0 评论 -
二维集合ArrayList集合遍历
二维集合ArrayList集合遍历1、需求我们班有学生,每一个学生是一个对象。所以我们可以使用一个集合表示我们班级的学生:ArrayList<Student>但是呢,我们旁边还有班级,每个班级也是一个 ArrayList<Student>。而我现在有多个 ArrayList<Student>。也要用集合存储,怎么办呢?就是这个样子的:ArrayList<A...原创 2018-04-23 20:15:19 · 21045 阅读 · 4 评论