控制台程序. Obserable类提供了一个有趣的机制,可以把类对象中发生的改变通知给许多其他类对象. 对于可以观察的对象来说,类定义中需要使用java.util.Observable类.只需要简单地从Observable类派生出要监控对象所属的类即可. 用于观察器的类要实现Observer接口,只需要定义方法update()即可.这个方法在对应的Observable对象发生变化时调用.传送给update()方法的第一个参数是对Observable对象的引用,Observable对象发生了变化并…
控制台程序. Scanner类提供了一种方式,用来指定如何识别标记.这需要使用next()方法的两个重载版本.其中的一个版本接受Pattern类型的参数.另一个版本接受String类型的参数,用来指定标识标记的正则表达式.在这两个版本中,标记都返回为String类型. import java.util.Scanner; import java.util.regex.Pattern; public class ScanString { public static void main(String[…
控制台程序. java.util.Scanner类定义的对象使用正则表达式来扫描来自各种源的字符输入,并把输入显示为各种基本类型的一系列标记或者显示为字符串. 默认情况下,Scanner对象读取标记时,假定它们用空白分隔开.对于空白对应的任意字符,Character类中的isWhitespace()方法都返回true.因此,读取标记时,要跳过分隔符,找到不是分隔符的字符,然后尝试以要求的方式解释那些不是分隔符的字符序列. import java.util.Scanner; import java…
控制台程序. 正则表达式只是一个字符串,描述了在其他字符串中搜索匹配的模式.但这不是被动地进行字符序列匹配,正则表达式其实是一个微型程序,用于一种特殊的计算机——状态机.状态机并不是真正的机器,而是软件,专门用于解释正则表达式,根据正则表达式隐含的操作分析给定的字符串. Java中的正则表达式功能通过java.util.regex包中的两个类实现:Pattern类定义了封装正则表达式的对象:Matcher类定义了封装状态机的对象,可以使用给定的Pattern对象搜索特定的字符串. import…
控制台程序. 公历是西方使用的日历,用GregorianCalendar类的对象来表示.GregorianCalendar对象封装了时区信息.日期和时间数据.GregorianCalendar对象有7个构造函数,默认构造函数用当前日期和时间在计算机所在的默认地点创建了日历,其他构造函数则指定了年份.月份.日期.小时.分钟和秒.默认构造函数适用于大多数情况.默认构造函数为: GregorianCalendar calendar=new GregorianCalendar(); 这个对象被设置为当前…
控制台程序. java.util包中含有相当多的类涉及日期和时间,包括Date类.Calendar类和GregorianCalendar类. Date类对象其实定义了精确到毫秒的时刻,从1970年1月1日00:00:00时(GMT,格林威治时间)开始算起.因为是相对于特定的时刻,所以也对应着日期. Calendar类是GregorianCalendar的基类,表示每个人都习惯使用的日/月/年日历,另外还提供了从Date对象中获取日.月和年信息的方法. DateFormat类是抽象类,可用于创建D…
控制台程序. Arrays类中的binarySearch()静态方法使用二叉树搜索算法,在有序数组中查找包含给定值的元素.只有当数组的元素按升序方式排序时,该方法才是最有效的,否则就应在调用binarySearch()方法之前调用sort()方法. binarySearch()方法的所有版本都返回int类型的值,也就是在array中找到value的索引位置.当然,value也可能不在数组中,此时返回一个负整数.计算过程是:提取大于value的第一个元素的索引位置,翻转元素的取值符号后再减1. p…
控制台程序. Arrays类中的sort()静态方法把传送为参数的数组元素按升序方式排序. 对于第一个参数类型是Object[]的sort()方法来说,可以传送任意类型的数组.如果使用sort()方法的任何一个版本对对象数组排序,对象就必须支持Comparable<>接口,因为sort()方法使用了compareTo()方法. sort()方法的另外两个用来对对象数组排序的版本是参数化方法.它们在对数组排序是,使用外部的比较器对象来确定对象的顺序.比较器对象的类必须实现java.util.Co…
控制台程序. 使用正则表达式执行查找和替换操作,只需要调用Matcher对象的find()方法,就可以调用appendReplacement()方法来替换匹配的子序列.在提供给方法的新StringBuffer对象中创建原始字符串的修订版本.appendReplacement()方法的参数是包含新字符串的指向StringBuffer对象的引用以及匹配文本的替换字符串. import java.util.regex.Pattern; import java.util.regex.Matcher; c…
Java基础-类加载机制与自定义类Java类加载器(ClassLoader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于类加载器的概念和分类我就不再废话了,因为我在之前的笔记已经提到过了,详细能看到这篇文章的这些概念应该都烂熟于胸啦!如果你是一名小白的话可以参考我以前的笔记:https://www.cnblogs.com/yinzhengjie/p/9272289.html.本篇博客的重点侧重三点,第一,测试静态代码块:第二,编写自定义类加载器:第三,验证四级类加载机…
Java基础-DBCP连接池(BasicDataSource类)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术,来共享连接Connection.这样我们就不需要每次都创建连接.释放连接了,这些操作都交给了连接池. 一.连接池概述 1>.什么是连接池 用池来管理Connection,这样可以重复使用Connection.有了池,所以我们就不用自己来创建Conn…
一.System 1.1.概述 System 类包含一些有用的类字段和方法.它不能被实例化. 在 System 类提供的设施中,有标准输入.标准输出和错误输出流:对外部定义的属性和环境变量的访问:加载文件和库的方法:还有快速复制数组的一部分的实用方法. 字段摘要 static PrintStream err “标准”错误输出流. static InputStream in “标准”输入流. static PrintStream out “标准”输出流. 1.2.getPropertis()获取s…
接上文:Java基础——数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类. 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入.删除等操作,使用StringBuffer要更加适合一些. 在StringBuffer类中存在很多和String类一样的方…
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权限修饰符,默认访问, 类,方法,成员变量 private 权限修饰符,私有访问, 方法,成员变量 static 静态修饰符 方法,成员变量 final 最终修饰符 类,方法,成员变量,局部变量 abstract 抽象修饰符 类 ,方法 我们编写程序时,权限修饰符一般放于所有修饰符之前,不同的权限修饰…
1.类(class)的定义 类是对一组具有相同特征和行为的对象的抽象描述. 在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物. 2.对象(object)的定义 对象是类的具体实现,表示一个独立的.唯一的个体,具有属性和方法. 3.属性和方法 属性:在程序中类或者对象具有的特征,具体对象的属性拥有的数据称为属性值. 方法:类或者对象的行为. 4.定义类和对象 创建1个Student的类,类的属性有学号(sid).姓名(name).年龄(age).性别(gender),类中声明…
一.方法的返回值   当我们在程序中调用方法时,虚拟机将会跳转到对应的方法中去执行.当以下几种情况发生时,虚拟机将会回到调用方法的语句并继续向下执行: 执行完方法中所有的语句: 遇到return语句: 方法抛出一个异常(有关异常的内容将会在后面的文章中讨论).   这里我们重点介绍return语句.return语句用来返回一个值,当虚拟机遇到return语句时将会立刻结束当前方法并带着返回值回到调用此方法的地方.在声明方法时,返回值的类型要和return语句里返回的值的类型一致.如果方法没有需要…
类 面向对象是一种思想,一般指将事务的属性与方法抽出总结为模板(类/class),处理事务时通过类创建/new出对象由对象的功能/方法去完成所要计算处理的事情. 面向过程:POP:以过程,步骤为主,考虑怎么做 面向对象:OOP:以对象(谁)为主,考虑谁来做,谁能做 类:是一类具有相同特性的事物的抽象描述,是一组相关属性和行为的集合 对象:是一类事物的具体体现.对象是类的一个实例,必然具备该类事物的属性和行为. 属性:事物的状态信息. 行为:事物能够做什么. [修饰符]class 类名 {//类名…
package com.lp.ecjtu; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /** * * @author Administrator * 1.用字节读取流对象和图片相关联(输入流) * 2.用字节写入流对象创建一个图片文件.用于存储获取到的图片数据(输出流) * 3.…
一.回调 1.回调是一种常见的程序设计模式,可以指出某个特定时间发生时应该采取的动作. 在java.swing包中有一个类Timer类,可以使用它在到达指定的时间间隔作出什么动作.那么就有两个问题,即设置时间间隔和告知定时器到达时间间隔时的操作. 具体的实现是,将ActionListener类的对象传递给定时器,然后定时器就会调用传递进来的对象的方法.例如:TimePrinter类实现了 ActionListener接口中的actionPerformed方法,动作就是打印当前时间并响铃一声. c…
延续 Java基础 项目实例--Bank项目4 实验要求 实验题目 5: 在银行项目中创建 Account 的两个子类:SavingAccount 和 CheckingAccount 实验目的: 继承.多态.方法的重写. 提 示: 创建 Account 类的两个子类:SavingAccount 和 CheckingAccount 子类 a. 修改 Account 类:将 balance 属性的访问方式改为 protected b. 创建 SavingAccount 类,该类继承 Account…
需求描述 定义一个类,描述订单信息订单id订单所属用户(用户对象)订单所包含的商品(不定数量个商品对象)订单总金额订单应付金额:    总金额500~1000,打折85折    总金额1000~1500,打折80折    总金额1500~2000,打折70折    总金额超过2000,打折65折         在此基础上,还要看用户的vip等级    用户vip等级为:一般会员,则折上折:95    用户vip等级为:中级会员,则折上折:90    用户vip等级为:高级会员,则折上折:80…
1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Map集合的添加 */ Map<String, String> map = new HashMap<String, String>(); map.put("星期一", "Monday"); map.put("星期六", "…
28.按要求编写一个Java应用程序: (1)定义一个类,描述一个矩形,包含有长.宽两种属性,和计算面积方法. (2)编写一个类,继承自矩形类,同时该类描述长方体,具有长.宽.高属性, 和计算体积的方法. (3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长. 宽.高,输出其底面积和体积. package zhongqiuzuoye; //定义一个类,描述一个矩形,包含有长.宽两种属性,和计算面积方法. public class Juxing { private double x…
一.Collection简述 1.1.Collection与Collections的区别 Collections是集合的静态工具类 Collection:是集合的顶级接口 二.Sort 2.1.sort package com.pb.sort.demo1; import java.util.ArrayList; import java.util.Collections; /** * 对字符串进行自然排序 * */ public class SortDemo1 { public static vo…
控制台程序. 适配器类是指实现了监听器接口的类,但监听器接口中的方法没有内容,所以它们什么也不做.背后的思想是:允许从提供的适配器类派生自己的监听器类,之后再实现那些自己感兴趣的类.其他的空方法会从适配器类中继承,所以无须担心它们. 修改上一文中的Sketcher类如下: // Sketching application import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Sketcher…
排序操作 Collections提供以下方法对List进行排序操作 void reverse(List list):反转 void shuffle(List list),随机排序 void sort(List list),按自然排序的升序排序 void sort(List list, Comparator c);定制排序,由Comparator控制排序逻辑 void swap(List list, int i , int j),交换两个索引位置的元素 void rotate(List list,…
------- android培训.java培训.期待与您交流! ---------- 面向对象: 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程 强调的是功能行为 面向对象 将功能封装进对象,强调具备了功能的对象. 面向对象是基于面向过程的. 可以理解面向对象就是面向工具,我可以使用这个工具做一些事情. 面向对象的特点: 是一种符合人们思考习惯的思想:可以将复杂的事情简单化:将程序员从执行者转换成了指挥者. 完成需求时: •  先要去找具有所需的功能的对象来用. •  如…
FileWriter类的构造方法定义如下: 1.public FileWriter(File file)throws IOException 字符流的操作比字节流操作好在一点,就是可以直接输出字符串了,不用再像之前那样进行转换操作了. package com.lp.ecjtu; import java.io.FileWriter; import java.io.IOException; public class FileWriterDemo { /** * 字符流,创建一个FileWriter对…
java.io 类 RandomAccessFile java.lang.Object java.io.RandomAccessFile1.该类不是IO流中的子类.2.该类既能读又能写.3.该对象内部分装了一个字节数组,通过指针可以操作数组中的元素.4.其实该对象就是将字节输入流和输出流进行了封装.5.该对象只能对文件操作,目的和源只能是文件对象.通过看构造方法可以看得出来.RandomAccessFile(File file, String mode) RandomAccessFile(Str…
/** *  * 一:理解序列化反序列化及其应用 * 序列化:把堆内存的对象转化成字节流的过程. * 反序列化:把字节流序列恢复重构成对象的过程. * 对象的序列化的用途:1.把对象的字节序列持久化,保存到硬盘上,通常是文件当中. *               2.将对象变成字节流在网络上传输 * 在很多应用当中,需要对某些对象进行序列化,让他们离开堆内存空间,持久化到硬盘上,以便长期保存. * 比如最常见的web服务器中的Session对象,当有10万个用户并发访问,就有可能出现10万个Se…