J2SE
_东极
少年锦时
展开
-
反射
反射机制提供的功能运行时判断任意一个对象所属的类运行时构造任意一个类的对象运行时判断任意一个类所具有的成员变量和方法运行时调用任意一个对象的成员变量和方法生成动态代理反射相关的主要APIjava.lang.Class:代表一个类java.lang.reflect.Method:代表类的方法java.lang.reflect.Field:代表类的成员变量java.lang.ref...原创 2018-12-18 17:18:17 · 263 阅读 · 0 评论 -
IO流基本了解
概念IO流用来处理设备之间的数据传输java程序中,对于数据输入/输出操作以"流(stream)"的方式进行java.io包下提供了各种"流"类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据输入Input: 读取外部数据(磁盘,光盘等存储设备的数据)到程序(内存)中输出output:将程序(内存)数据输出到磁盘,光盘等存储设备中流的分类:按操作数据单位不同:字节流(...原创 2018-12-17 10:16:17 · 410 阅读 · 0 评论 -
注解
概述代码里的特殊标记,可以在编译,类加载,运行时被读取,并执行相应的处理,通过使用Annotation,程序员可以在不改变原有逻辑情况下,在源文件中嵌入一些补充信息JDK内置的基本注解类型@override:限定重写父类方法,该注释只能用于方法@Deprecated:用于表示某个程序元素(类,方法等)已过时@SuppressWarnings:抑制编译器警告自定义注解类型public ...原创 2018-12-17 01:19:54 · 227 阅读 · 0 评论 -
枚举类
枚举只有一个成员,则可以作为单例模式的实现方式自定义枚举类(未使用enum关键字)package com.zyd;public class TestSeason { //枚举类:在类的里面对象已经创建好了,外面直接可以调用,声明为private 和 final的 public static void main (String[] args){ Season...原创 2018-12-16 23:15:26 · 256 阅读 · 0 评论 -
泛型
起因:解决元素存储的安全性问题解决获取元素时,需要类型强转的问题自定义泛型类的使用package com.zyd;//自定义泛型类public class Order<T> { private String orderName; private int orderId; private T t; public String getOrder...原创 2018-12-16 22:28:01 · 472 阅读 · 0 评论 -
内部类
内部类:在类的内部再定义类,外部的类为外部类,里面的是内部类类中方法外 成员内部类外部类的成员:可以有修饰符1. 四个修饰符 2.static final abstract 修饰 可以调用外部类的属性和方法类 abstract修饰 还是可以在内部创建构造器,方法,定义属性方法中:局部内部类掌握三步创建成员内部类静态的外部类Person里static class D...原创 2018-10-28 01:37:43 · 214 阅读 · 0 评论 -
抽象类
抽象类abstract 修饰类为抽象类修饰的类不能被实例化有构造器,凡是类都有构造器若子类继承了抽象类,并重写了所有的抽象方法,此类可以被实例化,不用加abstract若子类继承抽象类,没有重写所有的抽象方法,意味着此类中仍然有抽象方法,必须加上abstractabstract修饰方法,抽象方法格式:没有方法体,包括{},如public abstract void eat();...原创 2018-10-27 21:02:38 · 236 阅读 · 0 评论 -
简单理解JAVA8的新特(一)lambda表达式以及基本的应用
Lambda表达式概要:lambda表达式是一个匿名函数,简单理解是可以传递的代码lambda操作符:->:左侧:Lambda表达式的参数列表,对应接口中抽象方法和参数列表右侧:Lambda表达式所执行的功能,即Lambda体,对应接口中抽象方法的实现 /** * lambda 表达式基础语法 * 1.无参数,无返回值 */ @Tes...原创 2018-10-27 17:44:43 · 303 阅读 · 0 评论 -
JAVA网络编程UDP
发送端package bank;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class send { public static void main (String[] a...原创 2018-10-24 17:07:44 · 326 阅读 · 0 评论 -
JAVA网络编程URL编程
URL:统一资源定位符一个URL的对象,对应互联网上的一个资源,通过URL的对象调用其相应的方法,将此资源出现BUG: java.net.MalformedURLException: no protocol:解决方法:加上httppackage bank;import java.awt.*;import java.io.File;import java.io.FileOutputS...原创 2018-10-24 17:04:40 · 680 阅读 · 0 评论 -
IO流-File
java.io.File类概述1.凡是与输入,输出相关的类,接口等都定义在java.io包下2.File是一个类,可以有构造器创建其对象,此对象对应一个文件或者目录3.File类对象是与平台无关的4.File中的方法,只涉及到如何创建,删除,重命名等等,涉及到修改文件内容,必须使用Io流来完成基本的方法:访问文件名getName() :获取文件名getPath():获取文件路径g...原创 2018-12-17 11:34:19 · 228 阅读 · 0 评论 -
流的基本使用FileInputStream
FileInputStream的使用从硬盘存在的一个文件中,读取其内容到程序中,使用FileInputStream代码@Testpublic void testFileInputStream1() throws IOException { //1. 创建一个File类的对象 File file = new File("hello.txt"); //2. 创建一个...原创 2018-12-17 14:31:09 · 1772 阅读 · 1 评论 -
线程的死锁与线程的通信
产生背景不同线程分别占用对方需要的同步资源部放弃,都在等待对方放弃自己需要的同步资源,形成了线程的死锁解决方法专门的算法,原则尽量减少同步资源的定义案例package com.zyd.thread;public class TestDeadLock { static StringBuilder sb1 = new StringBuilder(); static St...原创 2018-12-18 11:00:36 · 314 阅读 · 1 评论 -
多线程的优点-线程的生命周期
优点1.提高应用程序的响应,对图形化界面更有意义,增强用户体验2.提高计算机CPU利用率3.改善程序结构,将既长又复杂的进程分为多个线程,独立运行,利于理解和修改线程分类守护线程和用户线程java的垃圾回收就是一个典型的守护线程守护线程是用来服务用户线程的,通过start()方法前调用Thread,setDaemon(true)可以把用户线程变成一个守护线程当JVM中都是守护线程,...原创 2018-12-18 10:05:10 · 480 阅读 · 0 评论 -
多线程
基本概念:程序-进程-线程程序(program):完成特定任务,用某种语言编写的一组指令的集合,指一段静态的代码,静态对象进程(process):程序的一次执行过程.或正在运行的一个程序,动态过程:有它自身的产生,存在,消亡的过程线程(thread):进程可进一步细化为线程,是程序内部的一条执行路径若一个程序可以同一时间执行多个线程,就是支持多线程的多线程的使用场景程序同时执行两个以及...原创 2018-12-18 01:00:11 · 253 阅读 · 0 评论 -
RandomAccessFile文件的随机访问
RandomAccessFile介绍支持"随机访问"的方式,程序可以直接跳到文件的任意地方来读,写文件支持只访问文件的部分内容可以向已存在的文件后追加内容RandomAccessFile对象包含一个记录指针,用以标示当前读写处的位置,RandomAccessFile类对象可以自由移动记录指针long getFilePointer():获取文件记录指针的当前位置void seek(lon...原创 2018-12-18 00:57:02 · 1153 阅读 · 0 评论 -
对象流的使用以及序列化机制
对象的序列化对象的序列化机制:允许把内存中的java对象转换成平台无关的二进制流,从而允许把这种二进制流持久的保存在磁盘上或通过网络将这种二进制流传输到另一个网络节点,当其他程序获取了这种二进制流,就可以恢复成原来的Java对象优点将任何实现了Serializable接口的对象转化为字节数据,使其在保存和传输时可被还原序列化时RMI(Rmote Method Invoke – 远程方法调...原创 2018-12-17 20:54:11 · 366 阅读 · 0 评论 -
打印流和数据流
打印流:字节流 PrintStream 字符流: PrintWriter@Testpublic void printStreamWriter(){ FileOutputStream fos = null; try { fos = new FileOutputStream(new File("print.txt")); } catch (FileNotF...原创 2018-12-17 19:50:36 · 558 阅读 · 0 评论 -
转换流和标准输入和输出流
转换流提供了字符流和字节流之间的转换InputStreamReader和OutputStreamWriter字节流中的数据都是字符时,转成字符流操作更高效/*转换流:inputStreamReader OutputStreamWriter编码:字符串 ---&gt; 字节数组 字节数组 ---&gt; 字符串 */@Testpublic void test1(){...原创 2018-12-17 17:15:58 · 594 阅读 · 0 评论 -
缓冲流的使用
可以加快流的读取速度BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter字节缓冲流@Testpublic void testBufferedInputOutputStream(){ //1 提供读入,写出的文件 BufferedInputStream bis = null; Bu...原创 2018-12-17 16:38:58 · 320 阅读 · 0 评论 -
FileReader_FileWriter的使用
对于非文本文件,只能使用字节流,字符流只能针对文本文件@Testpublic void testFileReaderWriter(){ FileReader fr = null; FileWriter fw = null; try { File src = new File("a.txt"); File desc = new File...原创 2018-12-17 16:08:56 · 387 阅读 · 0 评论 -
FileOutputStream的使用_文件复制操作
FileOutputStream@Testpublic void test4() { //1. 创建一个File对象,表明要写入的文件位置 //输出的物理文件可以不存在,当执行过程中,不存在会自动创建 File file = new File("hello3.txt"); //2. 创建一个FileOutputStream的对象,将file的对象作为形参传递给F...原创 2018-12-17 15:20:06 · 3300 阅读 · 2 评论 -
final关键字
final修饰的类 不能被继承 String类 StringBuff类 System类 等修饰的方法 不能被重写 Object 的 getClass方法修饰的属性 此属性就是一个常量 习惯上用大写表示,(1) 不能默认初始化(2) 显示赋值,代码块,构造器中赋值 在对象创建之前初始化就ok(3) 在方法中初始化不行,方法调用前就已经有对象static final 修饰的常量 全局常...原创 2018-10-27 01:31:37 · 247 阅读 · 0 评论 -
异常
异常java.lang.ThrowableError 错误:程序中不进行处理Exception 异常:要求编写程序时,考虑对这些异常的处理编译时异常:在编译期间出现异常 javac.exe运行时异常:执行java.exe时,出现异常ArrayIndexOutOfBoundsException 数组下标越界ArithmeticException 算术异常ClassCastE...原创 2018-10-28 15:47:37 · 218 阅读 · 0 评论 -
基本数组的排序算法
二维数组的基本排序综合经典冒泡排序核心代码:核心思想相邻两个元素进行比较 for (int i = 0; i <a.length ; i++) { for (int j = 0; j <a.length-1-i ; j++) { if (a[j]>a[j+1]) { int temp; ...原创 2018-10-20 22:28:37 · 209 阅读 · 0 评论 -
数组
数组动态创建数组时:先声明后赋值基本数据类型:byte short int long 默认值是0float doule 默认值是0.0char是空格boolean 是false引用数据类型:默认初始化值为null 比如String一维数组的内存结构栈stack:存放局部变量,对象的引用堆heap:new出来的东西 int [] scores = new int[4]; 第一...原创 2018-10-20 13:22:53 · 204 阅读 · 0 评论 -
循环嵌套的优化
基本for循环嵌套九九乘法表 public class Test { public static void main (String[] args){ for (int i = 0; i <=9 ; i++) { for (int j = 1; j <=i ; j++) { System.ou...原创 2018-10-19 21:05:28 · 1082 阅读 · 0 评论 -
JAVA基本概念以及基础回顾(基本概念->for循环)
##JAVA基础软件:一系列按照特定顺序组织的计算机数据和指令的集合 分为系统软件和应用软件人家交互方式:图形化界面:GUI命令行的方式:Windows常见的DOS命令:dir:列出当前目录下的文件以及文件夹md:创建目录rd:删除目录cd:进入指定目录cd … :返回上一级目录cd:退回根目录del:删除文件exit:退出命令行echo Java基础>1.txt...原创 2018-10-18 00:19:12 · 435 阅读 · 0 评论 -
集合
通用 interface hashtable Resizablearray Tree LinkedList hashtabel+LinkedList Set hashset treeset linkedhashset List arraylist linkedlist Que...原创 2018-09-20 21:37:16 · 243 阅读 · 0 评论 -
JAVA的垃圾回收机制
Stack 局部变量,参数放在stack上(先进后出队列,队列的位置始终已知)其他变量放在heap上void foo() { A a = new A(); } a的地址是在Stack上的,它的内容是放在heap上的 注意:垃圾回收会暂停当前所有线程进行回收垃圾回收基本步骤:暂停程序标记所有不可回收的对象释放所有可回收对象恢复程序运行youn...原创 2018-09-20 22:39:35 · 321 阅读 · 0 评论 -
JAVA泛型
泛型 :参数化的类或者接口1.指定的类型必须是类或者接口,不能是基本数据类型2.泛型是作为参数在类或者接口的声明中定义class A<T> {…}命名规则E 元素,集合类中常用K 键N 数字T 类型V 值一般泛型:class Point< T>{ // 此处可以随便写标识符号,T是type的简称 pri...原创 2018-09-20 21:02:02 · 218 阅读 · 0 评论 -
Java的OO特性
面向对象的基本思想:使用对象,类,继承,封装,多态基本概念进行程序设计对象:系统中描述客观事物的实体,构建系统的一个基本单位,一个对象由一组属性和这组属性进行操作的一组服务组成,通过new对类进行实例化对象的生命周期:当不存在对一个对象引用,该对象成为一个无用对象,java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放,调用System.gc()强...原创 2018-09-20 20:40:09 · 2054 阅读 · 0 评论 -
序列化和反序列化
·java中的对象保存在内存中,当JVM停止运行时,对象会被回收,如果需要在将对象的内容保存,当下一次JVM启动时仍然要能够和上次运行时的值,就要将对象序列化,反序列化就是要将对象从文件读取的过程java序列化方式:1.保存为文本或者二进制文件2.将对象内容通过JDBC保存到数据库3.将对象通过JSON或许XML方式使用第三方包进行保存4.通过Serializable接口j...原创 2018-09-22 22:16:06 · 316 阅读 · 0 评论 -
JAVA的反射
反射:运行于JVM中程序检测和修改运行时的行为反射和内省的区别:内省用于在运行时检测某个对象的类型和其包含的属性反射用于在运行时检测和修改某个对象的结构和其行为内省是反射的子集Junit在运行时通过内省遍历所有包含@Test注释的方法,通过反射调用这些方法序列化在序列化的时候通过内省检测内部属性并保存反射的作用在运行时判断任意一个对象所属的类在运行时构造任意一个...原创 2018-09-22 23:26:06 · 223 阅读 · 0 评论 -
集合以及常用的方法
集合java的集合分为Collection和Map两种体系Collection接口: set:元素无序,不可重复list:有序,可重复Map接口:键值对映射关系的集合存储对象可以考虑 1. 数组 2. 集合数组存储对象的特点:缺点:一旦创建,长度是不可变的真实的数组存放的对象的个数不可加集合的基本方法 public void test01(){ ...原创 2018-10-28 17:02:41 · 322 阅读 · 0 评论 -
java中的方法块
方法块:修饰符只能用static修饰:静态代码块: static{}加载一次,加载早于非静态,早于对象的创建,随着类的加载而加载多个静态代码块按顺序执行只能对于静态的属性进行赋值非静态代码块:{}可以对属性(静态|非静态)或者方法(静态|非静态)进行初始化操作里面可以有输出语句一个类可以有多个非静态代码块,多个代码块之间顺序执行每创建一个类的对象,非静态代码块执行一次...原创 2018-10-27 01:12:14 · 2013 阅读 · 0 评论 -
JAVA网络编程基于TCP和IP协议簇
网络编程:InetAddress:代表ip地址,一个InetAddress的对象就代表一个IP地址TCP编程例一:客户端给服务端发送信息。服务端输出此信息到控制台上客户端:package bank;import java.io.IOException;import java.io.OutputStream;import java.net.InetAddress;import ja...原创 2018-10-24 11:09:42 · 273 阅读 · 0 评论 -
简单理解懒汉式和饿汉式
单例设计模式饿汉式:一个类只能创建一个对象私有化构造器在类的内部创建一个类的实例,且为static私有化对象,通过公共方法调用此公共方法只能通过类来调用,因为设置的是static,同时类的实例也是static饿汉先创建好: package bank; public class TestSingleton { public static void main (St...原创 2018-10-27 00:28:29 · 10772 阅读 · 2 评论 -
关键字 static
static:用来修饰属性方法 代码块 内部类static修饰属性(类变量):其中一个变量将属性修改了,其他变量调用也会修改设置 s1.name=1则 s2.name也是改为2了int age (实例变量) 存放在堆中static string name (类变量)存放在静态域中注意: 由类创建的所有对象,共用这一个属性,当其中一个对象对此属性进行修改时,会导致其他对象对此属性的一个...原创 2018-10-26 23:38:31 · 215 阅读 · 0 评论 -
Conllections工具类操作集合
Conllections操作List,Set,Map等集合的工具类reverse():反转list中元素shuffle():对list集合元素进行随机排序sort():根据元素的自然顺序排序swap():交换元素max() 最大min() 最小frequency() 指定集合中元素出现的次数copy() 复制 package com; import java.util.*...原创 2018-10-29 23:36:54 · 3075 阅读 · 0 评论