自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java基础知识:并发(下)

Callable 与 Future Callable 与 Runnable 类似,但是有返回值。 类型参数是返回值的类型。Callable接口的方法名为 call() 。 如 Callable<Integer>表示最终返回 Integer对象 的异步计算。 Future保存异步计算的结果。可以启动一个计算,将Future对象交给某个线程。public interface Future<V>{ V get() throws ...; //调用被阻塞 直到

2020-09-11 17:54:05 144

原创 Java基础知识:并发(上)

操作系统将CPU的时间片分配给每一个进程,给人并行处理的感觉。 多进程和多线程的本质区别:每个进程都拥有自己的一整套变量,而线程则共享数据(通信更有效方便同时有风险)。 有些操作系统中,创建和撤销线程的开销相对进程而言要小得多。单线程实现弹跳小球,示例程序: 若程序试图用repaint方法更新图形的绘制,则会在addBall方法返回之后才会重新绘制画板。 BallComponent扩展于JPanel,使得擦除背景变得很容易(JPanel本身不带有任何组件,就是一块空板子,调用super.p.

2020-09-09 21:52:16 231

原创 Java基础知识:部署Java应用程序

JAR文件 将应用程序打包时,使用者希望仅提供一个单独的文件。Java归档(JAR)文件就是为此目的而设计的。 一个JAR文件即可以包含类文件,也可以包含诸如图像和声音这些其他类型的文件。 JAR文件是压缩的,ZIP压缩格式。 创建JAR文件: 通常命令格式如下: jar options File1 File2 . . . jar程序的可选项: c 创建新或空的存档文件并加入文件。create C 暂时改变目录。 e 清单文件中创建一个条目 f 将JAR文件名指.

2020-09-07 23:51:42 550

原创 Java基础知识:Swing用户界面组件(下)

菜单 菜单栏(menu bar)、菜单项(menu items)、子菜单(submenus)。 菜单创建: 创建菜单栏 将菜单栏添加到框架的顶部 为每个菜单建立一个菜单对象 将顶层菜单添加到菜单栏中 向菜单对象添加菜单项、分隔符和子菜单 通常,采用扩展抽象类AbstractAction来定义一个实现了Action接口的类。 javax.swing.JMenu JMenu(String label) JMenuItem add(JMenuItem i.

2020-09-03 00:09:46 543

原创 Java基础知识:Swing用户界面组件(上)

大纲: Swing的基本体系结构 Swing中各种常用的用户组件 Java的布局管理器 模型-视图-控制器模式: 每个组件都有三个要素: 内容(状态、文本) 外观(大小、颜色) 行为(对事件的反应) 有名的设计模式:模型-视图-控制器模式。遵循面向对象设计中的一个基本原则:限制一个对象拥有的功能数量。 模型:存储内容。记住:模型是完全不可见的。 视图:显示内容。不一定能够完整显示(如文本框大小限制),而且以何种方式显示取决于自身的构思。 控制器:处

2020-08-31 22:51:15 523

原创 Java基础知识:事件处理

大纲: Java事件处理的基本方法。 Java AWT事件模型的工作机制。 如何以更加结构化的方式处理动作事件。 事件处理基础: 事件委托模型: 在AWT所知的事件范围内,完全可以控制事件从 事件源(如:按钮、滚动条)到 事件监听器 的传递过程,并将任何对象 指派给事件监听器。 像Java这样的面向对象语言,都将事件的相关信息封装在一个事件对象(Event Object)。在Java中,所有的事件对象都最终派生于 java.util.EventObject类。 AWT事件处理机..

2020-08-29 18:17:13 768

原创 Java基础知识:图形程序设计

大纲:比那些使用图形用户界面(GUI)的Java程序。 定义屏幕上的窗口大小和位置的程序。 窗口中采用多种字体显示文本。 如何显示图像。 Swing概述: AWT Abstract Window Toolkit (AWT)。早期基本GUI程序设计的类库。基本AWT库采用 将处理用户界面元素的任务委派给每个目标平台的本地GUI工具箱的方式(观感依赖于目标平台)。(“一次编写,随处使用”) 不同平台,用户界面元素的操作行为存在差别。 某些平台的用户界面组件集合并不丰富。

2020-08-26 22:28:28 624

原创 Java基础知识:集合(下)

轻量级集合包装器: Arrays类的静态方法asList将返回一个包装了普通Java数组的List包装器。返回的是一个视图对象,带有访问底层数组的get和set方法,但改变数组大小的所有方法都将抛出一个UnsupportedOperationException异常。 package asList;import java.util.*;public class AsListTest { public static void main( String[] args ) { String[]

2020-08-25 15:31:05 94

原创 Java基础知识:集合(上)

利用Java类库帮助程序设计中实现传统的数据结构:如何使用标准库中的集合类。Java集合框架: 将集合的接口与实现分离: 队列接口:指出可以在队列的尾部添加元素(入队),在队列的头部删除元素(出队),并且可以查找队列中元素的个数。队列的实现方式通常是:循环数组或使用链表。 如果需要一个循环数组队列,可以使用 ArrayDeque类。如果需要一个链表队列,就使用 LinkedList类(实现了Queue接口)。 可以使用 接口类型 存放 集合的引用,这样,如果需要改变想法,就可以轻松使用另.

2020-08-18 20:21:11 108

原创 Java基础知识:泛型程序设计

类型参数的好处: 在Java增加泛型类之前,泛型程序设计是用继承实现的。 对Object类的强制类型转换,没有错误检查。指定了类型参数就可以让编译器进行类型检查。 可读性更好,类型参数可以指定元素的类型。 使用泛型机制编写的程序代码要比那些杂乱地使用 Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。定义简单泛型类: 泛型类可以有多个类型变量。 类定义中的类型变量指定方法的返回类以及域和局部变量的类型。 在Java库中,使用变量 E 表示 集合 的元素类型.

2020-08-08 00:23:50 209

原创 Java基础知识:日志

记录日志API的优点:容易取消全部日志或者某个级别的日志,打开和关闭的操作都容易。 日志代码留在程序中的开销很小。 可定向到不同的处理器(控制台显示、存储于文件)。 日志记录器和处理器都可以对记录进行过滤。 日志记录可以采用不同的方式格式化,如:纯文本或XML。 应用程序可以使用多个日志记录器,它们使用类似包名的层次结构的名字。 默认,日志系统的配置由配置文件控制。如需要,应用程序可替换这个配置。基本日志: 使用 全局日志记录器(global logger)并调用info方法。 .

2020-08-05 17:36:36 217

原创 Java基础知识:异常、断言

程序运行期间,出现异常(程序的错误、外部环境的影响等)的情况,应该:向用户通告错误 保存所有的工作结果 允许用户妥善退出程序Java使用一种称为 异常处理(exception handling) 的错误捕获机制处理。 使用 断言,可以有选择地启用检测:测试期间的检测,虽然将检测删掉或者需要的时候粘贴回来。 日志:程序出现错误,记录出现的问题,以备分析。处理错误:程序中可能出现的错误: 用户输入错误 设备错误 物理限制:磁盘满了,存储空间用完 代码错误 在Java中,.

2020-08-04 20:28:13 248

原创 Java基础知识:接口、lambda表达式与内部类

接口(interface)接口技术:主要用来描述类具有什么功能,而并不给出每个功能的具体实现。 一个类可以实现(implements关键字)一个或多个接口。 接口不是类,而是对类的一组需求描述,这些类需要遵从接口描述的统一格式进行定义。 接口中的所有方法自动属于public。不必特地声明为public。 接口绝不能含有实例域。Java SE 8之后,可以在接口中提供简单方法。 在Java SE 5.0中,Comparable接口已经改进为泛型类型。(原始的Comparable接口需要进行强制类型

2020-07-31 16:04:39 187

原创 Java基础知识:反射

反射:能够分析类能力的程序。反射机制用途: 运行时分析类的能力。 运行时查看对象。 实现通用的数组操作代码 利用Method对象(类似于C++的函数指针) Class类: 程序运行期间,Java运行时系统始终为所有对象维护一个被称为运行时的类型标识。跟踪着每个对象所属的类。保存这些信息的类成为Class类。 Object类的 getClass()方法 会返回一个 Class类型 的实例。 获得 Class类对象的方法: Object类的 getClass()方法 .

2020-07-29 18:31:29 129

原创 Java基础知识:继承(下)

Object类:所有类的超类。 在Java中,只有基本类型不是对象。 equals方法:在Object类中,这个方法判断两个对象是否有相同的引用。 Objects.equals(a,b)方法。注:若a ,b 都为null,Objects.equals(a,b) 将返回true ;若只有其中之一为null,则返回null ;否则,返回a.equals(b) 。Java要求equals方法具有以下特性:自反性 :x.equals(x) == true 。 对称性 : x.equals(y)...

2020-07-27 21:17:37 100

原创 Java基础知识:继承(上)

继承:基于已存在的类构造一个新类。 超类(superclass)、子类(subclass)。 关键字extends表示继承。 子类可以增加 域、方法 或者 覆盖 方法,但绝不能删除继承的任何域和方法。 注意:子类不能访问超类的私有域,需要借助 super关键字。子类构造器必须调用超类构造器对超类的私有域进行初始化,需借助super关键字。如果子类构造器没有显式地调用超类的构造器,则将自动调用超类默认的构造器。 一个对象变量可以指示多种实际类型的现象称为多态。在运行时能够自动选择调用哪个方法.

2020-07-26 23:14:09 92

原创 Java基础知识:对象与类

面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。(Object Oriented Programming) 在OOP中,不必关心对象的具体实现,只要能够满足用户的需求即可。 在OOP中,将数据放在第一位,然后再考虑操作数据的算法。封装(encapsulation):隐藏数据,不必了解具体实现如何操纵数据。 对象中的数据:实例域。操纵数据的过程:方法。 实现封装的关键在于:绝不能让类中的方法直接访问其他类的实例域。 程序仅通过对象的方法与对象数据进行交互。.

2020-07-24 14:01:03 126

原创 Java基础知识:程序设计基础

访问修饰符:(access modifier) 用于控制程序的其他部分对这段代码的访问级别。 Java应用程序中的全部内容都必须放置在类中。(纯面向对象) 源代码的文件名必须与公共类的名字相同,并用 .java 作为扩展名。 Java编译器将字节码文件自动命名为 XXX.class ,并与源文件存储在同一目录之下。 main方法必须是public的,每个Java应用程序都必须有一个main方法。运行已编译的程序时,Java虚拟机将从指定类中的main方法开始执行。..

2020-07-16 21:01:51 299

原创 Java基础知识:概述与术语

Java是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和提供一个诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。Java关键术语:1简单性 2面向对象 3分布式 4健壮性 5安全性 6体系结构中立 7可移植性 8解释型9高性能 10多线程 11动态性。简单性:Java删减了C++中许多 少用 复杂 易错 的特性。 面向对象:面向对象是一种程序设计技术。将重点放在 对象 和 对象的接口 上。C++与Java主要不同在于多重继承,Java用接口的概念取而代之。...

2020-07-05 10:53:58 168

原创 数据结构与算法:二分算法

Ⅰ.二分算法:二分算法是非常精妙的算法,可以将许许多多问题转化为判定的问题。二分的应用范围十分广泛,并不仅仅应用在单调区间上查找数值。而且二分算法经常与离散化配套使用,是居家旅行必备的算法。什么时候可以对问题进行二分?二分的本质并不是单调性,而是我们通过某种判定,使得区间的前半部全部满足而后半部分全部不满足,此时就可以二分了。二分算法虽然有模板且代码量短,但是许多细节需要注意,非常容易陷入死循环或者数组越界的麻烦(整数域的二分)。我们最好深刻理解,我们通过二分最后得出的位置究竟是代表什么意义。(本人

2020-07-03 18:45:41 281

原创 数据结构与算法:归并排序

Ⅰ.归并排序(MergeSort):归并排序是一种非常常见而且应用较为广泛的排序算法。它的最坏时间复杂度是O(N*logN)。它是一种基于分治思想的排序算法。Ⅱ.归并排序算法的思路:归并排序包含“归”与“并”。“归”代表递归, “并”代表合并。这两个关键字涵盖了归并排序的两大核心操作。1.不断地将区间对半分割,并递归下去。2.将递归返回后的子区间合并。Ⅲ.归并排序算法的玄学思考:归并排序的快是基于 “合并两个有序子区间会很快”的思路:合并两个有序子区间,我们只需借助第三个数.

2020-07-02 14:23:48 151

原创 数据结构与算法:快速选择算法

Ⅰ.快速选择算法介绍:快速选择算法思路几乎与快速排序算法相同。快速选择算法可以快速求出序列中第k小的元素。Ⅱ.快速选择算法的思路:快速选择算法可以看作是快速排序算法的“一半”。快速排序算法可以得出整个序列的大小顺序,但是,现在我只想知道第k小的元素是什么,其余的不关心。求第k小的元素而把整个序列排序又太过小题大作。那么,现在进行的是快速排序算法,假设我选取的枢纽元是p。在双指针交换元素之后,[ l, j ]区间是全部小于p的元素, [ j + 1, r ]区间是全部大于p的元素。.

2020-07-02 13:23:31 288

原创 数据结构与算法:快速排序算法

1.简单介绍快速排序算法。2.快速排序算法的实现思路。3.快速排序算法的代码实现。

2020-07-02 12:37:40 186

空空如也

空空如也

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

TA关注的人

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