![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
Java学习过程中相关记录
黄佳俊、
to be or not to be!
热爱生活!
执着学习!
展开
-
MySQL | ERROR : Every derived table must have its own alias解决方法
解析原因:在多级查询的过程中,会需要给表一个别名。代码示例错误的查询方式:select * from (select s.sno from student s where s.ssex='女');正确的查询方式:select * from (select s.sno from student s where s.ssex='女') as mid_sno;其实区别,就在于背后有没有那个as mid_sno。这是为了保证每个派生出来的表都需要有一个自己的别名。...原创 2021-11-27 10:38:27 · 412 阅读 · 0 评论 -
Java | 图形界面中paint,repaint,paintcomponent等函数的理解
事件派发线程::事件派发线程是用于swing组件的。当你在main函数里创建一个窗口类的子类像JFrame,就自动创建了一个事件派发线程,如果你在 窗口里按下一个按钮或操作其它控件,就会产生事件,如果你为这个事件定义了响应代码,这些代码就会在事件派发线程里执行。我的理解是事件派发线程里有个事 件队列,事件派发线程不停地检查事件队列,如果有事件就取出来并执行相应操作。 在java里设置组件的属性后会导致重绘,只不过由于这个重绘事件被放在事件派发线程里,因此随后调用的堵塞动作会导致事件派发线程被Id...原创 2021-11-26 09:04:41 · 3119 阅读 · 0 评论 -
Java | JPanel,JFrame,JComponent和JApp之间的区别
这些类是Java UI设计的通用扩展点。 首先,要认识到它们之间不一定有直接关系,因此试图找到它们之间的关系可能适得其反。JApplet-一个基类,可让您编写将在浏览器上下文中运行的代码,例如交互式网页。 这很酷,但是它带来了局限性,这就是在现实世界中玩得开心的代价。 通常,当您要在网页中拥有自己的UI时,将使用JApplet。JComponent-用于与Swing交互的对象的基类。JFrame-用于表示窗口应具有的内容。 这包括边框(可调整大小的y / n?),标题栏(应用程序名称或其他消息)原创 2021-11-26 09:00:57 · 601 阅读 · 0 评论 -
Java | JComponent与Jpanel的区别
JPanel 是 JComponent的一种。jpanel就是一个平板,叫做面板,但是可以有很多种布局可选择。JComponent叫容器 , 并不一定是什么东西,没有具体定义容器应该是什么外观,只是说明他能够容纳其他的swing组件。swing组件比如:jlist就是一种容器,放进jlist的组件都是列表形式的jtable也是一种容器,组件是表格状显示的...原创 2021-11-26 08:58:48 · 803 阅读 · 0 评论 -
Java | JPanel与JFrame的区别
本质上:因为jpanel和jframe都间接的继承了container,所有他们也有布局管理器的方法。jpanel和容器一样,都只能装东西,最终要显示还是要通过jframe,jframe是继承了window类,而window具有显示图形的功能。只要是继承了window的类都可以在桌面上直接显示。细节上:Jpanel不是顶级窗口,不能直接输出。它必须放在象JFrame这样的顶级窗口上才能输出。JcontentPane实际上就是一个JPanel。Jframe中会默认new一个JPane原创 2021-11-26 08:53:03 · 2163 阅读 · 0 评论 -
Java警告The serializable class XXX does not declare a static final serialVersionUID field of type long
警告原因:当你一个类实现了Serializable接口,如果没有定义serialVersionUID,Eclipse会提供这个提示功能告诉你去定义之解决方法:很多时候是用Eclipse自动生成一个UID详细解释博客推荐:关于The serializable class XXX does not declare a static final serialVersionUID field of type long的警告_virgoboy2004的专栏-CSDN博客Eclipse警告:Th原创 2021-11-26 08:48:33 · 1294 阅读 · 0 评论 -
FileInputStream 读取文件内容
public class Test { public static void main(String[] args) throws IOException { final String path = "D:/1.txt"; //1、得到数据文件 File file = new File(path); //2、建立数据通道 FileInputStream fileInputStream = new FileInputStream(file); byte[] buf .原创 2021-11-26 08:40:51 · 5310 阅读 · 0 评论 -
Java | 为什么要加EventQueue.invokeAndWait
集合上网搜索的各种结果,做个总结什么的:第一:java的GUI都是的单线程,应该使用事件调度线程去执行,如果没意思使用事件调度线程的话,可能造成死锁。但是在小的程序中,这种现象(死锁)不会发生的;大的应用程序中才会出现这种现象!第二:public class EventQueueextends ObjectEventQueue 是一个与平台无关的类,它将来自于底层同位体类和受信任的应用程序类的事件列入队列。第三:在Java中Swing是线程不安全的,是单线程的设计,这样的造成结果就是:只能从事件原创 2021-11-26 08:36:38 · 259 阅读 · 0 评论 -
Java | 布局界面之FlowLayout布局(流式布局)
Java的布局中最为简单的便是FlowLayout流式布局组件按照设置对齐方式从左向右排列,一行排满到下一行继续排列详细代码请去https://blog.csdn.net/lovemy_baby/article/details/79629220原创 2021-11-26 08:19:15 · 1356 阅读 · 0 评论 -
Java | Eclipse开启与关闭代码自动提示功能
关闭Eclipse 取消自动代码提示去到菜单window->Preferences->Java->Editor->ContentAssist 看看Enable auto activation之前有没有打上勾 ,有勾去掉即可去掉自动提示后也可以在输入代码的字母后按alt+/进行提示开启一、Eclipse代码里面的代码提示功能默认是关闭的,只有输入“.”的时候才会提示功能如何修改eclipse配置,开启代码自动提示功能打开Eclipse->...原创 2021-11-26 08:14:40 · 2492 阅读 · 0 评论 -
Java | Class.this和this有什么区别
仅当具有嵌套类时,此语法才有意义"this"是指(或者说:所代表的是)当前这段代码所在的类的对象,而"类名.this"是指"类名"的对象(一般在匿名类或内部类中使用来调用外部类的方法或属性)如例:class A { public void method(){ A.this //这里的"A.this"就是表示类"A"的对象。。在这种情况下"A.this"和"this"是一样的 } class .原创 2021-11-25 10:13:28 · 569 阅读 · 0 评论 -
Java | 简易计算器(一个图形化界面的小练手)
题目要求实现加、减、乘和除运算。输入两个参数后,点击按钮加、减、乘或除,则执行相应的计算,结果显示在计算结果后的文本域中。代码示例import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;原创 2021-11-23 08:18:04 · 1133 阅读 · 0 评论 -
Java | 移动的字符串(图形界面化的一个小练手)
实现要求:在一个窗口中显示移动的字符串"Hello world",这段文字在窗口中从左到右来回移动。提示:使用Timer或多线程,在一个面板上定时重绘该段字符串。代码示例:import java.awt.Font;import java.awt.Graphics;import javax.swing.JFrame;import javax.swing.JPanel;public class Test{ public static void main(String[] ar原创 2021-11-22 18:37:22 · 287 阅读 · 0 评论 -
Java | swing 如何清空JTextField中的内容
情况描述:在一个JTextField中输入了数据,用一个按钮来清空里面的数据,要如何实现啊!首先要说的是:没有这个方法,clear,能设置JTextField内容为空但是可以这样巧妙地做到:使用jTextField.setText("");把内容替换为空字符串,来实现清空JTextField中的内容...原创 2021-11-22 14:02:10 · 7205 阅读 · 3 评论 -
Java | FileWriter和BufferedWriter的真正区别在哪
网上关于两者区别的内容挺多的,但很多表述都及其不准确,很容易被误导。不过好在也有些厉害的博主做了很细致的分析,这里我总结了一下,加上自己的思考。FileWriter和BufferWriter写入的都是字符流 FileWriter和BufferWriter都有缓冲区,FileWriter的缓冲区大小是8192个字节,BufferWriter缓冲区大小是8192个字符(说两者的区别在于BufferWriter有缓冲区而FileWriter没有缓冲区的是在放屁!) FileWriter和BufferW.原创 2021-11-22 13:39:58 · 1131 阅读 · 0 评论 -
Java | ShowSaveDialog.getSelectedFile的解释
getSelectedFilepublic File getSelectedFile()返回选中的文件。可由程序员通过 setFile 或者通过用户操作(如在 UI 中键入文件名,或者从 UI 中的列表内选择文件)来进行此设置。返回:选中的文件setSelectedFilepublic void setSelectedFile(File file)设置选中的文件。如果该文件的父目录不是当前目录,则将当前目录更改为该文件的父目录。参数:file - 选中的文件getSelectedFi原创 2021-11-22 13:33:50 · 445 阅读 · 0 评论 -
Java | 解决FileInputStream 读取文件中文乱码问题
当Java中使用 FileInputStream 读取txt等文档时,中文会产生乱码,解决方法如下:fis = new FileInputStream(file);InputStreamReader reader = new InputStreamReader(fis,"UTF-8"); BufferedReader br = new BufferedReader(reader);String line;while ((line = br.readLine()) != null) {原创 2021-11-22 11:58:48 · 4211 阅读 · 1 评论 -
Java | FileOutputStream中文乱码问题的解决
使用FileOutputStream序列化可以直接向文件写入文本内容但这里的字符串如果包含中文,就会出现乱码,这是因为FileOutputStream是字节流,将文本按字节写入文件,而一个汉字是两个字节,无法一次写入,就会出现乱码,解决方法使用OutputStreamWriter将字节流转换为字符流写入,同时指定utf-8编码。代码如下:OutputStreamWriter oStreamWriter = new OutputStreamWriter(new FileOutputStr原创 2021-11-22 11:48:36 · 83966 阅读 · 1 评论 -
Java | PTA练习:简单文本编辑器
题目要求编写简单文本编辑器,该程序可以新建、打开、编辑和保存文本文件。当用户点击New时,新建一个文件,用户可以编辑文件内容,然后点击Save保存文件。用户点击Open时,选择一个已有文件,然后可对文件进行编辑。示例输出如图所示。代码示例import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.Fil..原创 2021-11-22 11:37:21 · 716 阅读 · 2 评论 -
Java | 回车换行符在程序中占几个字节
回车\r换行\n都是ascii中的字符(一个字符两个字节,int类型四个字节,byte类型数据占一个字节。)所以在UTF8编码下,也各占2个字节原创 2021-11-21 21:54:11 · 3842 阅读 · 0 评论 -
Java | PTA练习:文件统计
题目要求编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目。代码示例import java.io.*;import java.util.*;public class Main { public static void main(String[] args) { String pathString = "C:\\Users\\86137\\Desktop\\"; Scanner s原创 2021-11-21 21:28:55 · 647 阅读 · 0 评论 -
Java | PTA练习:弹球
题目要求编写程序,该程序通过一个发射按钮可以发射一个弹球,该球遇到边界时会自动弹回,在移动固定次数后,该球停止运动。要求每次点击发射按钮都会发射一个弹球,如果点击多次,则多个弹球同时运动。该程序通过另一个结束可以结束程序的运行。参考界面如图所示参考代码import java.awt.*;import java.awt.event.*;import java.awt.geom.Ellipse2D;import java.awt.geom.Rectangle2D;import j.原创 2021-11-21 21:27:05 · 196 阅读 · 0 评论 -
Java | PriorityQueue的理解
使用介绍:优先队列的头是基于自然排序或者Comparator排序的最小元素。如果有多个对象拥有同样的排序,那么就可能随机地取其中任意一个。当我们获取队列时,返回队列的头对象。优先队列的大小是不受限制的,但在创建时可以指定初始大小。当我们向优先队列增加元素的时候,队列大小会自动增加。底层原理:(添加删除元素时遵循的规律)一、加:add(E e)和offer(E e)的语义相同,都是向优先队列中插入元素,只是Queue接口规定二者对插入失败时的处理不同,前者在插入失败时抛出异原创 2021-11-21 20:11:59 · 96 阅读 · 0 评论 -
Java | 报错:Cannot instantiate the type Map(String ,Object)
错误代码Map<String,Object> fisrstMapSection = new Map<String, Object>();错误原因这里是对基础知识不好导致,map是一个抽象的接口,不能直接实例化,解决方法:可以使用它的具体的实现类 Map<String,Object> fisrstMapSection = new HashMap<String, Object>();...原创 2021-11-21 19:29:49 · 1030 阅读 · 0 评论 -
Java | map的使用方法
import java.util.HashMap;import java.util.Map;//map使用方法public class MapDemo { public static void main(String[] args) { // map实例化 Map<String, Integer> maps = new HashMap<>(); // 添加元素 maps.put("A", 10);.原创 2021-11-21 19:26:31 · 107 阅读 · 0 评论 -
Java | frame.pack()的含义
通俗来讲:f.pack()做了这样一件事:f.setSize(f.getPreferredSize());在你没加f.pack()之前,f窗体的大小是(0,0)当你加了以后,f的大小会被设置为最佳大小,也就是prefrredSize比较正式的解释:Frame.pack()这个方法的作用就是根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小。Frame.pack()与frame.validate()方法的区别: frame.validate()是验证fr原创 2021-11-21 18:58:47 · 2569 阅读 · 0 评论 -
Java | JFrame中setLayout的意思
setLayout是对当前组件设置为流式布局组件在窗体中从左到右依次排列如果排到行的末尾,换行排列排列会随着窗体的大小而改变JPanel的默认布局是流式布局,JFrame的默认布局是BorderLayout边框布局.与此之外还可以设置为GridLayout网格布局跟CardLayout卡片布局详细了解图形界面的容器布局可访问以下链接:三十、Java图形化界面设计——布局管理器之BorderLayout(边界布局)_liujun13579的专栏-CSDN博客_borderlay原创 2021-11-21 13:49:02 · 3775 阅读 · 0 评论 -
Java | 文件读写的几种方法,以及判断文件结尾
一:用Scanner可以很好的达到读写文件的作用。但是学习过程中,由于Scanner的构造函数的参数是InputStream,搞得有点糊涂。后来发现InputStream是一个抽象类,FileInputStream是它的一个子类。而FileInputStream可以以String或File为参数读入文件流,然后用这个FileInputStream对象初始化一个Scanner,如sin。然后就可以像手动输入一样使用sin读入文件中的信息。用sin.hasnext()表示是否读到文件结尾。对应的可以用P原创 2021-11-21 13:38:40 · 2181 阅读 · 0 评论 -
Java | PTA练习:生产者和消费者问题
题目要求编写程序,实现生产者和消费者问题。输入:由英文字母和数字组成的不定长度字符串数组,例如{“abc”,”23d”,”1a”}。每隔100毫秒,生产者线程读入数据,放入生产者公用的仓库;消费者从仓库中取出字符串,进行倒置,如上例{“cba”,”d32”,”a1”}; 输出:倒置后的字符串。提示:可以定义4个类:生产者类、消费者类、产品类和测试类。代码示例class Production{ String [] strings; private String aString; pri原创 2021-11-16 11:48:11 · 607 阅读 · 0 评论 -
Java | Thread.join()的作用
join() 的示例和作用 1 // 父线程 2 public class Parent { 3 public static void main(String[] args) { 4 // 创建child对象,此时child表示的线程处于NEW状态 5 Child child = new Child(); 6 // child表示的线程转换为RUNNABLE状态 7 child.start(); 8原创 2021-11-10 13:47:09 · 253 阅读 · 0 评论 -
Java | 小球碰撞
import java.awt.*;import java.awt.event.*;import java.awt.geom.Ellipse2D;import java.awt.geom.Rectangle2D;import java.util.ArrayList;import javax.swing.*;public class Main extends JFrame {//主程序 public static void main(String[] args) { EventQueu.原创 2021-11-10 13:30:13 · 365 阅读 · 0 评论 -
Java | 取整操作
java 中取整操作提供了四种方法:第一种:ceil是天花板的意思,表示向上取整。public static double ceil(double a)//向上取整第二种:floor是地板的意思,表示向下取整。 测试:System.out.println(Math.floor(1.01));输出:1.0第三种:round执行的就是数学上的四舍五入运行。第四种:最有意思的,返回最接近参数的整数,如果有2个数同样接近,则返回偶数的那个。它有两个特殊的情况:1)如果参数本身是整..原创 2021-11-10 11:33:31 · 1175 阅读 · 0 评论 -
Java | PTA:sdut-String+array1(Collection-Map)-1 读中国载人航天史,汇航天员数量,向航天员致敬(字符串+数组、LinkedMap )
1986年,中国实施“863”计划,航天技术列入其中。以载人飞船开始起步,最终建成我国的空间站。 1992年9月21日,中国实施载人航天工程,并确定了三步走的发展战略:第一步,发射载人飞船,建成初步配套的试验性载人飞船工程。第二步,突破载人飞船和空间飞行器的交会对接技术,利用载人飞船技术改装、发射一个空间实验室。第三步,建造载人空间站。在长期的奋斗中,我国航天工作者不仅创造了非凡的业绩,而且铸就了特别能吃苦、特别能战斗、特别能攻关、特别能奉献的载人航天精神。载人航天精神,是“两弹一星”精神在新时期的发扬原创 2021-11-09 15:22:38 · 2099 阅读 · 0 评论 -
Java | PTA:jmu-Java-m06 统计一篇英文文章中出现的不重复单词的个数
输入一篇英文文章,碰到"!!!!!"的时候停止,输出文章中出现的不重复单词的个数(注意:单词不区分大小写,如:The和the为一个单词)输入格式:一篇英文文章,以"!!!!!"结尾输出格式:不重复单词的个数输入样例:Unmanned aerial vehicles have been adopted in the inspection of violations Procurators will file public interest litigations against pe原创 2021-11-09 15:21:28 · 1778 阅读 · 0 评论 -
统计Java程序中关键词的出现次数
编写程序统计一个输入的Java源码中关键字(区分大小写)出现的次数。说明如下:Java中共有53个关键字(自行百度) 从键盘输入一段源码,统计这段源码中出现的关键字的数量 注释中出现的关键字不用统计 字符串中出现的关键字不用统计 统计出的关键字及数量按照关键字升序进行排序输出 未输入源码则认为输入非法输入格式:输入Java源码字符串,可以一行或多行,以exit行作为结束标志输出格式:当未输入源码时,程序输出Wrong Format 当没有统计数据时,输出为空 当有统计数据时,原创 2021-11-09 15:20:21 · 1552 阅读 · 0 评论 -
Java | PTA: jmu-Java-02基本语法-08-ArrayList入门
新建1个ArrayList<String> strList用来存放字符串,然后进行如下操作。提示:查询Jdk文档中的ArrayList。注意:请使用System.out.println(strList)输出列表元素。输入格式 输入:n个字符串,放入strList。直到输入为!!end!!时,结束输入。 在strList头部新增一个begin,尾部新增一个end。 输出列表元素 输入:字符串str 判断strList中有无包含字符串st...原创 2021-11-09 15:19:32 · 331 阅读 · 0 评论 -
Java | PTA:jmu-Java-06异常-04-自定义异常(综合)
定义IllegalScoreException异常类,代表分数相加后超出合理范围的异常。该异常是checked exception,即希望该异常一定要被捕获处理。定义IllegalNameException异常类,代表名字设置不合理的异常。该异常是unchecked exception定义Student类。属性:private String name;private int score;方法:toString //自动生成setter/getter原创 2021-11-09 15:18:27 · 823 阅读 · 0 评论 -
Java | PTA:jmu-Java-06异常-02-使用异常机制处理异常输入
使用异常处理输入机制,让程序变得更健壮。###main方法:输入n,创建大小为n的int数组。 输入n个整数,放入数组。输入时,有可能输入的是非整型字符串,这时候需要输出异常信息,然后重新输入。 使用Arrays.toString输出数组中的内容。输入样例:512ab453结尾无空行输出样例:java.lang.NumberFormatException: For input string: "a"java.lang.NumberFormatExceptio原创 2021-11-09 15:17:01 · 1597 阅读 · 0 评论 -
Java | PTA:jmu-Java-06异常-01-常见异常
自己编码以产生常见异常。###main方法: 事先定义好一个大小为5的数组。 根据屏幕输入产生相应异常 提示:可以使用System.out.println(e)打印异常对象的信息,其中e为捕获到的异常对象。**输入说明: **arr代表产生访问数组是产生的异常。然后输入下标,如果抛出ArrayIndexOutOfBoundsException异常则显示,如果不抛出异常则不显示。 null,产生NullPointerException cast,尝试将String对象强制.原创 2021-11-09 15:15:53 · 1471 阅读 · 0 评论 -
Java | PTA:试试多线程
编写4个线程,第一个线程从1加到25,第二个线程从26加到50,第三个线程从51加到75,第四个线程从76加到100,最后再把四个线程计算的结果相加。输入格式:无输出格式:最终结果输入样例:输出样例:5050import java.util.Scanner;class CountThread implements Runnable{ private int n; private int summ=0; private boolean f=false; p原创 2021-11-09 15:14:29 · 1264 阅读 · 0 评论