![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javaSE
Boogie_97
这个作者很懒,什么都没留下…
展开
-
Java设计模式--观察者模式
在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。抽象被观察者角色:也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现...原创 2018-05-23 18:56:29 · 198 阅读 · 0 评论 -
JavaNIO
NIO基础:三大核心组件:Buffer(缓冲): Buffer是一个缓冲区的数据对象。 任何时候访问NIO中的数据,都需要通过缓冲区(Buffer)操作。 包含一些要写入或者读出的数据。读写操作都是基于缓冲区操作的。 每一个Java基本类型都对应着一种Buffer。 Channel(通道):Channel和流类似。但又有区别。 Channel支持异步操作。而流原创 2018-01-12 11:02:58 · 201 阅读 · 0 评论 -
Java多线程编程
线程与进程线程:进程中负责程序执行的执行单元 线程本身依靠程序进行运行 线程是程序中的顺序控制流,只能使用分配给程序的资源和环境进程:执行中的程序 一个进程至少包含一个线程单线程:程序中只存在一个线程,实际上主方法就是一个主线程多线程:在一个程序中运行多个任务,目的是更好地使用CPU资源线程的实现继承Thread类 在java.lang包中定义, 继承Thread类必须重原创 2017-12-16 13:47:07 · 223 阅读 · 0 评论 -
java注解
元注解: 元注解的作用就是负责注解其他注解。 Java5.0定义了4个标准的meta-annotation类型。 它们被用来提供对其他annotation类型作说明。Java5.0定义的元注解: 1. @Target, 2. @Retention, 3. @Documented, 4. @Inherited 这些类型和它们所支持的类在ja原创 2018-01-01 16:28:41 · 214 阅读 · 0 评论 -
java线程池
线程池线程池的好处: 重用存在的线程,减少对象创建、消亡的开销。 有效控制最大并发数,提高系统资源使用率。 定时执行、定期执行。线程池所在的包为java.util.concurrent 顶级接口为Executor,真正的线程池接口是ExecutorService Executors类提供农创建线程池的方法 newCachedThreadPool() 创建原创 2017-12-26 14:31:46 · 277 阅读 · 0 评论 -
Log4j
一、为什么使用log4j—>log for Java??01. console控制台中显示的行数有限。信息会丢失。02. System.out.println()会影响我们的系统性能。03. 如果我们需要对用户的一些行为和行为,进行分析 需要收集用户的信息,分析用户的行为,反馈给用户。二、什么是logj??01. 使用java语言编写的日志框架。02. 是Apache的一个开源项目。原创 2018-01-01 13:58:26 · 187 阅读 · 0 评论 -
Java网络编程
一:计算机网络概述 计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。 按照地理位置覆盖可以分为局域网、城域网和广域网。 - 局域网:被用于连接公司办公室,实验室或者机房教室等。 - 城域网:覆盖城镇内的广大地理区域,是在一个城市范围内所建立的计算机通信网络, - 广域网:覆盖广阔的地理位置,范围可以超原创 2017-12-17 15:29:31 · 646 阅读 · 0 评论 -
java高级特性:实用类
java的强大之处在于它提供了多种多样的类库。大大提高了编程效率和质量。 java.lang : java使用最广泛的类,自动导入所有程序中,最基础的类和接口、包装类、Math类、String类等常用的类都包含在此。此外,该包还提供了用于管理类的动态加载、外部进程创建、主机环境查询、安全策略实施等的系统操作类。 java.util : 包含了系统辅助类,特别是Collection、Lis原创 2017-12-10 13:41:52 · 4049 阅读 · 0 评论 -
java高级特性:集合框架
数组和集合的区别 数组可以存储基本数据类型和对象,集合中只能存储对象,(可以以包装类的形式存储基本数据类型)。 数组长度固定,集合长度可以动态改变。 定义数组必须指定数组的元素类型,集合默认的所有元素都是Object。 无法直接获取实际存储的元素个数,length用来获取数组长度,而集合框架中size()方法可以直接获取数组是急的元素个数。 数组采用分配连续空间的方式,集合原创 2017-12-03 16:01:23 · 1632 阅读 · 0 评论 -
正则表达式
正则表达式(Reglar Expression):基本语法: 普通字符:字母、数字、汉字、下划线以及没有特殊定义的标点符号都是”普通字符”。 表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。高级语法: 大小写是取反的意思。 \d : 0-9之间任意的一个数字。 \D :0-9之间任意的一个非数字。 \w :任意一个字母数字下划线。原创 2017-12-30 13:27:50 · 213 阅读 · 1 评论 -
代理模式
代理模式:作用: 为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介作用。 其特征是代理与委托类有同样的接口。 代理模式是常用的设计模式。功能: 代理类不仅仅是一个隔离客户端和委托类的中介。 我们还可以借助代理类再次增加一些功能,而不需要修改原有代码。符合开闭原则。原创 2018-01-06 10:09:41 · 211 阅读 · 0 评论 -
Java设计模式--装饰者模式
在学习Mybatis二级缓存时,了解到sqlsessin对象会使用到一个Executor和相应的CachingExecutor的装饰者模式。所以就来具体了解一下。 Mybatis二级缓存详解–》https://blog.csdn.net/luanlouis/article/details/41408341。 强烈推荐!!! 接下来具体讨论装饰者模式:装饰者模式定义: 动态地将责任...原创 2018-05-21 17:02:36 · 3593 阅读 · 0 评论 -
Java统计字符串中中文,英文,特殊字符出现的次数
面试题:输入一行字符,分别统计出其中英文字母、中文字符、空格、数字和其它字符的个数可以根据各种字符在Unicode字符编码表中的区间来进行判断,如数字为’0’~’9’之间,英文字母为’a’~’z’或’A’~’Z’等,Java判断一个字符串是否有中文是利用Unicode编码来判断,因为中文的编码区间为:0x4e00–0x9fbb, 但通用区间来判断中文也不非常精确,因为有些中文的标点符号利用区间判断会转载 2018-03-23 16:17:26 · 5311 阅读 · 2 评论 -
迭代器模式
迭代器模式:提供一种方法访问一个容器中的各个元素,而又不暴露该对象的内部细节。属于行为类模式迭代器模式也是使用较多的一种模式。 遍历集合时,就必须先获得集合的iterator迭代器再遍历。这里的iterator就属于迭代器模式结构:抽象容器:一般是一个接口,提供一个iterator()方法。 例如java中的Collectiion接口。List接口,Se原创 2018-01-10 20:43:05 · 181 阅读 · 0 评论 -
外观者模式
外观模式: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口。 这个接口使得这一子系统更加容易使用。 外观模式是一种结构性模式。要点:1.外观模式为复杂的子类提供了一个简单的接口,并不为子系统添加新的功能和行为。2.外观模式是吸纳了子系统和客户系统之间的松耦合。3.外观模式没有封装子系统的类,只是提供了简单的接口。 如果应用需要,它并不限定客户使用子类。因此原创 2018-01-09 09:42:31 · 275 阅读 · 0 评论 -
深入理解JVM(三)--对象存活判定算法
GC的历史比Java的历史要久远的多。虽然目前内存的动态分配与内存回收技术已经相当成熟,但是当需要排查各种内存溢出、内存泄漏的问题以及当垃圾回收系统成为系统达到更高并发的瓶颈时,我们就需要实施必要的监控和调节了。java中内存区域中的程序计数器、虚拟机栈、本地方法栈3个区域随着线程生灭,因此,这三个区域内就不需要过多考虑回收的问题。 但是JVM堆和方法区则不同。比如说一个接口的多个实现类需要的内原创 2018-01-17 18:38:37 · 671 阅读 · 0 评论 -
JAVA小项目-搜搜移动大厅
搜搜移动大厅(SouSouMobileHall) 主菜单: 1. 登录:输入正确的手机卡号和对应的手机密码进入子菜单 登录子菜单: - 本月账单查询:输出卡号的套餐资费、实际消费金额、账户余额。 - 套菜余量查询:输出卡号的套餐内剩余资费情况。 - 打印清单:输出消费详单。 - 套餐变更:输入本套餐提示已定,输入其他套餐需要判断当前余额是否满原创 2017-12-25 19:01:35 · 26802 阅读 · 20 评论 -
深入理解JVM(二)--HotSpot虚拟机对象探秘
实用优先,先从常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配、布局、访问的全过程。对象的创建Java是一门面向对象的编程语言。在Java程序运行过程中无时无刻都有对象被创建出来,在语言层面上,创建对象仅仅是一个new关键字而已,而在虚拟机中,对象的创建是一个复杂的过程。(这里的对象是指Java中的一半对象,不包括数组和Class对象。)原创 2018-01-16 10:52:41 · 317 阅读 · 0 评论 -
深入理解JVM(一)--Java内存区域与内存溢出异常
先从概念上介绍JVM虚拟机加内存的各个区域。知道这些区域的作用、服务对象以及可能出现的问题,是去真正的理解和调优JVM的基础工作。Java虚拟机在执行Java代码时会把它所管理的内存划分为不同的数据区域。这些区域都有各自的用途,以及销毁创建的时间。包含以下几个运行时的数据区域。 其中方法区与堆是由所有线程共享的数据区,虚拟机栈、本地方法区、程序技术器都是线程隔离的,相互不影响。(图中笔误,错写了本原创 2018-01-15 15:13:57 · 236 阅读 · 0 评论 -
JAVA基础(一)java语言基础
2017.11.08 java:1995年5月。詹姆斯·高斯林推出语言特点: 1.面向对象 2.多线程 3.跨平台。依靠JVM。JAVA SE 标准版 JAVA EE 企业级开发 JAVA ME 嵌入式开发JDK:java开发工具包。java核心,包含了JRE和许多类库。(Java Development) JRE:Java运行环境,包含JVM。 JVM:java虚拟机。解析字节原创 2017-11-08 16:16:08 · 458 阅读 · 0 评论 -
java异常概述
异常关系 在Java中提供了一些异常用来描述经常发生的错误,对于这些异常,有的需要程序员进行捕获处理或声明抛出,有的是由Java虚拟机自动进行捕获处理。Java中常见的异常类:1. runtimeException子类: 1、 java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。转载 2017-12-02 10:26:10 · 333 阅读 · 0 评论 -
java三大特性:(三)多态
多态是具有表现多种形态能力的特征。 通一个实现接口,使用不同实例而执行不同操作。 引用一个小例子会更明白: A类:public class A { public String show(D obj){ return ("A --> D"); } public String show(A obj){ return ("A --> A");原创 2017-11-27 15:46:17 · 371 阅读 · 0 评论 -
JAVA数据类型_面试题
short s1=1;s1=s1+1;//1short s2=1;s2+=1;//2对于注释1来说,在s1+1运算时自动提升为int类型,所以将int赋值给short类型会出现类型转换错误,除非加上强转。 对于注释2来说,+=是java语法的规定符,所以java编译器会对它进行特殊类型处理,可以正确编译执行。Java的Integer和int有什么区别 int是java内置基本数据类型之一,j原创 2017-11-13 15:14:02 · 808 阅读 · 0 评论 -
Scanner接收中文乱码
身边好多同学出现了Scanner接收字符串中文乱码的问题, 如果要执行的话 Run AS Configurations –> common –>将Console Encoding中添加编码改为GBK就可以了。不知道为什么整个环境的编码和项目的编码还有java源文件的编码都为utf-8 但还是不行。记录一下吧。原创 2017-11-13 14:29:30 · 2302 阅读 · 0 评论 -
数据类型与相互转换
1.1 Java为什么需要保留基本数据类型http://www.importnew.com/11915.html基本数据类型对大多数业务相关或网络应用程序没有太大的用处,这些应用一般是采用客户端/服务器模式,后端有数据库。但是,基本数据类型对以数值计算为主的应用程序来说是必不可少的。 自从1996年Java发布以来,基本数据类型就是Java语言的一部分,因此Java是双类型的系统,即具有基本数据转载 2017-11-11 17:50:04 · 308 阅读 · 0 评论 -
java变量排序
接收三个变量,按从小到大的顺序排序。 简单一点的: Scanner sc = new Scanner(System.in); System.out.print("a="); int a = sc.nextInt(); System.out.print("b="); int b = sc.nextInt();原创 2017-11-13 16:08:43 · 861 阅读 · 0 评论 -
Scanner答疑
Scanner答疑转载 2017-11-07 18:37:02 · 328 阅读 · 0 评论 -
如何用Myeclipse进行调试
以前一直不知道怎么调试,走了很多的弯路,现在收集了一下很多大牛发的有关调试的文章,供大家参考,我只是纯粹的搬运了一下下~(一)10个Java调试技巧在开始之前,推荐大家去看看Eclipse shortcuts这篇文章,它将会给你带来很多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在开始前给大家提3点建议: 不要使用System.out.println作为调试转载 2017-11-11 16:37:16 · 290 阅读 · 0 评论 -
吃货联盟点餐系统
java点餐系统总结public static void main(String[] args) { /** * 存储六类订单信息 */ String[] names=new String[30];//保存订餐人姓名 String[] dishMegs=new String[30];//保存所选信息,包括菜品以及分数 int[] times=new原创 2017-11-10 18:09:46 · 1224 阅读 · 0 评论 -
integer ==比较
Java的8种基本类型(Byte, Short, Integer, Long, Character, Boolean, Float, Double), 除Float和Double以外, 其它六种都实现了常量池, 但是它们只在大于等于-128并且小于等于127时才使用常量池。由如下例子可以看出:[java] view plain copypublic static void main(String[]转载 2017-11-08 19:01:38 · 219 阅读 · 0 评论 -
java三大特性:(一)封装
方法的重载方法名相同;参数列表不同。这称为方法重载。 可以通过构造方法的重载来实现多种初始化行为。 在创建对象时可以根据需要选择合适的构造方法。 判断方法重载的依据:必须在同一个类里。方法名称相同。参数列表(方法参数的个数或者参数类型)不同。与方法返回值和方法修饰符没有任何关系。这样也是可以的!!!! public class sc { public void原创 2017-11-22 17:31:04 · 259 阅读 · 0 评论 -
JAVA面向接口编程
1. 接口是一种规范和标准,是一些方法特征的集合,但没有方法实现。2.抽象类利于代码复用,接口利于代码的扩展和维护。3.接口中只有全局静态常量和全局静态方法。常量必须有初始值。4.接口之间可以通过extends实现继承关系,一个接口可继承多个接口。面向接口编程组装电脑面向接口编程。CPU接口public interface Cpu { /* * 获取CPU品牌 */原创 2017-12-02 09:21:55 · 684 阅读 · 0 评论 -
Java随机生成中文姓名+手机+邮编+地址
import java.util.HashMap; import java.util.Map; /** * 随机生成中文姓名,性别,Email,手机号,住址 * @author X-rapido */ public class RandomValue { public static String base = "abcdefghijklmnopqrstuvwxyz0原创 2017-12-23 16:55:48 · 3351 阅读 · 1 评论 -
Java 中 == 比较的是什么?
1、对于对象引用类型:“==”比较的是对象的内存地址。 例子:public class ArrayTest {public static void main(String[] args){ String a = new String("aw"); String b = new String("aw"); System.out.println(a==b);//false}}转载 2017-11-08 19:25:42 · 8694 阅读 · 0 评论 -
java三大特性:(二)继承
extends继承是java面向对象的三大特性之一,是java实现代码重用的重要手段之一。 java中只支持单继承,每个类只能有一个直接父类。那么子类继承父类会得到父类的哪些特性呢: 继承public和protected修饰的属性值和方法,无论子类父类是否在同一个包里。 继承默认权限修饰符的属性和方法,但子类和父类必须在同一个包里。 无法继承private修饰的属性值和方法。原创 2017-11-26 10:50:25 · 323 阅读 · 0 评论 -
随机数与位运算
2017.11.17随机数: Math:算数类 Math.random();生成随机数。 Random:随机数类 Math.random();其实是调用Random.nextDouble(); 两个方法都返回0.0-1.0之间的浮点数;不包含1.0。 Math不需要实例化。Math中的所有的类都由static修饰,可以直接访问方原创 2017-11-17 19:29:43 · 1005 阅读 · 0 评论 -
继承、多态:汽车租赁系统
需求说明:实现过程 抽象类Moto_Vehilclepublic abstract class Moto_Vehilcle { private String no; //车牌号 private String brand; //品牌 private int perRent; //日租金 public Moto_Vehilcle(){ }原创 2017-11-26 11:06:52 · 6756 阅读 · 0 评论 -
java内部类
外部类:外部类必须是public,不能更改访问权限修饰符。 内部类: 把一个类写在了另一个类或方法中, 可以设置访问权限修饰符。成员内部类 在类中创建的类称为成员内部类。 可以拥有private、protected访问权限修饰符。 实例化是时必须先new出外部类的对象。 外部类和内部类属性同名,默认使用内部类。 若要使用外部类的方法和属性:外部类名.原创 2017-12-13 14:21:05 · 142 阅读 · 0 评论 -
XML
XML不多总结,值得一提的是,XML中对特殊字符的处理。 如果在XML中有大量的特殊字符,可以使用CDATA处理。 CDATA中的所有字节都会被当做字符数据的常量部分。 语法:<![CDATA[ ]]> XML注释语法:<!-----注释内容------>重点是解析XML。这里总结两种方式。DOM解析方式: DOM是 基于XML的数结构来完成解析的。DOM解析文档时,会根据读原创 2017-12-21 14:40:29 · 237 阅读 · 0 评论 -
java高级特性:File I/O
File类:File类即可表示一个文件,也可以表示目录,利用它可以代表一个文件或者目录。 当然可以对它进行基本操作。可以查出与文件的相关信息,如名称、最后修改日期、文件大小等。 File file=new File(pathName);pathName即表示文件路径名。 File file =new File(C:\\test.txt);注意:在windows操作系统中文件路径名可以原创 2017-12-11 15:52:47 · 295 阅读 · 0 评论