- 博客(50)
- 收藏
- 关注
原创 第二十一章总结
java.net 包中的 ServerSocket 类用于表示服务器套接字,其主要功能是等待来自网络上的“请求”它可通过指定的端口来等待连接的套接字。如果多台客户机同时提出连接请求,服务器套接字会将请求连接的客户机存入列队中,然后从中取出一个套接字,与服务器新建的套接字连接起来。TCP协议是一种以固接连线为基础的协议,它提供两台计算机间可靠的数据传送。通常,0~1023的端口数用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用1024以上的端口数,以避免端口号与另一个应用或系统服务所用端口冲突。
2023-12-08 08:20:39
74
原创 UDP协议实现群聊
centerTextArea.append(p.getAddress().getHostAddress()+":"+((InetSocketAddress)p.getSocketAddress()).getPort()+"对我说:\n"+new String(p.getData(),0,p.getLength())+"\n\n");JOptionPane.showMessageDialog(liaotian.this,"监听未成功");stateLB.setText("已在"+port+"端口监听");
2023-12-07 13:08:50
67
原创 TCP协议实现一对一聊天
System.out.println("A说:"+mr);System.out.println("服务端已启动等待连接");System.out.println("B说:"+mr);System.out.println("连接成功!System.out.println("连接成功!运行服务端代码后,再运行客户端代码,即可实现。* 用于接收对方消息。* 用于接收对方消息。* 用于发送消息线程类。*用于接收消息线程类。
2023-12-07 13:07:35
68
原创 第二十章总结
如果线程是因为使用了sleep()或wait()方法进入了就绪状态,可以使用Thread类中interrupt()方法使线程离开run()方法,同时结束线程,但程序会抛出InterruptedException异常,用户可以在处理该异常时完成线程的中断业务处理,如终止while循环。Thread类中提供了一种礼让方法,使用yield()方法表示,它只是给当前正处于运行状态的线程一个提醒,告知它可以将资源礼让给其他线程,但这仅是一种暗示,没有任何一种机制保证当前线程会将资源礼让。
2023-11-29 16:25:31
92
原创 java游戏制作-王者荣耀游戏
/ 存放将要删除的元素。System.out.println("技能一冷却时间: " + coolDownTimeOne / 1000);System.out.println("三技能冷却时间: " + three / 1000);System.out.println("三技能冷却时间: " + three / 1000);System.out.println("一技能冷却时间: " + one / 1000);System.out.println("二技能冷却时间: " + two / 1000);
2023-11-29 16:22:32
169
原创 java游戏制作-飞翔的鸟游戏
原文链接:https://blog.csdn.net/OYFYO/article/details/134560305。
2023-11-23 12:15:54
150
原创 java游戏制作-拼图游戏
首先创建一个Java项目命名为puzzlegame。先在Java项目中创建图片文件夹,将图片导入其中。再在src中创建一个包,用来制作主界面。
2023-11-19 22:17:02
150
原创 Java贪吃蛇
然后,创建贪吃蛇游戏的Java项目命名为。再在src文件下创建两个包,一个命名为。最后,分别在两个包下创建两个类命名为。最后,分别在两个包下创建两个类命名为。,并在这个项目里创建一个。,将图片素材导入文件夹。
2023-11-17 11:06:16
158
原创 第十九章总结
要绘制指定形状的图形,需要先创建并初始化改图形类的对象,且这些图形类必须是Shape接口的实现类;默认情况下,Graphics类使用的画笔属性是粗细为1个像素的正方形,而Graphics2D类可以调用setStroke()方法设置画笔的属性。Graphics2D类提供了drawString()方法,使用该方法可以实现图形上下文的文本绘制,从而实现在图片上显示文字的功能。可以使用Graphics2D类提供的shear()方法设置绘图的倾斜方向,从而使图像实现倾斜的效果。2.Graphics2D类。
2023-11-17 09:07:09
98
原创 第十八章总结
在创建窗体后,先调用getContentPane()方法将窗体转换为容器,再调用add()方法或者remove()方法向容器中添加组件或者删除容器中的组件。* 创建按钮button_2置于面板contentPane中,设置按钮的背景色、位置、宽高以及按钮中的字体位置、内容、样式。* 创建按钮button_3置于面板contentPane中,设置按钮的背景色、位置、宽高以及按钮中的字体位置、内容、样式。
2023-11-09 21:16:26
43
原创 第十六章总结
在定义Annotation类型时,也需要用到用来定义接口的interface关键字,但需要在interface关键字前加一个“@”符号,即定义Annotation类型的关键字为@Annotation,这个关键字的隐含意思是继承了java.lang.annotation.Annotation接口。通过这个结果可以看出,在反射权限为private和protect的成员变量时,需要执行setAccessible()方法,并将人口参数设为true,否则不允许访问。当反射有参数的构造方法时将输方法赋予的相应值。
2023-11-02 23:41:57
25
原创 第十五章总结
FileReader类顺序地读取文件,只要不关闭流,每次调用read()方法就顺序地读取源中其余内容,直到源的末尾或流被关闭。mark(int readlimit)方法:在输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取的字节数。返回0~255的int字节值。DataOutputStream(OutputStream out):创建一个新的数据输出流,将数据写入文件的方法。read(byte[] b):从输入流中读入一定长度的字节,并以整数的形式返回字节数。
2023-10-19 21:29:44
30
原创 第十四章总结
当函数式接口的抽象方法需要实现复杂逻辑而不是返回一个简单的表达式的话,就需要在lambda表达式中使用代码块。2.lambda表达式只是描述了抽象方法是如何实现的,在抽象方法没有被调用前,lambda表达式中的代码并没有被执行,所以运行抽象方法之前类成员变量的值不会发生变化。泛型是Java开发经常使用到的功能,“::”操作符支持引用带泛型的方法。3.只要抽象方法被调用,就会执行lambda表达式中的代码,类成员变量的值就会被修改。指的是仅包含一个抽象方法的接口,接口中的方法简单明了地说明了接口的用途。
2023-10-15 19:12:51
29
原创 第十七章总结
版权声明:本文为CSDN博主「OYFYO」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/OYFYO/article/details/133752288。WHERE 条件表达式 GROUP BY 字段名 HAVING 条件表达式(指定分组的条件)UPDATE 数据表名 SET 字段名=新的字段值 WHERE 条件表达式。insert into 表名[(字段名1,字段名2...)]1.DriverManager类。
2023-10-15 19:10:28
24
原创 学生选课系统基础版
使用set中的contains方法,set中调用contains(obj)方法,contains方法的实现机制:先调用object中的hashcode方法,再调用object中的equals方法。// 定义数组存放要删除的值。List中的contains()方法借Map中的containsValue()方法调用equals()方法来进行比较。
2023-10-07 12:28:55
35
原创 学生选课系统基础版
使用set中的contains方法,set中调用contains(obj)方法,contains方法的实现机制:先调用object中的hashcode方法,再调用object中的equals方法。// 定义数组存放要删除的值。List中的contains()方法借Map中的containsValue()方法调用equals()方法来进行比较。
2023-09-25 20:45:46
72
原创 第十三章总结
在泛型机制中,提供了类型通配符,其主要作用是在创建一个泛型类对象时限制这个泛型类的类型实现或继承某个接口或类的子类。JDK中的集合接口、集合类都被定义了泛型,其中List<E>的泛型E实际上就是element元素的首字母,Map<K,V>的泛型K和V就是key键和value值的首字母。默认可以使用任何类型来实例化一个泛型类对象,但Java中也对泛型类实例的类型作了限制。(1)泛型的类型参数只能是类类型,不可以是简单类型,如A<int>这种泛型定义就是错误的。其中,T是泛型的名称,代表某一种类型。
2023-09-16 20:09:12
26
原创 用Java实现扑克牌游戏——简易炸金花
首先新建洗牌后的牌库集合对象与揭牌人的集合对象,然后通过add()方法将揭牌得到的扑克牌添加到对应的揭牌人集合对象中。最后返回改变后的牌库集合对象。首先新建对象,并进行买牌操作,输出所有的52张扑克牌,再进行洗牌并输出结果,然后进行揭牌操作,最后通过for循环输出揭牌的结果,并输出除揭牌已获取的扑克牌外剩余的扑克牌。首先给予扑克牌4种不同的花色,再为所有扑克牌创建新的扑克牌集合对象,通过两次for循环获取除大小王外的其他52张牌,并将其添加到该集合中,最后返回所有52张扑克牌。二.代码(注释)呈现。
2023-09-16 20:07:29
145
原创 学习笔记——Java入门第三季
代码中的 “yyyy-MM-dd HH:mm:ss” 为预定义字符串, yyyy 表示四位年, MM 表示两位月份, dd 表示两位日期, HH 表示小时(使用24小时制), mm 表示分钟, ss 表示秒,这样就指定了转换的目标格式,最后调用 format() 方法将时间转换为指定的格式的字符串。Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();
2023-09-07 22:10:37
22
原创 学习笔记——Java入门第二季
再用String调用format()方法,将有占位符的字符串变量和String类实例的对象传递到format方法中。getOwner()/setOwner()方法并不是语法要求,只是利用了Java中方法的特性访问私有成员变量。通过对一段可以实现特定功能的代码进行简单的包装,形成方法,让程序可以反复去调用同一个方法,来反复实现这个功能。解释:因为w24h()方法返回的就是一个List类型的数据集合,所以,返回的数据集合可以实例化List<HourWeather> 的对象。占位符:%类型缩写。
2023-09-07 22:05:33
21
原创 学习笔记——Java入门第一季
该段代码的含义是:如果 score 值大于90,则奖励一个 Iphone 5s ,当 score 值小于等于 90 时,先判断 score 是否大于 70 ,如果 score 是介于 70--90 之间,则奖励一个红米,如果成绩小于等于 70 ,则罚做 500 个俯卧撑。在上面的代码中创建一个长度为 2 的数组,因此数组下标范围是 0 到 1 ,而程序中下标出现了 2 ,即 scores[2] ,超过了范围,造成数组访问越界。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。
2023-09-07 22:02:23
28
原创 java复习视频
一般的,在try、catch语句中,try语句中不会只产生一种异常,那么对异常类型的匹配catch语句就不会只有一条,那么如果在catch语句内的异常类型有父子关系,那么父类异常的catch语句必须放置在子类异常的catch语句下面。在之前的文章中,已经提到过了,在Sting类中它的存储数据的数组是被final修饰了的,所以说在Java中的String类是不可变的,也就是说,一旦创建了一个String对象,它的值就不能被更改。try代码块内包含可能发生异常的代码,catch代码块用于捕获并处理异常。
2023-06-07 11:09:29
26
原创 第十一章总结
一个Boolean类型的对象只包含一个类型为boolean的字段。对于数值型的包装类,它们有一个共同的父类——Number类,该类是一个抽象类,它是Byte、Integer、Short、Long、Float和Double类的父类,其子类必须提供将表示的数值转换为byte、int、short、long、float和double的方法。BigDecimal类类型的数字可以用来做超大的浮点型的运算,如加、减、乘、除等,但是在所有的运算中除法是最复杂的,因为在除不尽的情况下商小数点后的末位的处理是需要考虑的。
2023-05-26 13:14:21
33
原创 第十章总结
创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。compareTo()方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将String对象表示的字符序列与参数字符串所表示的字符序列进行比较。indexOf()方法返回的是搜索的字符或字符串首次出现的位置,lastIndexOf()方法返回的是搜索的字符或字符串最后一次出现的位置。该方法使用指定的原语言环境、格式字符串和参数返回一个格式化字符串,格式化字符串,格式化后的新字符串使用其指定的语言环境。
2023-05-13 20:26:23
30
原创 第九章总结
(3)如果在当前抛出异常的方法中处理异常,可以使用try-catch语句块捕获并处理,否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。完整的异常处理语句一定要包含finally语句,无论程序中有无异常发生,并且无论之前的try-catch语句块是否顺利执行完毕,都会执行finally语句。在Java中,提供了一些异常类用来描述经常发生的异常。在Java中,如果某个方法抛出异常,既可以在当前方法中进行捕捉,而后处理该异常,也可以将异常向上抛出,交由方法调用者来处理。
2023-04-28 03:25:16
55
原创 第二篇Java核心技术复习博客
所谓类的封装是指在定义一个类时,将类中的属性私有化,即使用private关键字来修饰,私有属性只能在它所在类中被访问,如果外界想要访问私有属性,需要提供一些使用public修饰的公有方法,其中包括用于获取属性值的getxx方法和设置属性值的setxx方法。在Java中,定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。3.在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类,例如C类继承自B类,而B类又可以去继承A类,这时,C类也可称作A类的子类。例如下面这种情况是允许的。
2023-04-22 11:35:25
35
原创 第八章总结
Java中每个接口或类都来自不同的类包,无论是Java API中的类与接口还是自定义的类与接口,都需要隶属于某一个类包,这个类包包含了一些类和接口。在使用import关键字时,可以指定类的完整描述,如果为了使用包中更多的类,可以在使用import关键字指定时在包指定后加上*,这表示可以在程序中使用该包中所有类。一个完整的类名需要包名与类名的组合,每个类都隶属于一个类包,只要保证同一类包中的类不同名,就可以有效地避免同名类冲突的情况。如果在类中再定义一个类,则将在类中再定义的那个类称为内部类。
2023-04-21 22:30:21
34
原创 Java的第七次作业
9.人工包装的水果与普通水果的价格。4.计算机械钟和石英手表的时间。5.多功能参数(方法的重载)6.输出圆形和矩形的面积。7.定义人类的介绍方式。1.修改手机默认语言。
2023-04-04 18:24:23
31
原创 第七章总结
是Object类定义的方法,它会返回对象执行时的Class实例,然后使用此实例调用getName()方法可以取得类的名称。两者的区别在于:“==”比较的是两个对象引用内存地址是否相同,而equals()方法比较的是两个对象的实际内容。所以Baby想要打开电视,就只能找爸爸来打开了。区分:子类重写父类的方法——返回参数相同,方法名相同,传入参数相同,只有方法体不同。Object类是比较特殊的类,它是所有类的父类,是Java类层中最高层类。方法的重写:返回参数相同,方法名相同,传入参数相同,方法体不同。
2023-04-04 18:16:56
27
原创 第七章总结
1、类的继承Java语言每个类只能继承一个父类。extends——继承父类 和普通类写法相同public class 父类类名{子类 需要继承父类public class 子类类名 extends 父类类名{所有类的构造方法第一行都有一个隐藏的“super();作用是在执行该构造方法之前调用其父类的构造方法。
2023-04-02 11:22:15
30
原创 Java的第七次作业:第一篇Java基础知识复习博客
(4)在为一个float类型的变量赋值时需要注意一点,所赋值的后面一定要加上字母”F“(或 ”f“),而为double类型的变量赋值时,可以在所赋值的后面加上字符”D“(或”d“),也可不加。2.下面的代码中,第一行代码的作用是定义了两个变量x和y,也就相当于分配了两块内存单元,在定义变量的同时为变量x分配了一个初始值0,而变量y没有分配初始值。3.第二行代码的作用是为变量赋值,在执行的第二行代码时,程序首先取出变量x的值,与3相加后,将结果赋值给变量y,此时变量x和y在内存中的状态发生了变化。
2023-03-26 18:22:34
98
原创 第六章总结
一个成员方法可以有参数,这个参数可以是对象,也可以是基本数据类型的变量,同时成员方法有返回值和不返回任何值的选择,如果方法需要返回值,可以在方法体中使用return关键字,使用这个关键字后,方法的执行将被终止。在Java语言中,类对象的行为是以方法的形式定义的,对象的属性是以成员变量的形式定义的,所以类包括对象的属性和方法。一个类处于继承体系中,它既可以是其他类的父类,为其他类提供属性和行为,也可以是其他类的子类,继承父类的属性和方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。
2023-03-26 18:19:34
34
原创 第五章总结
注意这里与冒泡排序的区别,不是交换相邻元素,而是把满足条件的元素与指定的排序位置元素交换(如从最后一个元素开始排序),这样排序好的位置逐渐扩大,直至整个数组都变成已排序好的格式。声明数组后,还不能立即访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型,要想真正使用数组,还要为它分配内存空间。基本思想:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底层上升到顶部。
2023-03-17 16:27:35
57
原创 第四章总结
则不执行if条件之后的语句。过程:1->2->条件真->2->条件真->...->2->条件假->3。过程:1->条件真->2->...条件真->2->条件假->3。3->条件2真->...->3->条件2真->3->条件2真->...->3->条件2真->2->条件1真->3->...->条件1真。->3->条件1假->4->条件2假->5。->3->条件1假->4->条件2真->->3->条件1假->4->条件2真->2->条件1真->3->...条件1真。2->条件1真->3->...条件1真。
2023-03-17 16:26:10
32
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人