自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Java 实现TCP一对一聊天,UDP协议实现群聊

1.3调用服务器端Socket的accept()函数,等待客户端的连接,每连接到一个客户端,线程池给相应的客户端分配一个线程。1.5客户端将信息发送给服务器端,当服务器端传来的信息符合“@私聊对象:私聊信息”的格式时,服务器端认为这是私聊信息。2.3 封装客户端Socket的getInputStream()函数,获得客户端Socket的输入流接受服务器端发来的信息,封装Socket的getOutputStream()函数,获得Socket的输出流向服务器端发送信息。并通知在线的每个客户端,某人已下线。

2023-12-07 10:17:27 228

原创 Java第二十一章 :网络通信

java.net 包中的 ServerSocket 类用于表示服务器套接字,其主要功能是等待来自网络上的“请求”,它可以通过指定的端口来等待连接的套接字。队列的默认大小是 50。Java 已经将网络程序所需要的元素封装成不同的类,用户只要创建这些类的对象,使用相应的方法,即使不具备有关的网络支持,也可以编写出高质量的网络通信程序。网络协议规定了计算机之间连接的物理、机械(网络与网卡的连接规定)、电气(有效的电平范围)等特征,计算机之间的相互寻址规则,数据发送冲突的解决方式,长数据如何分段传送与接收等内容。

2023-12-05 23:27:16 216

原创 Java第二十章 ——多线程

是指接受后台线程服务的线程,其实前台后台线程是联系在一起,就像傀儡和幕后操纵者一样的关系。在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线程之前结束,但是如果主线程处理完其他的事务后,需要用到子线程的处理结果,也就是主线程需要等待子线程执行完成之后再结束,这个时候就要用到join()方法了。join是Thread类的一个方法,启动线程后直接调用,即join()的作用是:“等待该线程终止”,这里需要理解的就是该线程是指的主线程等待子线程的终止。

2023-11-27 21:10:03 134

原创 Java游戏之王者荣耀

Java游戏之王者荣耀GameFrame类所需图片:GameObject类Turret类所需图片:TurretBlue类TurretRed类Champion类所需图片:单个:move包:

2023-11-26 01:04:46 282

原创 Java游戏之飞翔的小鸟

(3)屏幕出现闪烁,解决闪烁问题 : 用双缓冲,就是将内容绘制到 一张图片上,然后再显示出来。需要掌握 面向对象的使用以及了解 多线程,IO流,异常处理,一些java基础等相关知识。(4)让障碍物显示出来,并且让障碍物可以移动起来。(1)先让窗口显示出来,然后绘制 游戏的背景。(2)让小鸟显示在屏幕中,并且可以上下飞。GameApp 类 作为 游戏启动类。(2)main 包 : (游戏主要类)(6)绘制刚开始的页面和死亡后的页面。(3)util 包 :(游戏工具类)(1)app 包 :(游戏启动类)

2023-11-22 20:49:01 103

原创 Java 之拼图小游戏

在上面的代码可以看到,外循环我用来表示行数,内循环表示列数,这个嵌套循环大致意思就是当我开始循环是i = 0表示第一行,然后 j 表示列数,j 逐渐增加, 表示列数逐渐增加, 表现在setBounds方法里的x逐渐增加,并且是逐级增加105, y又恰好是0, 刚好满足我们的图片放置规律, 第一行图片添加完之后, i 自增表示第二行,然后又执行内循环, 添加第二行的4张图片,然后继续循环知道图片所有图片添加完成。这个方法可以传递一个int类型的参数,这个方法有四种关闭模式,分别对应数字0, 1, 2, 3;

2023-11-18 00:19:38 294

原创 第十九章Java绘图

在项目中创建DrawCirele类,使该类继承JFrame类成为窗体组件,在类中创建继承JPanel类的DrawPanel内部类,并重写paint()方法,绘制有5个圆形组成的图案。Graphics2D类是在继承Graphics类的基础上编写的,包含了Graphics类的绘制方法,并添加了更强的功能,在绘制绘图类时推荐使用,Graphics2D类可以分别使用不同的类,表示不同的形状。Graphics类封装了JAVA支持的基本绘图操作所需的状态信息,主要包括颜色,字体,画笔,文本,图像等。

2023-11-15 20:10:56 83

原创 Java之俄罗斯方块小游戏

然后是方块本身,尽管它们的形状不统一,但是它们可以用一个4X4比例的方块所包围,因此用16个字节就可以把一个 方块的信息保存者,俄罗斯方块游戏的逻辑是比较简单的。但是,俄罗斯方块游戏的界面被等均的分为若干行和若干列,因此方块的本质就是占用了多少个单元。(2)方块是需要自动的往下掉的,它在掉的过程中,还需要判断它是否与周围的环境是否发生了冲突,能不能继续往下。它的诞生是需要用随机原理的,另外,它如何初始化的被放置在游戏界面的顶部?(3)方块本身还可以变形,变形以后的方块具有不同的数据,判断的方式又会不一样。

2023-11-14 16:49:44 66

原创 Java小游戏之——贪吃蛇

只有当我们开始游戏的时候,我们会按下空格,这个时候方向direction就被赋值为空格.用if语言判断direction是否为空格,如果是空格说明游戏开始,小蛇可以开始向右移动了,如果direction不是空格,即进行了转向,并按照转向后的方向跑,那么我们的自动向右跑的条件就不会符合,也就不会自动向右跑了.我们可以通过定时器和事件监听器的组合使用,实现对定时器内线程任务的不断检测,进而是实现小蛇的不间断移动以及各种判定. 我们要明确监听器和定时器它们各自的作用.如何实现小蛇的不间断移动?

2023-11-14 16:34:24 67

原创 Java第十八章 Swing程序设计

具体如下:setBounds(int x , int y , int width , int length): 设置窗体左上角在屏幕中坐标为(x , y),窗体的宽度为 width,窗体的高度为height。使用绝对布局首先使用 Container.seLayout(null)方法取消容器的布局管理器,然后再使用 Component.setBounds(int x,int y,int width,int height)方法设置每个组件在容器中的位置和大小。使用流布局管理器摆放组件时,组件被从左到右摆放。

2023-11-07 23:20:54 106

原创 第十六章 反射与注解总结

在定义Annotation类型时,也需要用到来定义接口的interface关键字,但需要在interface关键字前加一个“@”符号,既定义Annotation类型的关键字为@interface,这个关键字的隐含意识是继承了java.lang.annotation.Annotation接口。如果是访问指定的方法,需要根据该方法的名称和入口参数的类型来访问。通过Java的反射机制,程序员可以更深入控制程序的运行过程,例如,可在程序运行时对用户输入的信息进行验证,还可以逆向控制程序的执行过程。

2023-10-30 23:22:03 41

原创 第十三章枚举类型与泛型

用户可以将一个枚举类型看作是一个类,它继承于java.lang.Enum类,当定义一个枚举类型时,每一个枚举类型成员都可以看作是枚举类型的一个实例,这些枚举类型成员都默认被 final、public、static修饰,所以当使用枚举类型成员时直接使用枚举类型名称调用枚举类型成员即可。例如,你可以定义一个枚举类型来表示不同的排序方式,然后在方法中使用这个枚举作为参数。表13.1 中列举了枚举类型中的常用方法。例如,你可以定义一个方法来获取一个枚举类型的列表,或者传递一个枚举类型的对象作为参数。

2023-10-25 20:12:37 42

原创 第十五章 I/O(输入/输出)

Java为字符文本的输入专门提供了一套单独的类,即Reader类,但Reader类并不是InputStream类的替换者,只是在处理字符串时简化了编程。File类的对象主要用来获取文件本身的一些信息,如文件所在的目录、文件的长度、文件读写权限等。设备上的数据无论是图片或者视频,文字,它们都以二进制存储的。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。QutputStream 类是字节输出流的抽象类,此抽象类是表示输出字节流的所有类的超类。

2023-10-20 15:57:11 47

原创 17 . 数据库操作总结

函数式接口指的是仅包含一个抽象方法的接口,接口中的方法简单了明接口的用途,如线程接口Runnable、动作事件监听接口ActionListener等。<lambda表达式只是描述了抽象方法是如何实现的,在抽象方法没有被调用前,lambda表达式中的代码并没有被执行,所以运行抽象方法之前类成员变量的值不会发生变化。所有被lambda表达式实现的接口均为函数式接口。很多函数式接口的抽象方法是无参数的,如线程接口Runnble接口只有一个run()方法,这样的无参抽象方法在lambda表达式中使用"()"表示。

2023-10-15 18:38:11 27

原创 14章 lambda 表达式与交流处理

作用域:你可以在任何地方引用静态方法,包括在类的内部,其他类的内部,或者作为表达式的一部分。需要了解的是在实现 lambd表达式时可以按规则来简写lambda表达式:在小括号()内,如果只有一个形参,或者形象类型只有一种,那么形参类型可以省略在大括号内{},如果只有一条语句,那么 大括号可以省略、return可以省略、分号也可以省略。BaseStream 接口是最基础的接口,但最常见的是BaseStream 接口的一个子接口——Stream接口,基本上绝大多数的流处理都是在Stream 接口实现的。

2023-10-15 18:26:21 59

原创 学生管理系统 数据库版

查询student表中电话以182开头的所有学生信息(SQL要用到模糊查询like)查询student表中电话以139开头的所有学生信息(SQL要用到模糊查询like)2.创建student数据库表包含id,name姓名,tel电话,sex性别字段。修改student表中第5条数据,电话改为“13124235300。修改student表中第10条数据,姓名改为“大帅哥”查询student表中所有男性的学生信息。查询student表中所有女性的学生信息。查询student表中所有学生信息。

2023-10-06 21:08:22 50

原创 Java学生选课系统基础版

List是元素有序并且可以重复的集合,被称为序列List可以精确的控制每个元素的插入位置,或删除某个位置元素Arraylist——数组序列,是List的一个重要实现类ArrayList底层是由数组实现的。现实生活中:很多的事物凑在一起,数学中的集合:具有共同属性的事物的总体\nJava中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象。Collections工具类是 Java集合框架中,用来操作集合对象的工具类,也是Java集合框架的成员。注意:泛型集合可以添加泛型的子类型的对象实例。

2023-09-24 23:48:11 38

原创 Java—模拟扎金花

其次还需要了解到一个工具类,就是Collections类,该类的所有方法都是由 static 静态关键字修饰的,所以该类的所有方法都可直接使用 类名+. 的方式调用。Collections类是针对集合的一个工具类,里面的所有方法就是针对集合来写的。003CList>作为该方法的返回值,外层的List集合中代码每一个玩家,内层的List中代表玩家的扑克牌数。由于牌号内的序号是与牌盒中的牌一一对应的,那么将存储牌号的list集合打乱就可以达到洗牌的效果。大于0:玩家a的手牌 大于 玩家b的手牌。

2023-09-15 21:23:15 47

原创 12.集合类总结

常用的集合有List集合,Set集合和Map集合,其中List集合与Set集合继承了Colletcion接口,接口还提供了不同的实现类。<TreeSet类不仅实现了Set接口,还实现了java.util.SortedSet接口,因此TreeSet类实现的Set集合在遍历集合时按照自然顺序递增排序,也可以按照指定比较器排序,既可以通过比较器对用TreeSet类实现的Set集合实现的Set集合中的对象进行排序。Setj集合中的对象不按特定的方式排序,只是简单的把对象加入集合中,但Set集合中不能包含重复对象。

2023-09-13 15:27:04 30

原创 Java 入门第一季学习笔记总结

本章节主要讲解 Java 目前的应用、如何搭建 Java 开发环境、以及如何使用工具进行 Java 程序的开发,为以后的学习打下基础1-1Java的介绍与前景什么是JavaJava是一种广泛应用的计算机编程语言,特别适用于跨平台应用程序的开发。它是一种面向对象的编程语言,由Sun Microsystems开发。Java程序可以在多种平台上运行,从小型设备到大型服务器都可以。这主要归功于Java虚拟机(JVM),它是每一个平台上运行Java程序的机器。

2023-09-08 23:27:40 58

原创 Java入门(第三季)总结

Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理。代码中的 “yyyy-MM-dd HH:mm:ss” 为预定义字符串, yyyy 表示四位年, MM 表示两位月份, dd 表示两位日期, HH 表示小时(使用24小时制), mm 表示分钟, ss 表示秒,这样就指定了转换的目标格式,最后调用 format() 方法将时间转换为指定的格式的字符串。

2023-09-08 21:47:57 42

原创 Java(第二季)学习总结

例如:定义一个Shape类作为父类,定义一个Circle类和一个Rectangle类作为子类,它们都重写了Shape类的draw方法。继承是指子类可以继承父类的属性和方法,并且可以在子类中添加新的属性和方法或者重写父类的方法。对类中的成员变量进行封装在Java中,可以通过封装来控制对成员变量的读写访问。例如:定义一个Animal类作为父类,定义一个Dog类作为子类,Dog类继承了Animal类的属性和方法。继承:通过extends关键字实现继承,子类继承了父类的属性和方法,并可以添加自己的属性和方法。

2023-09-08 20:25:24 27

原创 第三篇Java核心技术复习博客

public(公共访问级别):这是一个最宽松的访问控制级别,如果一个类或者类的成员被public访问控制符修饰,那么这个类或者类的成员能被所有的类访问,不管访问类与被访问类是否在同一个包中。针对这种情况,Java中允许在方法的后面使用throws关键字对外声明该方法有可能发生的异常,这样调用者在调用方法时,就明确地知道该方法有异常,并且必须在程序中对异常进行处理,否则编译无法通过。在应用程序中经常会用到字符串,所谓字符串就是指一连串的字符,它是由许多单个字符连接而成的,如多个英文字母所组成的一个英文单词。

2023-05-28 20:18:52 289

原创 11.常用类库

在Java语言中,提供了一个执行数学基本运算的Math类,该类包括常用的数学运算方法,如三角函数方法,指数函数方法,对数函数方法,平方根函数方法等一些常用数学函数方法,初次此后,提供了一些常用的数学运算方法,如角函数方法、指数函数方法、对数函数方法、平方根函数方法等一些常用数学函数方法。但需要注意的是,角度与弧度的转换通常是不精确的。BigDecimal 类型的数字可以用来做超大的浮点数的运算,如加、减、乘、除等,但是在所有的运算中除法是最复杂的,因为在除不尽的情况下商小数点后的末位的处理是需要考虑的。

2023-05-20 01:37:00 70

原创 10.字符串总结

compareTo()方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将String对象表示的字符串序列与参数字符串所表示的字符串进行比较。inIdexOf()方法返回的是搜索的字符或字符串首次出现的位置,lastIdexOf()方法返回的搜索的字符串或字符串最后一次出现的位置。在正则表达式中,可以使用方法方括号起若干给字符来表示一元字符,该元字符可代表括号中的任何一个字符,例如,reg="[abc],这样字符串a4,b4,c4都是和正则表达式匹配的字符串。

2023-05-12 11:46:45 198

原创 第九章异常处理总结

由于Exception是所有异常类的父类,如果将catch(Exception e)语句块放在其他两个语句块的前面,后面的语句块将永远得不到执行,也就没有什么意义了,所以catch语句的顺序不可调换。有许多异常的例子,如数组溢出等。在例题9.3中,将可能出现异常的代码用try-catch语句块进行处理,当try语句块的语句发生异常时,程序就会跳转到catch语句块中执行,执行完catch语句块的程序代码后,将继续执行catch语句块后的其他代码,而不会执行try语句块中发生异常语句后面的代码。

2023-04-28 10:26:13 56

原创 第八章总结包和内部类

Java类包中提供了java.lang.Math类,而实例定义的为com.mr.Math类,可以看出在不同包定义相同类名也是没有问题的,所以在java中使用包可以有效管理各种功能的类。例如一个程序中同时使用到java.util.Date类与java.sql.Date类,如果在程序中不指定完整的类路径,编译器不会知道这段代码使用的是java.until类包中的Date类,所以需要在指定代码中给出完整的类路径。包在整个过程中起到了非常重要的作用,使用包可以有效的管理的类文件,解决了类崇明的问题。

2023-04-24 20:04:31 32

原创 第二篇Java核心技术复习博客

由此可见,两个对象的产生是相互独立的,改变了t2的i值,不会影响到t1的i值。test对象被创建出来时,就是一个对象的引用,这个引用在内存中为对象分配了存储空间,6.23节中介绍过,可以在构造方法中初始化成员变量,当创建对象时,自动调用构造方法,也就是说在Java语言中初始化与创建是被捆绑在一起的。类是构造对象时所依赖的规范,如一只鸟具有一-对翅膀,它可以用这对翅膀飞行,而基本上所有的鸟都具有翅膀这个特性和飞行的技能,这样具有相同特性和行为的- -类事物就称为类,类的思想就是这样产生的。

2023-04-24 20:01:16 57

原创 Java第七次作业

九. 人工包装的水果与普通水果的价格。四.计算机械钟和石英手表的时间。五.多功能参数(方法的重载)六.输出圆形和矩形的面积。七.定义人类的介绍方式。一.修改手机默认语言。

2023-04-05 23:29:15 37

原创 Java第七章总结

例如,已知JDK中的Java.lang包下的Math数学类和String字符串类都是由final关键字修饰的类,这两个类就无法做任何类的父类,如果这两个类出现在extends右侧就会发生编译错误,如图7.9所示。但是,运用向下转型,如果把一个较抽象的类的对象转换为一个较具体的对象,这样的转型通常会出现错误,例如,可以说某只鸟和鸽子。使用向上转型的过程中,父类的对象是否可以调用子类独特有的属性或者方法,例如四边形类是平行四边形的父类,用Ouadrangle表示四边形类,定义一个值为4的表示底边长度的变量。

2023-04-04 20:13:19 666

原创 课堂作业Dog(第六章)

第一题代码如下:第二题代码如下:运行结果如下:

2023-04-02 00:31:48 49

原创 Java第六章 :类和对象

2.将对象赋值为null,但垃圾系统只能回收new操作符创建的对象,某些对象不是通过new操作符在内存中获取存储空间的,这种对象无法被垃圾回收机制识别,在java中,提供了finalize()方法,这个方法是object类的方法,它被声明为protected,用户可以在自已的类中定义这个方法,如果用户在类中定义了finalize()方法,在垃圾回收会首先调用该方法,在下一次垃圾回收动作发生时,才真正回收被对象占用的内存。类就是对象的设计图!对象是事物存在的实体,如人,书桌,计算机,高楼大厦等。

2023-03-30 18:26:16 234

原创 Java第一篇Java基础复习

每个数组的索引都有一个范围,从0~length-1,在访问数组的元素时,索引不能超过这个范围,否则程序会报错2、在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现空指针异常。1,while循环语句while语句和if条件语句有点类似,都是根据条件判断来决定是否执行后面的代码,区别在于,while循环语句会反复地进行条件判断,只要条件成立,0内的执行语句就会执行,直到条件不成立while循环结束。

2023-03-29 02:22:57 211

原创 Java第六次作业

在计算学生的平均成绩时,需要进行强制类型转换,将被除数转换为浮点类型,不然小数点后的数会被直接舍去.

2023-03-18 08:55:28 33

原创 第五章数组总结

数组这个对象有它的属性,比如数组的长度等,基于这一点,我们可以不用刻意知道数组的长度,使用.length来获取数组的长度。在主方法中创建一维数组,将数组排序后输出,上述实例是对整型数组进行排序,java中的String类型数组的排序算法是根据字典编排顺序的,因此数字排在字母前面,大写字母排在小写字母前面。冒泡排序的基本思想是相对的元素值,如果满足条件就交换元素值,把较小的元素移动数组前面,把较大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部往上升顶部。

2023-03-18 01:05:00 115

原创 Java第五次作业

运行出来的结果可以找出规律,本题中由外循环只要循环2次,由内循环从下标1开始,然后执行数组到结尾。

2023-03-17 11:20:36 38

原创 Java第四章总结流程控制

continue的使用\ncontinue只能使用在循环结构中\ncontinue语句用于跳过其所在循环语句块的一次执行,继续下一次循环\ncontinue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环\n程序流程控制:return的使用\nreturn:并非专门用于结束循环的,它的功能是结束一个方法。1.n\n1.if语句\n\n if条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。

2023-03-11 20:05:47 117

原创 Java第四次作业

注意事项:\n 当for循环中的\"单次表达式\"、\"条件表达式\"和\"循环体语句\"都是选择项, 即可以缺省成只剩下“;for和while的区别\n\n条件控制语句所控制的自增变量,因归属for循环的语法结构中,for循环结束后,就不能再次被访问到了\n条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。做什么的,在编写程序的时候,我们的脑子要清楚每一句程序的功能是什么,做什么用的,要有一个大。体的框架,在编写程序的时候就方便多了。

2023-03-11 16:38:01 195

原创 Java第三次作业

1.计算牛奶中蛋白质的总量运行结果如下:2.输出肯德基一天售出汉堡的数量及金额代码:运行结果如下:3.将高铁速度km/h转换为m/s 代码如下:

2023-03-03 23:44:29 28

原创 第三章Java语言基础

Java的基本数据类型

2023-02-28 17:24:01 88

空空如也

空空如也

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

TA关注的人

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