JAVASE
JAVA的一些算法题和一些基础知识
遇安.YuAn
一点学习笔记。
展开
-
JAVA实现浪漫流星表白(520到了,快来看看程序员是怎么表白的吧)
本文实现的功能有:1、播放音乐2、自定义流星数量、飞行速度、光晕大小、流星大小3、自定义表白话语效果图:音乐类:import javazoom.jl.decoder.JavaLayerException;import javazoom.jl.player.Player;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;publi...原创 2022-05-20 08:45:00 · 16744 阅读 · 92 评论 -
JAVA实现经典游戏俄罗斯方块
本文代码来源于B站:尚学堂博主也在此基础上有些改动,添加了一点提示标签本文实现的功能有:1、初始化游戏窗口2、初始化游戏的界面3、初始化游戏的说明面板4、随机生成下落方块5、方块下落速度变化6、判断方块是否可以下落7、移除某一行方块上面的方块后让上面的方块掉落8、刷新移除某一行方块后的界面9、清除方块10、绘制方块11、键盘控制方块的移动、变形和快速下落12、游戏的暂停功能具体实现代码:import javax.swi...原创 2022-05-15 20:18:50 · 3781 阅读 · 43 评论 -
JAVA实现贪吃蛇游戏
最近在学GUI,然后又有读者希望我写一下相关的实战。刚好我又在B站上找到了一个关于GUI的学习视频,然后里面又刚好有这个实战,我便写了下来。注:代码来源为B站的一个up主:狂神。游戏主启动类:import javax.swing.*;//游戏主启动类public class startGame { public static void main(String[] args) { JFrame frame=new JFrame(); frame..原创 2022-05-06 09:00:00 · 3649 阅读 · 84 评论 -
JAVA之工厂模式、装饰模式
工厂模式(Factory Pattern) 是Java中最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种获取对象的方式。装饰模式指的是在不改变原类的基础上,动态的扩展一个类的功能。创建一个新类,包装原始类,从而在新类中提升原来类的功能。...原创 2022-07-16 10:00:00 · 242 阅读 · 0 评论 -
XML的创建、语法规则
XML是可扩展标记语言(eXtensible Markup Language)的缩写,它是一种数据表示格式,可以描述非常复杂的数据结构,常用于传输和存储数据。原创 2022-07-09 10:30:00 · 3065 阅读 · 2 评论 -
JAVA之动态代理
代理是指:某些场景下对象会找一个代理对象,来辅助自己完成一些工作,如明星的经纪人、买房的人找房产中介等。代理主要是对对象的行为额外做一些辅助操作。原创 2022-07-06 15:03:06 · 229 阅读 · 8 评论 -
JAVA之注解
Java注解(Annotation)又称Java标注,是JDK5引入的一种注释机制。Java语言中的类、构造器、方法、成员变量、参数等都可以被注解进行标注。原创 2022-07-03 10:00:00 · 3239 阅读 · 0 评论 -
JAVA反射之绕过编译阶段&&做企业级通用框架
反射是作用在运行时的技术,此时集合的泛型将不能产生约束了,此时是可以为集合存入其他任意类型的元素的原创 2022-06-05 20:46:55 · 294 阅读 · 7 评论 -
JAVA反射获取Constructor、Field、Method对象
在实际开发中,通过反射可以得到一个类的完整结构,包括类的构造方法、类的属性、类的方法,这就需要使用到java.lang.reflect包中的以下几个类:1、Constructor:表示类中的构造方法2、Field:表示类中的属性3、Method:表示类中的方法...原创 2022-06-04 10:00:00 · 4642 阅读 · 71 评论 -
JAVA之反射概述&&获取Class类对象
反射是指对于任何一个Class类,在“运行的时候”都可以直接得到这个类全部成分原创 2022-05-31 20:56:20 · 845 阅读 · 11 评论 -
JAVA之单元测试:Junit框架
单元测试:单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法的正确性目前测试方法是怎么进行的,存在什么问题?1、只有一个main方法,如果一个方法的测试失败了,其他方法测试会受到影响2、无法得到测试的结果报告,需要程序员自己去观察测试是否成功3、无法实现自动化测试Junit单元测试框架1、Junit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用Junit编写单元测..原创 2022-05-25 21:12:20 · 2676 阅读 · 23 评论 -
TCP实战案例之即时通信、BS架构模拟
即时通信是什么含义,要实现怎么样的设计?1、即时通信,是指一个客户端的消息发出去,其他客户端可以接收到2、之前我们的消息都是发给服务端的3、即时通信需要进行端口转发的设计思想4、服务端需要把在线的Socket管道存储起来5、一旦收到一个消息要推送给其他管道客户端:import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;impor.原创 2022-05-24 23:00:47 · 684 阅读 · 8 评论 -
UDP通信(原来不通过QQ、微信,还能这样聊天)
UDP协议实现一发一收客户端:import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class UDP_发送端 { public static void main(String[] args) throws Exception { //先要启动服务端,再启动客户端,不然会造成数据丢失 System...原创 2022-05-15 14:11:29 · 660 阅读 · 10 评论 -
JAVA实现QQ登录、注册等功能
本文主要应用的技术有:GUI、JDBC、多线程实现的功能具体如下:1、登录功能2、注册功能3、是否隐藏密码的选择以及实现功能4、选择性别功能5、密码与确认密码功能6、登录页面实时展示当前的时间7、当登录时用户名与密码在数据库中没有相匹配的数据,则会跳转到注册页面上去。8、同样,注册完毕后,数据会运用JDBC将数据写入数据库中,然后跳转回登录页面。...原创 2022-05-10 10:00:00 · 30293 阅读 · 239 评论 -
TCP通信从入门到实现
TCP协议往期回顾:TCP是一种面向连接,安全、可靠的传输数据的协议传输前,采用“三次握手”方式,点对点通信,是可靠的在连接中可进行大数据量的传输注意:在java中只要是使用java.net.Socket类实现通信,底层即是使用了TCP协议TCP通信的基本原理:客户端怎么发,服务端就应该怎么收客户端如果没有消息,服务端会进入阻塞等待Socket一方关闭或者出现异常,对方Socket也会失效或者出错注意:要先启动服务端,再启动客户端,不然会导致数据丢失!实现一.原创 2022-05-18 12:30:00 · 636 阅读 · 55 评论 -
网络通信之三要素
实现网络编程关键的三要素:IP地址:设备在网络中的地址,是唯一的标识端口:应用程序在设备中唯一的标识协议:数据在网络中传输的规则,常见的协议有UDP协议和TCP协议IP地址:IP(internet protocol):全称“互联网协议地址”,是分配给上网设备的唯一标志常见的IP分类为:IPv4和IPv6IP地址形式:公网地址和私有地址(局域网使用)192.168.开头的就是常见的局域网地址,范围即为192.168.0.0--192.168.255.255,专...原创 2022-05-13 13:29:21 · 634 阅读 · 5 评论 -
JAVA之JDBC的基础应用
什么是JDBC?JDBC的全称是JAVA数据库连接(Java Database Connectivity)。它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系型数据库,并使用SQL语句完成对数据库中数据的新增、删除、修改和查询等操作。JDBC的优点:不同的数据库(如MySQL、Oracle等),其内部处理数据的方式是不同的,如果直接使用数据库厂商提供的访问接口操作数据库,应用程序的可移植性就会变得很差。例如,用户在当前程序中使用的是MySQL提供的接口操作数据.原创 2022-05-09 19:38:39 · 667 阅读 · 7 评论 -
纯JAVA模拟、实现QQ简易聊天互动程序
实现的功能、步骤:1、定义JFrame窗体中的组件2、在构造方法中初始化窗体的组件3、使用网络编程完成数据的传输(TCP,UDP协议)4、实现发送按钮的监听点击事件5、实现回车键发送数据原创 2022-06-10 09:00:00 · 2646 阅读 · 71 评论 -
GUI(图形用户界面)之事件处理
Swing组件中的事件处理专门用于响应用户的操作,例如,响应用户的鼠标单击、按下键盘等操作。在Swing事件处理的过程中,主要涉及三类对象:1、事件源:事件发生的场所,通常是产生事件的组件,如窗口、按钮、菜单等。2、事件对象:封装了GUI组件上发生的特定事件(通常就是用户的一次操作)。3、监听器:负责监听事件源上发生的事件,并对各种事件做出相应处理(监听器对象中包含事件处理器)。实现Swing事件处理的主要步骤如下:1、创建事件源:除了一些常见的按钮、键盘等组件可以作为事件源外,..原创 2022-05-03 10:00:37 · 2612 阅读 · 89 评论 -
GUI(图形用户界面)之布局管理器
布局管理器: 组件在容器中的位置和尺寸是由布局管理器决定的,每当需要重新调整屏幕大小时,都要用到布局管理器。Swing常用的布局管理器有4种,分别是FlowLayout(流式布局管理器)、BorderLayout(边界布局管理器)、GridLayout(网格布局管理器)、GridBagLayout(网格包布局管理器)。Swing容器在创建时都会使用一种默认的布局管理器,在程序中可以通过调用容器对象的setLayout()方法设置布局管理器,通过布局管理器可自动进行组件的布局管理。 Flow...原创 2022-05-01 10:00:00 · 4476 阅读 · 50 评论 -
GUI(图形用户界面)之JFrame&&JDialog(创建窗体)
GUI全程是Graphical User Interface,即图形用户界面。顾名思义,GUI就是可以让用户直接操作的图形化界面,包括窗口、菜单、按钮、工具栏和其他各种图形界面元素。目前,图形用户界面已经成为一种趋势,几乎所有的程序设计语言都提供了GUI设计功能。 Java针对GUI设计提供了丰富的类库,这些类分别位于java.awt和javax.swing包中,简称为AWT和Swing。AWT引入了大量的Windows函数,因此称为中重量级组件。Swing是以AWT为基础构建起来的轻量级的图形...原创 2022-04-30 10:00:00 · 2680 阅读 · 65 评论 -
JAVA中的多线程之定时器&&一些面试题
定时器:定时器是一种控制任务延时调用,或者周期调用的技术作用:闹钟、定时邮件发送。定时器的实现方式一:TimerTimer定时器的特点和存在的问题:1、Timer是单线程,处理多个任务按照顺序执行,存在延时与设置定时器的时间有出入2、可能因为其中的某个任务的异常使Timer线程死掉,从而影响后续任务执行import java.util.Date;import java.util.Timer;import java.util.TimerTask;p...原创 2022-04-29 07:30:00 · 804 阅读 · 37 评论 -
JAVA之线程池处理任务
1、线程池处理Runnable任务import java.util.concurrent.*;public class 多线程_5线程池处理Runnable任务 { public static void main(String[] args) { //线程池处理Runnable任务 //创建线程池对象 /* public ThreadPoolExecutor(int corePoolSize,//核心线...原创 2022-04-28 07:15:00 · 1843 阅读 · 17 评论 -
JAVA之线程通信的实现案例
public class 多线程_5线程通信 extends Thread{ public static void main(String[] args) { //定义线程类,创建一个共享的账户对象 account3 a=new account3("abc",0); //创建两个取钱的线程对象 new drawthread3(a,"小明").start(); new drawthread3(a,"小红").sta...原创 2022-04-27 07:30:00 · 530 阅读 · 21 评论 -
JAVA中的线程安全问题解决之线程同步
第一种方法:同步代码块:作用:把出现线程安全的核心代码上锁原理:每次只能一个线程进入,执行完毕后自行解锁,其他线程才能进来执行锁对象要求:理论上,锁对象只要对于当前同时执行的线程是同一个对象即可缺点:会干扰其他无关线程的执行所以,这种只是理论上的,了解即可,现实中并不会这样用public class 多线程_4线程同步 { public static void main(String[] args) { //定义线程类,创建一个共享的账户对象 .原创 2022-04-26 10:42:48 · 406 阅读 · 15 评论 -
线程安全问题(原来这就是赚钱的最佳方法)
案例:小明和小红是一对夫妻,他们有一个共同的账户,账户里有10万元他们同时来取钱,并且他们都取了10万元,这个时候会发生什么呢?//多个线程同时访问同一个共享资源而且修改了该资源,便会产生线程安全问题public class 多线程_3线程安全案例 { public static void main(String[] args) { //定义线程类,创建一个共享的账户对象 account a=new account("abc",10000); .原创 2022-04-25 20:34:06 · 669 阅读 · 50 评论 -
多线程的常用方法(惊,黑心老板原来是通过这样的方法赚钱)
线程常用方法:public class 多线程_2常用方法 { public static void main(String[] args) { Thread t1=new ff(); System.out.println(t1.getName());//默认线程名字 t1.setName("1号");//给线程取名字 t1.start();//启动线程 System.out.println(t1.getNam.原创 2022-04-24 14:45:21 · 544 阅读 · 12 评论 -
多线程的创建
创建方式一:继承Thread类创建多线程public class 多线程_1创建 { public static void main(String[] args) { //创建方式一 Thread t=new MyThread();//创建MyThread线程对象 //直接调run()方法会被当成普通方法执行,此时相当于还是单线程执行, // 所以需要调用start()方法启动多线程 t.start();//调.原创 2022-04-23 18:01:27 · 2659 阅读 · 46 评论 -
JAVA实现双色球系统
import java.util.Scanner;import java.util.Random;public class twocolor { //随机6个红球号码(1-33,不重复),随机一个蓝球号码(1-16,可与红球号码重复) public static void main(String[] args) { int arr[] = LuckNumbr(); //录入用户输入01数据 int sum[] = userInputN...原创 2022-04-18 14:11:35 · 500 阅读 · 28 评论 -
JAVA实现IO流之日记本(记事本)
要求:编写一个模拟日记本的程序,通过在控制台输入指令,实现在本地新建文件,打开日记本和修改日记本等功能。指令1代表“新建日记本”,可以从控制台获取用户输入的日记内容指令2代表“打开日记本”,读取指定路径的TXT文件的内容并输出到控制台指令3代表“修改日记本”,修改日记本中原有的内容指令4代表保存指令5代表退出import java.io.*;import java.util.Scanner;public class IO_日记本 { /** * 模拟日记本程序原创 2022-04-19 07:30:00 · 6506 阅读 · 25 评论 -
JAVA之IO字符流的基础应用
public class IO_字符流 { public static void main(String[] args) throws Exception{ Reader r = new FileReader("文件路径"); BufferedReader br=new BufferedReader(r);// char[] c = new char[1024];//定义一个桶装每次读取多少个数据// int len;// .原创 2022-04-14 19:44:27 · 475 阅读 · 4 评论 -
JAVA之IO字节流的基础应用
import java.io.*;public class IO_字节流 { public static void main(String[] args) { //使用OutputStream创建一个文本文档,并存入文字// try{// // OutputStream os=new FileOutputStream("text.txt");//会自动创建一个文件 text(文件名自取)// OutputStream .原创 2022-04-14 19:36:47 · 323 阅读 · 4 评论 -
JAVAIO流之File类常用方法
class file{ public static void main(String[] args) { //绝对路径创建一个文件对象 File f=new File("D:\\IDEA\\text2.txt"); //获取它的绝对路径 System.out.println(f.getAbsolutePath()); //获取文件定义的时候的路径 System.out.println(f.getPath.原创 2022-04-02 17:55:53 · 491 阅读 · 0 评论 -
第十三届蓝桥杯javaC组求和题伪解法
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); Long arr[]=new Long[n]; for(int i=0;i<n;i++) { arr[i]=sc.nextLong(); } System.out.println(c(...原创 2022-04-10 23:18:25 · 352 阅读 · 1 评论 -
第十二届蓝桥杯javaB组填空题卡片问题
public class lqb { public static void main(String[] args) { int a,b,c,d,e; int sum=0;//定义一个统计数 for (int i = 0; i <= 20210; i++) {//一共有20210张牌 a=i%10;b=i/10%10;c=i/100%10;d=i/1000%10;e=i/10000;//取各个位上的值 ...原创 2022-04-07 20:24:35 · 559 阅读 · 1 评论 -
贪心算法之进制最少数目(力扣)
import java.util.Scanner;/*如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。给你一个表示十进制整数的字符串 n ,返回和为 n 的 十-二进制数 的最少数目。示例 1:输入:n = "32"输出:3解释:10 + 11 + 11 = 32示例 2:输入:n = "82734"输出:8示例 3:输入:n = "27346.原创 2022-04-05 11:48:01 · 431 阅读 · 5 评论 -
贪心算法之最长三角形周长(力扣)
给定由一些正数(代表长度)组成的数组 nums,返回 由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回0。示例 1:输入:nums = [2,1,2]输出:5示例 2:输入:nums = [1,2,1]输出:0import java.util.Arrays;import java.util.Scanner;/*给定由一些正数(代表长度)组成的数组 nums,返回 由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何...原创 2022-04-04 20:02:02 · 699 阅读 · 0 评论 -
JAVA实现成绩统计之及格率和优秀率
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整数。输入的第一行包含一个整数 n,表示考试人数。接下来n行,每行包含一个 0 至 100 的整数,表示一个学生的得分。输出描述:输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分四舍五入保留整数。示例输入:78092567488原创 2022-04-04 19:56:23 · 3036 阅读 · 0 评论 -
第n个丑数
描述:给你一个整数n,请你找出并返回第n个丑数。丑数就是只包含质因数2、3或5的正整数。输入样例1:10输出样例1 :12输入样例 2:1输出样例 2:1import java.util.Scanner;//给你一个整数n,请你找出并返回第n个丑数。//丑数就是只包含质因数2、3或5的正整数。//输入样例 1 //10//输出样例 1//12//输入样例 2 //1//输出样例 2//1public class 丑数 { //因为丑数就是只包含质因数2、原创 2022-04-03 20:58:17 · 728 阅读 · 0 评论 -
JAVA之递归解决啤酒问题
问题描述:啤酒2元一个,4个盖子可以换一瓶,2个空瓶可以换一瓶。现在有10元钱,请问一共可以喝多少瓶,还剩多少个盖子和瓶子。//啤酒2元一瓶,4个盖子可以换一瓶,2个空瓶可以换一瓶,请问10元钱可以喝多少瓶酒,还剩多少空瓶和盖子public class 递归_啤酒问题 { public static int sum;//总共可以喝多少瓶酒 public static int lastpz;//每次换完后剩余的瓶子数 public static int lastgz;//每次换完后剩余的盖子原创 2022-04-03 16:39:13 · 1459 阅读 · 5 评论