纠结了这么久才整理好对第一个学习阶段的小总结。
总的来说第一个阶段所作的事情都离不开JAVA.AWT.GRAPHICES所有要用到的东西基本都是自绘出来的。所以写程序起来也相当的麻烦,一个简单的画布到处出来传去。还好加了一个static只有的工作就简单了少许。
第一个阶段所完成的项目
①一个简单的画板
②简单的文件搜索器
③人人对战五子棋
④坦克大战自绘版
⑤坦克大战图片版
对一些问题的小结
1、继承、多态、重写?
继承:就是在父类的基础上,写一个新的子类,拥有父类所有的方法和定义的变量。也可以再写自己的方法。
简单来说就是相当与对父类的一个拓展
多态:我觉得它的作用就是用来将接口和实现分离开,改善代码的组织结构,增强代码的可读性。在某些很简单的情况下,或许我们不使用多态也能开发出满足我们需要的程序,但大多数情况,如果没有多态,就会觉得代码极其难以维护。
重写:对父类方法的一个重新编写,覆盖父类的方法。
2.数据类型、值传递和引用传递有什么区别,String是什么传递?
值传递:相当与对原数据类新拷贝了一个具有相同值的新的空间,对其的操作影响不了原来的数据。
应用传递:与值传递的刚好相反,就是两个或者多个操作会用到同一个地址的数据,当然,其值会受多个的影响而改变。
基本的数据类型如int double long int ...都是值传递,而一些包装后的类则是引用传递。
特例:String 为值传递
3.Set如何遍历,有哪些子类、List如何遍历,有哪些子类、Map如何遍历,有哪些子类
Map中是否可以放入null的key或Vlaue?Set,List呢?
Set :一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2)
的元素对 e1
和 e2
,并且最多包含一个 null 元素.
就相当于数学上的集合
所有已知实现类:
AbstractSet, ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet
Map:将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 不能存放NUll
所有已知实现类:
AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, Hashtable, IdentityHashMap, LinkedHashMap, PrinterStateReasons, Properties, Provider, RenderingHints, SimpleBindings, TabularDataSupport, TreeMap, UIDefaults, WeakHashMap
List: 有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复的元素。更确切地讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。难免有人希望通过在用户尝试插入重复元素时抛出运行时异常的方法来禁止重复的列表,但我们希望这种用法越少越好。
所有已知实现类:
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector
4.Swing界面相关,Swing组件的继承体系图、事件监听器的继承体系图。
swing 的集成体系
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
EVEN的
java.lang.Object
java.util.EventObject
java.awt.AWTEvent
5.递归与循环的区别?
递归和循环是两个不同的概念,递归是函数的调用在调用,是整个函数,而循环是在函数内部.有的用递归写的算法,如果改成循环会很复杂。递归的本质是系统把你的中间结果进行出栈入栈。开销是稍微大点,但是可以用简短的代码实现复杂的算法。
6.异常体系:异常分类。throws、throw、Throable、Exception的区别?
运行时异常、编译时检测异常和Error的区别,哪些异常是Error?
在java代码中如果发生异常的话,jvm会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出。
但是有些异常时JVM无法判断出来(人的年龄范围)的则需要手动抛出,即throw的作用
java中一些特定的方法函数会产生一些异常,这个时候就必须要用try()catch{}来打印异常,如果想不管异常的出现也不答应的话就抛出异常 ,即throws
Throwable
类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw
语句抛出。类似地,只有此类或其子类之一才可以是 catch
子句中的参数类型。
Exception
类及其子类是 Throwable
的一种形式,它指出了合理的应用程序想要捕获的条件。
运行时异常:RuntimeException 就是一些一些人为无法估计也难以控制的一异常,如读取U盘内容的时候,U盘被拔下来了,这些都是程序无法控制的。
编译时检测异常:就是一些逻辑上或则考虑上不全面的异常。比如:1/0的异常。
错误(ERROR):错误则是个人的逻辑思维或则代码语法错误。
7.I/O流继承体系结构图和分类。原始数据类型读写。
InputStream可以对原始的数据类型进行一个一个字节的读取,所以,可以用inputStream对任何的文件进行复制。
8.线程:线程在程序中有几种状态?有几种方式创建线程?各适用什么场景。
进程 一台机器中的多个运行单位
线程 一个进程中的多个运行单位
如:QQ 可以一边的发文件一边的聊天,即同时做多个事情。
线程的定义、使用
线程里面传参数只能通过构造函数去传
① 定义
1、线程类,继承(extends )Thread。
2、(impelments) Runnable接口
②重写run方法。
③创建一个线程对象。
④启动线程不是调用run()方法,而是调用他的stat()方法。如果是继承了Thread的就直接调用start()。如果是实现Runnable则需要用Thread包装一下才能使用其调用start()来启动线程。
线程的模型
线程的停止:就是让run()放发执行完毕。
用进度条来实现
线程的继续:
线程的暂停:
只用些了两个变量
Private Boolean isStop = false ;//是否停止
Private Boolean isSuspend = false ;//是否暂停
定义在线程的类里面
<!--EndFragment-->
//线程类,继承Thread
public class ThreadTest extends Thread {
private boolean isStop = false;// 是否停止
private boolean isSuspend = false;// 是否暂停
private javax.swing.JProgressBar label;
int time = 0;// 时间
public ThreadTest(javax.swing.JProgressBar label) {
this.label = label;
}
// 重写run方法
public void run() {
while (!isStop) {
while (!isSuspend) {
// System.out.println(">>>>>"+time);
label.setValue(time);
// label.setString(time+"");
try {
// 让线程休眠一秒
Thread.sleep(300);
} catch (Exception ef) {
ef.printStackTrace();
}
time++;
//达到最大值就停止线程
if(time>label.getMaximum()){
stopThread();
}
}
try {
Thread.sleep(10);
} catch (Exception ef) {
ef.printStackTrace();
}
System.out.println(">>>>>线程暂停了。。");
}
System.out.println(">>>>>线程停止。。");
}
要暂停或者停止的话只要增加两个监听器改变isStop和isSuspend的值就可以了
注意的是,暂停只需要跳出一个while循环,停止就需要跳出两个while循环。
但是在暂停的时候其实我们做的事一个死循环的操作,系统的CPU使用率会非常的高。为了降低CPU的使用率,则需要在死循环中在加上一个sleep(),降低CPU的使用率.。
设置一个进度条:
Javax.swing.JProgressBar
调用
void
|
setMaximum(int n) 将进度条的最大值(存储在进度条的数据模型中)设置为 n。
|
void
|
setMinimum(int n) 将进度条的最小值(存储在进度条的数据模型中)设置为 n。
|
就可以看到线程进度的暂停和停止了。
另外:任何类型的和字符串加在一起都变成了字符串
如int time;
Time+””就变成了一个字符串了
改变组件的大小
<!--EndFragment-->
- 大小: 37.7 KB
分享到:
相关推荐
以上就是Java第二阶段学习的主要内容。掌握这些知识后,你将具备编写复杂Java应用的基础,可以进一步探索Java EE企业级开发、数据库交互、框架应用等更高级的主题。不断实践和深入学习,才能真正成为一名熟练的Java...
【描述】的重复性表述暗示了这些资源是针对"任亮java第一阶段资料"的强化,意味着它们可能包括了多次迭代或不同的复习材料,旨在确保学习者能够牢固掌握初阶Java知识。 【标签】"java"明确指出这个资源包与Java编程...
JAVA第一阶段:基础设计结构---总结(必读).pdfJAVA第一阶段:基础设计结构---总结(必读).pdfJAVA第一阶段:基础设计结构---总结(必读).pdfJAVA第一阶段:基础设计结构---总结(必读).pdfJAVA第一阶段:基础设计结构--...
### JAVA-SE知识点总结 #### Java的三大平台 Java主要有三个平台:JavaSE(标准版,J2SE)、JavaEE(企业版)、JavaME(微型版)。这些平台各自针对不同的应用领域。 - **JavaSE(Java Standard Edition)**: ...
Spring框架是Java企业级应用的事实标准,它是一个全面的后端解决方案,包含了许多模块,如核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具和支持。Spring的核心是依赖注入(DI)和面向切面编程,这使得...
- **规则**:变量名的第一个字符可以是字母、下划线`_`或美元符号`$`;其余字符可以是字母、数字、下划线或美元符号。 - **标准**:首字母小写,尽量使用描述性的名词。 ### 类型转换 - **自动类型转换**:当从小...
- 第一个字符必须是字母、下划线`_`或美元符号`$`。 - 后续字符可以是字母、下划线`_`、美元符号`$`或数字。 - 不能使用Java关键字和保留字作为变量名。 #### 七、变量类型转换 1. **自动类型转换**: - 当两...
通过第一阶段的学习,将知识点写成了时间轴的形式,刚开始自学的小伙伴也可以按照这个顺序进行学习
java知识点总结 包括: 1.jvm、基础知识、多线程 2.spring、springMVC、springBoot 3.sql优化、mybatis 4.SpringCloud、restful api、docker等
Java 基础第一小阶段思维导图(知识点汇总) Java 基础第一小阶段思维导图中涵盖了 Java 历史、变量和运算符、分支结构的使用、循环语句的使用、函数和数组等多个知识点。 一、Java 历史 * 1995 年:Sun 公司发布...
【标题】:“蜗牛学院-第一阶段java开发班笔记”是一个包含了蜗牛学院第一阶段Java开发课程学习笔记的压缩文件。这个文件很可能是由学员在完成该阶段学习后整理的,旨在帮助回顾和巩固所学知识。 【描述】:描述中...
根据给定的文件信息,我们可以总结出以下关于达内内部Java试题的知识点: ### 考试背景与目的 这份试题是由达内IT培训集团设计的,旨在评估和提升Java初学者的技术水平。通过这份试题,新手们可以检验自己对JavaSE...
- 懒汉式:第一次调用getInstance()时才创建实例。 8. **final关键字** - final修饰的变量不可改变,方法不能被覆写,类不能被继承。 9. **抽象类** - 抽象类不能被实例化,通常作为其他类的基础。 10. **抽象...
总结,BeanUtils工具类是Java开发中的实用工具,它简化了JavaBean对象的属性操作,提升了开发效率。通过理解和掌握BeanUtils,开发者能够更好地进行对象数据的处理和管理。在学习和实践中,不断熟悉和运用这些工具类...
1. Lexical Analysis:词法分析是编译器的第一阶段,负责将源代码分解成单个词汇单元(Token)。在Java小型编译器中,Lex类负责词法分析。该类的主函数main()方法中使用了try-catch块来捕获异常。 2. Token的定义:...
理解如何定义类和创建对象是学习Java的第一步。 2. 常量定义 常量是不可改变的值,可以使用关键字`final`来定义。例如,`final int MAX_VALUE = 100;`表示一个最大值为100的常量。 3. 变量及声明 变量是用来存储...
JAVA基础知识点总结 本资源总结了 JAVA 基础知识点,涵盖变量、运算符、分支结构、循环结构和冒泡排序等内容。通过对测试题的解析和解释,帮助初学者对 JAVA 基础知识进行巩固和提高。 一、变量 *JAVA 中的变量...
**第一阶段:Java基础** - **Java开发介绍**:理解DOS命令,掌握JVM(Java虚拟机)、JRE(Java运行环境)和JDK(Java开发工具包)的关系,学会安装JDK并配置环境变量。 - **基本语法**:学习Java的注释、标识符命名...