![](https://img-blog.csdnimg.cn/20190901005143993.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java学习笔记
Rachel_pan
这个作者很懒,什么都没留下…
展开
-
内存操作流 ---- ByteArrayInputStream 和 ByteArrayOutputStream
内存操作流一般在生成一些临时信息时会使用,如果将临时信息保存到文件中,则代码执行完后需再删除文件,此时使用内存操作流更合适。ByteArrayInputStream 主要完成将内容写入到内存中,而ByteArrayOutputStream 主要将内存中的数据输出。public class ByteArrayDemo { public static void main(String[] a...原创 2020-04-07 10:19:04 · 616 阅读 · 0 评论 -
转换流 ------ OutputStreamWriter 类与 InputStreamReader 类
OutputStreamWriter:是 Writer 的子类,将输出的字节变为字符流,即将一个字符流的输出对象变为字节流的输出对象InputStreamReader:是 Reader 的子类,将输入的字节变为字符流,即将一个字节流的输入对象变为字符流的输入对象1 、将字节输出流变为字符输出流public class OutputStreamWriterDemo01 { public...原创 2020-04-06 12:32:55 · 293 阅读 · 0 评论 -
字节流与字符流操作
文章目录一 、简述二 、字节流1 、字节输出流:OutputStream2 、字节输入流:InputStream三、字符流1 、字符输出流:Writer2 、字符输入流:Reader四、实际开发中使用字节流还是字符流比较合适?一 、简述在程序中,数据是以流的方式进行传输和保存的。在java.io包中有字节流 、字符流两大类。字节流 : 输出数据使用 OutputStream 类 ,输入数据使...原创 2020-04-06 12:13:25 · 286 阅读 · 0 评论 -
操作文件的类 ------ File
文章目录一 、Java IO 简述二 、File 类的基本介绍1 、创建新文件2 、删除一个指定的文件3 、创建一个文件夹4 、列出指定目录的全部文件一 、Java IO 简述 Java IO操作主要指的是使用Java进行输入、输出操作。其操作类存放在java.io包中。在整个java.io包中核心是5个类和1个接口,5个类分别指的是File、OutputStream、InputStream...原创 2020-04-05 22:36:39 · 348 阅读 · 0 评论 -
动态代理
观察以下代码:interface Subject{ //定义接口 public String say(String name,int age);}class RealSubject implements Subject{ //接口实现类 @Override public String say(String name, int age) { ret...原创 2020-01-23 18:44:14 · 186 阅读 · 0 评论 -
Java反射机制的应用
反射除了可以取得一个类的完整结构外,还可以调用类中指定的方法或指定的属性,并且可以通过反射完成对数组的操作 定义一个类Personpackage com.ReflectDemo;interface Information{ // 定义Information接口 public static final String NATIONAL = "China" ; // 定义全局常量 pub...原创 2020-01-21 20:06:02 · 202 阅读 · 0 评论 -
反射的应用 ------ 取得类的结构
文章目录一 、取得所实现的全部接口二 、取得父类三 、取得全部构造方法四 、取得全部方法五 、取得全部属性反射可以实例化对象外,还可以取得一个类的完整结构。使用到了 java.lang.Class 类 和 java.lang.reflect 包中的3个类,如下通过以上的类,可以完成的反射操作,如:取得类所实现的全部接口取得父类取得全部构造方法取得全部方法取得全部属性定义...原创 2020-01-19 18:15:36 · 316 阅读 · 0 评论 -
Class类的使用
开发中Class类最常见的用法就是通过无参构造实例化对象在Class类中定义了newInstance()方法:class Person { private String name; private int age; public String getName() { return name; } public void setNam...原创 2020-01-18 23:58:45 · 459 阅读 · 0 评论 -
认识Class类
一 、Java反射机制简述正常情况下,通过类创建对象,而反射机制,就是通过对象找到一个类二 、认识Class类class X { //定义一个类 X}public class ReflectDemo01 { public static void main(String[] args) { X x = new X(); System.ou...原创 2020-01-18 22:27:07 · 351 阅读 · 0 评论 -
Arrays类
Arrays类是数组的操作类,常用方法如下:import java.util.Arrays;public class ArraysDemo { public static void main(String arg[]){ //排序 int temp[] = {3,4,5,7,9,1,2,6,8} ; // 声明一个整型数组 Array...原创 2019-12-01 17:33:52 · 142 阅读 · 0 评论 -
对象克隆
在Java中可以使用 Object 类中的 clone() 方法进行对象的克隆操作,该方法定义如下:protected Object clone() throws CloneNotSupportedException使用:1 、对象所在的类必须实现 Cloneable 接口2 、覆写 clone() 方法,并且扩大访问权限class Person implements Cloneable...原创 2019-12-01 17:25:56 · 162 阅读 · 0 评论 -
大数字类(BigInteger 、BigDecimal)
一 、BigInteger 类当一个整型数据超过整数的最大类型长度 long 时,就可以使用 BigInteger 类import java.math.BigInteger;public class BigIntegerDemo { public static void main(String args[]){ BigInteger bi1 = new BigIn...原创 2019-12-01 17:05:05 · 808 阅读 · 0 评论 -
数字格式化类(NumberFormat、DecimalFormat)
一 、NumberFormat 类使用当前操作系统中文语言环境格式化数字import java.text.NumberFormat;public class NumberFormatDemo01 { public static void main(String args[]){ NumberFormat nf = null ; // 声明一个NumberForma...原创 2019-12-01 15:52:02 · 301 阅读 · 0 评论 -
Random类
Random类是一个随机数产生类,可以指定一个随机数的范围,然后在此范围中任意产生数字生成10个随机数字,且数字不大于100import java.util.Random;public class RandomDemo { public static void main(String args[]){ Random r = new Random() ; // 实...原创 2019-12-01 11:54:07 · 257 阅读 · 0 评论 -
Math类
Math类是一个数学操作的类,Math类中的方法都是静态方法,直接使用“类.方法名称()”的形式调用即可public class MathDemo { public static void main(String args[]){ System.out.println("求平方根:" + Math.sqrt(9.0)) ; System.out.print...原创 2019-12-01 11:48:41 · 251 阅读 · 0 评论 -
日期操作类(Date 、Calendar 、DateFormat 、SimpleDateFormat)
文章目录一 、Date 类:获取系统当前日期二 、Calendar类:按需获取日期格式三 、DateFormat类1 、默认显示格式2 、指定显示类型四 、SimpleDateFormat 类:自定义日期格式一 、Date 类:获取系统当前日期import java.util.Date;public class DateDemo01 { public static void ma...原创 2019-11-30 23:00:21 · 352 阅读 · 0 评论 -
System类
一 、认识System类系统输出语句 “System.out.print()”是常见的操作,System类是一些与系统相关属性和方法的集合,而且System类中所有的属性和方法都是静态的,可直接通过System类名调用二 、计算一个程序的执行时间public class SystemDmeo01 { public static void main(String[] args) {...原创 2019-11-30 16:08:49 · 169 阅读 · 0 评论 -
StringBuffer类
文章目录一 、简述二 、StringBuffer的常用方法1 、字符串连接操作(1)、通过append连接各种类型的数据(1)、验证StringBuffer的内容是可以修改的2 、在任意位置处为 StringBuffer 添加内容3 、字符串反转操作4 、替换指定范围的内容5 、字符串截取操作6 、删除指定范围字符串7 、查找指定的内容是否存在一 、简述 String类的内容一旦声明则不可...原创 2019-11-30 15:18:45 · 620 阅读 · 0 评论 -
泛型应用小实例
//信息标识接口interface Info{}//联系方式信息类class Contact implements Info{ private String mobile; private String address; public Contact(String mobile, String address) { this.mobile = ...原创 2019-11-27 20:02:15 · 174 阅读 · 0 评论 -
泛型数组及泛型的嵌套设置
一 、接收和返回泛型数组public class GenericsDemo29 { public static void main(String[] args) { Integer i[] = fun1(1,2,3,4,5,6); fun2(i); } public static <T> T[] fun1(T...arg){ ...原创 2019-11-27 09:20:35 · 217 阅读 · 0 评论 -
泛型方法
文章目录一 、泛型方法二 、定义泛型方法三 、通过泛型方法返回泛型类实例四 、使用泛型统一传入的参数类型一 、泛型方法泛型方法的定义与其所在的类是否是泛型类是没有任何关系的,所在的类可以是泛型类,也可以不是泛型类二 、定义泛型方法class Demo{ public <T> T fun(T t){ //可以接收任意类型的数据 return t;...原创 2019-11-27 00:31:07 · 12819 阅读 · 0 评论 -
泛型接口
一 、定义泛型接口【格式】[访问权限] interface 接口名称<泛型标识>{ }例如:interface Info<T>{ public T getVar();}二 、泛型接口的两种实现方式方式一:在子类的定义上声明泛型类型interface Info<T>{ public T getContent();}class I...原创 2019-10-28 09:29:38 · 486 阅读 · 0 评论 -
通配符
一 、匹配任意类型的通配符观察以下程序:class Info<T>{ private T name; public Info(T name){ this.name = name; } public T getName() { return name; } public void setName(T ...原创 2019-10-28 09:04:44 · 269 阅读 · 0 评论 -
泛型应用
文章目录一 、泛型的基本应用二 、泛型的定义三 、使用泛型修改坐标类Point四 、使用泛型使程序操作更加安全五 、泛型应用中的构造方法六 、指定多个泛型类型一 、泛型的基本应用 泛型可以解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中的某个属性的类型或者是某个方法的返回值及参数类型二 、泛型的定义//泛型类的定义,例如:class Point<T&g...原创 2019-10-27 11:17:49 · 512 阅读 · 0 评论 -
为什么要使用泛型
一 、问题引出设计一个表示坐标点的类,坐标的表示方法有以下3种 :整数表示:x = 10, y = 20小数表示:x = 10.5 , y = 20.5字符串表示: x = “东经180度” ,y = “北纬220度” 分析此要求:1 、建立一个表示坐标点的类 Point2 、此类有两个属性分别表示 X坐标 和 Y坐标3 、属性 x 和 y 中所保存的数据类型有3种(int ...原创 2019-10-27 00:21:13 · 140 阅读 · 0 评论 -
停止一个线程的运行
在多线程开发中,可以通过 设置标志位 来停止一个线程的运行class MyThread implements Runnable{ private boolean flag = true ; // 定义标志位 public void run(){ int i = 0 ; while(this.flag){ System.out.println(Thread.currentThre...原创 2019-10-25 08:15:47 · 156 阅读 · 0 评论 -
线程操作实例 ------ 生产者及消费者
文章目录一 、实例引出二 、程序的基本实现三 、解决问题1 ------- 加入同步,保证数据一致四 、Object类对线程的支持 ------ 等待与唤醒五 、解决问题2 ------ 加入等待与唤醒一 、实例引出 在线程操作中有一个经典案例程序,即生产者和消费者,生产者不断生产,消费者不断取走生产者生产的产品二 、程序的基本实现观察以下程序,会产生什么问题:1 、定义一个保...原创 2019-10-25 01:14:14 · 318 阅读 · 0 评论 -
同步与死锁
一 、问题引出 一个多线程的程序如果通过 Runnable 接口实现,则意味着类中的属性可被多个线程共享,那么在实际应用中,比如卖票程序,在网络延迟等情景下,就有可能出现问题。即多个线程对象同时操作同一共享资源class MyThread implements Runnable{ private int ticket = 5; public void run(){ ...原创 2019-10-23 11:20:45 · 413 阅读 · 0 评论 -
线程操作小实例
设计一个线程操作类,可以产生3个线程对象,并分别设置3个线程的休眠时间:线程A,休眠2秒线程B,休眠5秒线程C,休眠8秒实现一 ------ 继承Thread类class MyThread extends Thread{ private int time; public MyThread(String name,int time){ super(n...原创 2019-10-12 09:12:33 · 192 阅读 · 0 评论 -
类与对象
一 、对象的概念Java 是面向对象的编程语言,所谓对象就是一个个独立的个体,每个个体具有以下特点:对象具有属性和行为。 对象具有变化的状态。 对象具有唯一性。 对象都是某个类别的实例。 一切皆为对象,真实世界中的所有事物都可以视为对象。二 、类与对象对象就是一个个具体的东西,他们各自具有一些特征,类,就是对具有相似特征的对象的概括。比如汽车有轿车,跑车,货车等,它...原创 2019-09-01 21:14:34 · 211 阅读 · 0 评论 -
构造方法与匿名对象
目录一 、方法的重载二 、构造方法三、构造方法的定义四、自动生成构造方法五、构造方法重载六 、匿名对象一 、方法的重载方法的重载就是方法名称相同,但参数的类型和参数的个数不同。通过传递参数的个数及类型的不同可以完成不同功能的方法调用public class MethodDemo { public static void main(String[] ...原创 2019-09-04 00:13:06 · 215 阅读 · 0 评论 -
实例----学生
代码如下:class Student { private String stuno; //学号 private String name; //姓名 private float math; //数学成绩 private float english; //英语成绩 private float computer; //计算机成绩 ...原创 2019-09-04 21:23:24 · 180 阅读 · 0 评论 -
String类
目录一、两种实例化String对象二 、String 内容的比较三 、两种实例化方式的区别四 、字符串的内容不可改变五 、小结一、两种实例化String对象1、直接赋值public class StringDemo01{ public static void main(String args[]){ String name = "直接赋值" ; /...原创 2019-09-04 23:07:51 · 338 阅读 · 0 评论 -
String 类12种常用的字符串操作方法
目录1 、字符串与字符数组的转换 toCharArray()2 、从字符串中取出指定位置的字符 charAt()3 、字符串与 byte 数组的转换 getBytes()4、取得一个字符串的长度 length()5 、查找指定的字符串是否存在 indexOf()6 、去掉空格 trim()7 、字符截取substring()8 、拆分字符串spl...原创 2019-09-05 08:53:59 · 1680 阅读 · 0 评论 -
引用传递及基本应用
目录一 、引用传递引用传递例子一引用传递例子二引用传递例子三二 、引用传递范例 ------ 一对一关系三 、引用传递范例 ------ 进一步深入一对一关系一 、引用传递引用传递例子一class Random{ int temp = 30; //此处为了访问方便,属性暂不封装}public class ReferenceDemo01 {...原创 2019-09-08 10:54:06 · 379 阅读 · 0 评论 -
this 关键字
目录this 关键字的作用一 、this 表示本类中的属性二 、使用 this 调用构造方法三 、使用 this 表示当前对象this 关键字的作用表示类中的属性 可使用 this 调用本类的构造方法 this 表示当前对象一 、this 表示本类中的属性现有以下一个类:class Person { private Strin...原创 2019-09-09 00:14:38 · 264 阅读 · 0 评论 -
Static 关键字
前面的代码均使用一个类分别开辟栈内存和堆内存,在堆内存中保存对象中的属性,每个对象有自己的属性,使用 static 声明的属性可被所有对象共享,如果一个类中的方法想由类直接调用,则可以声明为 static 方法。一 、使用 static 声明属性class Person { String name; int age; static String countr...原创 2019-09-11 23:19:08 · 229 阅读 · 0 评论 -
main 方法与代码块
目录一 、主方法 main二 、代码块1、普通代码块:直接在方法或者语句中定义的代码块2、构造块:直接写在类中的代码块3 、静态代码块:使用 static 关键字声明的代码块一 、主方法 mainpublic class Demo01 { public static void main(String[] args) { }...原创 2019-09-12 10:17:52 · 867 阅读 · 0 评论 -
构造方法私有化----单例设计模式
目录一 、问题引出二 、问题的解决三 、程序的意义类的封装性不止体现在对属性的封装,实际上方法也是可以封装的,构造方法私有化就是对构造方法进行封装一 、问题引出先有以下的封装:class Singleton { private Singleton() { //对构造方法进行封装 } public void print() {...原创 2019-09-12 18:26:00 · 237 阅读 · 0 评论 -
内部类
目录一 、内部类的基本定义二 、使用 static 定义内部类三 、在外部访问内部类四 、在方法中定义内部类一 、内部类的基本定义在一个类的内部还存在另外一个类,则成为内部类定义一个内部类:class Outer { //定义外部类 private String info = "hello wo...原创 2019-09-12 22:58:50 · 236 阅读 · 0 评论