Java高级编程
一只瓶子a
这个作者很懒,什么都没留下…
展开
-
Java多线程编程
1、进程与线程Java语言的特点之一即是支持多线程开发。在传统的DOS系统时代,如果电脑出现病毒,那么所有的程序将无法执行,因为传统的DOS采用的是单进程处理,即在同一时间段上只允许一个程序在执行。而多进程就表示在一个时间段可以同时运行多个程序,这些程序将进行资源的轮流抢占。所以在同一个时间段上会有多个程序依次执行,但是在同一个时间点上只会有一个进程执行。到了多核CPU,即可以处理的CPU增加...原创 2019-07-14 17:56:37 · 188 阅读 · 0 评论 -
比较器
1、比较器是指进行大小关系的确定判断。数组排序:String data[] = new String[] {"X", "B" , "C" , "G"};Arrays.sort(data); //进行对象数组排序System.out.println(Arrays.toString(data));2、Comparable比较器要实现对象的比较需要有比较器即通过Comparable接...原创 2019-07-17 18:00:08 · 208 阅读 · 0 评论 -
数据库连接
1、Java中专门为JDBC提供的模块(java.sql),模块中核心包java.sql。JDBC中核心的组成就是DriverManger类和若干接口(Connection、Statement、PreparedStatement、ResultSet)。JDBC的程序数据库访问:①JDBC-ODBC桥连接(不会再使用):利用微软的ODBC技术进行数据库的连接,而后再利用JDBC技术访问ODBC技...原创 2019-07-30 11:20:28 · 123 阅读 · 0 评论 -
IO操作
1、字符编码常用的编码:GBK/GBK2312:国际编码,可以描述中文信息,其中GB2312只描述简体中文,GBK包含简体中文与繁体中文ISO8859-1:国际通用编码,可以描述所有的字母信息,如果是象形文字则需要编码处理UNICODE编码:采用十六进制的方式存储,可以描述所有的文字信息,缺点是太大UTF编码:象形文字部分使用十六进制编码,普通字母采用的是ISO8859-1编码,优...原创 2019-07-20 18:20:09 · 69 阅读 · 0 评论 -
输入与输出支持
1、打印流打印字节流:public class PrintStream extends FilterOutputStream implements Appendable, Closeable(public class FilterOutputStream extends OutputStream)打印字符流:public class PrintWriter extends Writer...原创 2019-07-20 21:58:21 · 86 阅读 · 0 评论 -
对象序列化
1、对象序列化是指将内存中保存的对象以二进制数据流的形式进行处理传输,可以实现对象(在堆内存中)的保存或网络传输。但是并不是所有的对象都可以被序列化,如果希望对象被序列化那么对象所在的类一定要实现java.io.Serializable父接口,作为序列化的标记,这个接口中没有任何方法,其描述的是一种类的能力,Java中另一个描述能力的接口是Closeable接口。2、序列化与反序列化处理...原创 2019-07-20 23:13:50 · 2762 阅读 · 0 评论 -
反射机制
1、“正”操作是指当使用一个类时,先导包,然后对类进行对象实例化操作,再依靠对象调用类中方法。而反射所谓的“反”即根据实例化对象反推出其类型。实现“反”的操作,首先要实现Object类中的一个方法:获取Class对象信息:public final Class<?> getClass() //通过实例化对象找到对象的根源(包)2、class类对象的三种实例化模式反射中所...原创 2019-07-22 11:47:50 · 73 阅读 · 0 评论 -
反射与类操作
1、在反射机制的处理过程中不仅仅是实例化对象的处理操作,还有类的组成结构操作,类的组成结构:父类、父接口包、属性、方法等2、获取类的基本信息获取指定类的Class对象:Class<?> cls = Person.class ;获取类所在的包名称:public Package getPackage()获取父类的定义:public Class<? super T...原创 2019-07-22 15:52:45 · 148 阅读 · 0 评论 -
反射与简单Java类
1、传统开发过程中,简单Java类中如果有大量的属性,那么就会存在大量的setter与getter方法,从而导致代码编写的重复性会非常高。要想解决对象的重复处理操作就可以利用反射机制。2、属性自动设置解决方案import java.lang.reflect.* ;public class BDemo { public static void main(String[] args)...原创 2019-07-23 11:21:22 · 142 阅读 · 0 评论 -
类加载器
1、ClassLoader类加载器系统的环境变量CLASSPATH的主要作用是在JVM启动的时候进行类加载路径的定义。在JVM中可根据类加载器进行指定路径中类的加载,即找到类加载器就找到了类的来源。而类加载器通过ClassLoader类来获得,要想获得ClassLoader类对象则需使用Class类(反射的根源)来实现。方法:public ClassLoader getClassLoader...原创 2019-07-30 15:56:02 · 119 阅读 · 0 评论 -
集合输出
从JDK1.8开始Iterable接口中提供的用于集合输出的forEach()方法使用较少,常用的四种集合输出形式:Iterator迭代输出、ListIterator双向迭代输出、Enumeration枚举输出、foreach输出1、Iterator迭代输出获取Iterator接口对象:public Iterator<E> iterator()Iterator接口中定义的...原创 2019-07-28 10:45:02 · 281 阅读 · 0 评论 -
集合工具类
1、Stack栈操作栈是一种先进后出的数据结构。类定义:public class Stack<E> extends Vector<E>Stack是Vector的子类,但它使用的并不是Vector类中的方法,类中方法:入栈:public E push(E item)出栈:public E pop()出栈顺序:先入后出,数据取完时会出现空栈异常。2、Qu...原创 2019-07-28 15:20:37 · 491 阅读 · 0 评论 -
网络编程(TCP程序、UDP程序)
1、网络编程是指多台主机之间的数据通讯操作,其要分为客户端与服务器端。在网络通讯的实现上产生的一系列处理协议:IP、TCP、UDP等。网络程序开发的两种模型:C/S:要开发出两套程序,一套为客户端,一套为服务器端,当服务器端发生改变后客户端也应进行更新处理。这种开发可以由开发者自定义传输协议,并且使用一些较为私密的端口,安全性较高,但是开发与维护成本较高。B/S:只开发一套服务器端的程...原创 2019-07-29 17:25:03 · 608 阅读 · 0 评论 -
开发支持类库
1、UUID类UUID是一个能够生成无重复字符串的程序类,这种程序类的主要功能是根据时间戳实现一个自动的无重复的字符串定义。获取UUID对象:public static UUID randomUUID()根据字符串获取UUID内容:public static UUID fromString(String name)在对一些文件进行自动命名处理的情况下,UUID类型非常好用。...原创 2019-07-17 16:51:20 · 162 阅读 · 0 评论 -
类集
一、类集框架1、Java从JDK1.2开始引入类集,对常见的数据结构进行完整的实现包装,提供了一些列的接口与实现子类来降低数据结构所带来的困难。从JDK1.5开始,由于泛型技术的推广,类集也得到了良好的改进,可以直接利用泛型来保存相同类型的数据。从JDK1.8开始类集的实现算法也得到了良好的性能提升。2、Collection接口java.util.Collection是单值集合操作最大...原创 2019-07-27 09:52:45 · 297 阅读 · 0 评论 -
线程常用操作方法
1、线程的命名和取得多线程的操作方法主要都在Thread类中定义。多线程的运行状态是不确定的,在程序开发过程中获取需要使用的线程需要通过线程的名字来进行操作。在Thread类中提供的线程名称处理:构造方法:public Thread(Runnable target, String name);设置名字:public final void setName(String name);取...原创 2019-07-14 22:38:39 · 110 阅读 · 0 评论 -
线程的同步与死锁
1、线程同步:当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态。如果线程不同步,即在不同线程同时访问同一资源的过程中就会出现问题。2、线程同步处理——关键是“锁”使用synchronized关键字实现线程同步。在同步代码块中的代码每次仅允许一个线程执行。利用同步代码块解决:cla...原创 2019-07-15 11:31:22 · 178 阅读 · 0 评论 -
多线程小问题
1、被禁用的一些操作多线程的方法:停止多线程:public void stop();销毁多线程:public void destroy();挂起线程:public final void suspend();恢复挂起:public final void resume();被废除的主要原因在于这些方法可能会导致线程的死锁。2、优雅地停止线程将线程对象要执行的操作放在whil...原创 2019-07-15 17:21:49 · 63 阅读 · 0 评论 -
多线程示例-竞拍抢答
//竞拍抢答,设置三个抢答者,同时发出抢答,抢答成功或失败均给出提示。这个多线程的操作里存在数据返回问题,最好使用Callableimport java.util.concurrent.Callable;import java.util.concurrent.FutureTask;//定义一个操作的资源class MyThread implements Callable<String...原创 2019-07-15 18:18:34 · 404 阅读 · 0 评论 -
Java基础类库
1、StringBuffer类String类的特点:①每一个字符串的常量都属于一个String类的匿名对象,并且不能更改;②String有两个常量池,包括静态常量池和运行时常量池;③String类对象实例化建议使用直接赋值的形式完成,这样可以直接将对象保存在对象池之中以方便下次重用。String类的不足在于内容不允许修改。为了解决需要对字符串内容进行修改的需求,Java提供了StringB...原创 2019-07-15 23:28:41 · 86 阅读 · 0 评论 -
类库使用案例分析
//类库使用案例分析import java.util.Random ;import java.util.Arrays ;import java.util.regex.Matcher ;import java.util.regex.Pattern ;public class NewDemo { public static void main(String[] args) {...原创 2019-07-18 11:13:41 · 100 阅读 · 0 评论 -
文件操作
1、文件操作类java.io.File2、File类是Comparable接口的子类,所以File类对象可以进行排序处理。构造方法:设置操作路径:public File(String pathname)设置父路径与子目录:public File(File parent, String child)对文件进行基本操作的方法:判断文件是否存在:public boolean ...原创 2019-07-18 14:21:22 · 116 阅读 · 0 评论 -
数字操作类和日期操作类
1、Math类:public final class Math extends Object(不能被继承)该类的构造方法被私有化了,且多有的方法均为static型的方法,即所有的方法都可以通过类名称直接调用Math类中提供有四舍五入的处理方法:Math.round(),但是这个方法在处理的时候是直接将小数点后的所有位进行四舍五入处理,这样较为不方便,可以考虑实现指定位数的保留。即自定义的按...原创 2019-07-16 10:57:55 · 79 阅读 · 0 评论 -
正则表达式
1、正则表达式最早是从Perl语言中发展而来,在JDK1.4之前如果需要使用正则表达式的相关定义则需要引入其他的*.jar文件,而JDK1.4之后已经默认支持正则表达式,并且提供有java.util.regex开发包,也使String类有方法直接支持正则处理。使用正则表达式的最大特点在于方便进行验证处理,以及方便进行复杂字符串的修改处理。2、正则标记java.util.regex开发包中提...原创 2019-07-16 20:34:33 · 114 阅读 · 0 评论 -
字节流与字符流
1、输入与输出操作传递的是一种数据流,即字节数据,这种流的处理形式在java.io包中提供了两类支持:字节处理流(abstract):OutputStream(输出字节流)、InputStream(输入字节流)字符处理流(abstract):Writer(输出字符流)、Reader(输入字符流)2、OutputStream类定义:public abstract class Output...原创 2019-07-19 19:01:00 · 170 阅读 · 0 评论 -
反射与代理设计模式
1、代理设计模式的核心是有真实业务实现类与代理业务实现类,代理类会完成比真实业务更多的处理逻辑。2、传统代理设计模式的弊端:所有的代理设计模式如果按照设计要求来讲,必须是基于接口的设计。而静态代理设计的特点在于:一个代理类只为一个接口服务。这也是问题所在。3、动态代理设计模式:为所有功能一致的业务操作接口提供统一的代理处理操作其中,InvocationHandler接口规定了代理方...原创 2019-07-30 21:13:38 · 95 阅读 · 0 评论 -
国际化程序实现
1、国际化程序是指同一段代码可以根据不同国家实现不同的语言描述,但是程序处理的核心业务是相同的。2、Locale类在java.util包中提供有一个专门描述区域和语言编码的类Locale类。构造方法:Locale(String language)Locale(String language, String country)国家和语言代码:中文代码:zh_CN、美国英语代码:e...原创 2019-07-17 10:25:01 · 119 阅读 · 0 评论 -
Stream基本操作
1、从JDK1.8开始,为适应大数据时代,类集里面也支持有数据的流式分析处理操作的Stream接口,同时在Collection接口里面也提供有此接口实例化的方法。获取Stream接口对象:default Stream<E> stream()2、Stream基础操作Stream主要功能是进行数据的分析处理,同时主要是针对于集合中的数据进行分析操作。import java...原创 2019-07-29 09:51:33 · 349 阅读 · 0 评论