java学习
酒后敲代码
这个作者很懒,什么都没留下…
展开
-
图书管理系统——javaSE实战
1、代码分层:* controller(请求处理层):负责与界面数据进行交互处理。* service(业务逻辑层):负责业务逻辑相关处理* DAO(数据持久层):负责数据持久化操作,DAO的全称是Data Access Object,多存储在数据库中,但是也可以通过IO流存放在电脑硬盘的某个文件中。这样就实现了代码的持久性,不会造成数据的丢失。*调用关系: controller ----(调用)---> service -----(调用)----> DAO2、APP类中的in原创 2021-08-10 15:20:48 · 222 阅读 · 0 评论 -
Annotation,注解
1、注解,或者叫做 注释,英语单词:annotation2、注解annotation是一种引用数据类型。编译之后也是生成xxx.class文件3、怎么自定义注解呢?语法格式?[修饰符列表] @interface 注解类姓名{} 4、注解怎么使用,用在什么地方?- 第一,注解使用时的语法格式是: @注解类型名- 第二,注解可以出现在类上、属性上、方法上、变量上等.......原创 2021-07-17 15:08:37 · 2240 阅读 · 0 评论 -
反射属性,以及反编译
1、反射属性/** 反射属性Field* */public class ReflectTest5 { public static void main(String[] args) throws Exception{ Class studentClass = Class.forName("com.bean.Student"); String stucls = studentClass.getName(); System.out.printl.原创 2021-07-15 17:19:24 · 207 阅读 · 0 评论 -
类加载器,双亲委派机制
1、什么是类加载器? 专门负责加载类的命令/工具,ClassLoader.2、JDK中自带三个类加载器: 启动类加载器(父加载器)扩展类加载器(母加载器) 应用类加载器3、假设有这样一段代码:String s = "abc"; - 代码在开始执行之前,会将所需要的类全部加载到JVM中。 - 通过类加载器加载,看到以上代码类加载器会找String.class文件,找到就加载,那么是怎么进行加载...原创 2021-07-15 10:13:12 · 128 阅读 · 0 评论 -
反射机制,很灵活
1、反射机制有什么用? 通过java语言中的反射机制可以操作字节码文件。优点类似于 黑客。(可以读和修改字节码文件。) 通过反射机制可以操作代码片段。(class文件)2、反射机制的相关类在 java.lang.reflect.*; 包下3、反射机制相关的重要的类有哪些? java.lang.Class 代表字节码文件 java.lang.reflect.Method ;代表字节码中的方法字节码...原创 2021-07-14 21:20:05 · 83 阅读 · 0 评论 -
Thread,继续学习
1、线程调度常见的线程调度模型: - 抢占式调度模型:哪个线程的优先级比较高,抢到的CPU时间片的概率就高一些/多一些。 java采用的就是抢占式调度模型 - 均分型调度模型:平均分配cpu时间片,每个线程占有的cpu时间片时间长度一样。平均分配,一切平等。有些语言采用这种模型。线程调度的方法: - 实例方法:...原创 2021-07-12 19:29:00 · 163 阅读 · 0 评论 -
Thread,线程中的某些方法及用途
1、static void sleep(long millis):- 静态方法 ,参数是毫秒 ,作用:让当前线程进入休眠,进入“阻塞状态”,放弃占有CPU时间片,让给其它线程使用。 * - Thread.sleep()方法 可以做到的效果:间隔特定的时间,去执行一段特定的代码,每隔特定的时间执行一次。 //让当前线程进入休眠,睡眠5s /*try { Thread.sleep(1000*5);//让 } catch (Interrupt.原创 2021-07-10 10:48:42 · 126 阅读 · 0 评论 -
Thread,线程
1、进程是一个应用程序 线程是一个进程中的执行场景/执行单元。一个进程可以启动多个线程。2、对于java程序来说,当DOS命令窗口中输入:java HelloWorld 回车之后, 会先启动JVM,而JVM就是一个进程。 JVM会再启动一个主线程调用main()方法,同时 再 启动一个 垃圾回收线程 负责看护,回收垃圾。 最起码,现在的java程序中至少有两个线程并发,分别是:一个垃圾回收线程,...原创 2021-07-09 21:12:16 · 143 阅读 · 0 评论 -
IO流 + Properties的联合使用,多用于修改经常变化的信息
问题:经常变化的信息,若是直接写到java源程序中,因为信息改变,所以需要重新编译,甚至重启服务器,非常的麻烦,有什么办法改进呢?解决方法:不直接写在java源程序中,将这个经常变化的信息写到文件之中,动态获取,只要运行程序就可以直接获取。类似于以上机制的这种文件被称作配置文件,并且当配置文件中的内容格式是:key1=valuekey2=value的时...原创 2021-07-09 09:30:30 · 83 阅读 · 0 评论 -
Serializable/DeSerializable,序列化与反序列化
介绍:1、参与序列化和反序列化的对象,必须实现 Serializable接口,否则会出现 java.io.NotSerializableException。序列化,将 对象及信息 切割后 通过管道或者其它方式进行传输,写入文件之中反序列化,将文件中 切割后的 对象及信息 重新恢复为 对应的对象及信息,在开发平台上运行2、注意通过源代码发现,Serializable接口是一个标志接口: - public interface Serializable{}- 实现这个接口之后会自动生成一个序列化原创 2021-07-08 16:01:09 · 183 阅读 · 0 评论 -
文件拷贝的实现
使用的包:File,FileInputStream,FileOutputStream,且需要递归实现难点:1、递归的使用2、字符串的拼接public static void main(String[] args) { //拷贝源 File srcFile = new File("D:\\java_study\\day31\\src\\com\\io"); //拷贝目标 File destFile = new File("D原创 2021-07-07 19:57:40 · 138 阅读 · 0 评论 -
File类的介绍,以及其中方法的使用
File类的介绍:1、File类和四大家族没有关系,所以File类不能完成文件的读和写2、File对象代表什么? - 文件和目录路径名的抽象表示形式 - 例如: D:\java_study 这是一个File对象 D:\java_study\java_note.txt 这也是一个File对象 - 一个File对象有可能对应的是目录,也可能是文件。 File只是一个路径名的抽象表示形式。其中的常用方法使用:- createNewFile():以文件的形式创建出来- mkdir() : 以目录原创 2021-07-07 16:09:51 · 222 阅读 · 0 评论 -
手写日志工具类
1、首先了解日志里的元素构成:时间 + 信息2、涉及到修改数据的输出位置,不再是控制台,而是一个文件中记录下来。 try { //指向一个日志文件 PrintStream ps = new PrintStream(new FileOutputStream("log.txt",true)); //修改输出方向 System.setOut(ps); //日期当前时间原创 2021-07-07 09:12:33 · 113 阅读 · 0 评论 -
DataInputStream/DataOutputStream,数据字节输入/输出流
注意:1、这两个流会将数据以及数据的类型一并写入文件,且这个文件不是普通文本文档2、DataOutputStream写的文件,只能使用DataInputStream去读,并且读的时候你需要提前知道写入的顺序,读的顺序需要和写的顺序一致,才可以正常取出数据开发框架:1、创建输出文件框架 //创建数据专属的字节输出流,其节点流是一个输出流OutputStream,但是这是一个抽象类无法实例化, //所以可以创建它的一个子类FileOutputStream,进行原创 2021-07-06 21:22:52 · 1234 阅读 · 0 评论 -
BufferedReader/BufferedWriter,带缓冲区的字符输入/输出流
注意:这个两个流都是带有缓冲区的,所以就不需要准备自定义的char数组,或者byte数组来缓存数据。BufferedReader的使用: //创建一个字符输入流 FileReader reader = new FileReader("src/com/io/temp"); //创建一个带有缓冲区的字符输入流,并把前面的字符输入流输入 BufferedReader br = new BufferedReader(reader);原创 2021-07-06 16:43:54 · 610 阅读 · 0 评论 -
FileReader + FileWriter实现文件的拷贝的框架
注意:1、这两个方法都是字符流,所以在准备读取数组时,准备的是字符数组2、读取结束后,返回值为 -1FileReader in = null; FileWriter out = null; try { //读 in = new FileReader("src/com/io/fileCopy/CopyTest1.java"); //读 //in = new FileRe原创 2021-07-06 10:22:46 · 58 阅读 · 0 评论 -
FileWriter,文件字符输出流
文件字符输出流,写。注意:1、同FileReader一样,只能输出普通文本,word不属于普通文本。2、同FileOutputStream一样,在写入操作结束后,需要添加flush()方法进行刷新。文中两种方式写入:一种:字符数组char[]一种:字符串String...原创 2021-07-05 21:57:04 · 172 阅读 · 0 评论 -
FileReader,文件字符输入流
注意:文件字符输入流,只能读取普通文本。 读取文本内容时,比较方便,快捷。遍历的方式分为两种:一种foreach,一种while循环。原创 2021-07-05 21:51:58 · 89 阅读 · 0 评论 -
单个文件的拷贝(FileInoputStream + FileOutputStream)
完成文件的拷贝: - 使用FileInputStream + FileOutputStream完成文件的拷贝。 - 拷贝过程应该是一边读,一边写 - 使用以上的字节流拷贝文件的时候,文件类型随意,万能的,什么样的文件都能拷贝注意:切记要在finally的块中关闭流,否则会消耗大量的资源。 并且多个流的关闭,要分开进行判断是否为null、关闭close()及捕获(try..catch)异常,因为如果放在一块则会由于其中某个close()方法...原创 2021-07-05 21:03:00 · 124 阅读 · 0 评论 -
FileOutputStream,文件输出流
包:java.io.FileOutputStream - 文件字节输出流,负责写 - 从内存到硬盘 - 其中的方法: - 以下两种方法会清空原文档内容,(谨慎使用): - void write(byte[] b) 将真个字节数组数据全部写入 - void write(byte[] b, int off, int len) 将字节数组的一部分写入进去...原创 2021-07-05 20:55:53 · 112 阅读 · 0 评论 -
FileInputStream,文件输入流
所在包:java.io.FileInputStream 1、文件字节输入流,万能的,任何类型的文件都可以采用这个流来读 2、字节的方式,完成输入的操作,完成读的操作(硬盘--->内存) 3、 //创建文件字节输入流对象 // 路径的表达方式有多种:(都采用了绝对路径) // 第一种:D:\\java_study\\day31\\temp // 第二种:D:/java_study/day31/temp fis = new...原创 2021-07-05 20:32:04 · 513 阅读 · 0 评论 -
java中的I/O流
1、什么是IO? I: Input O: Output通过IO可以完成硬盘文件的读和写2、IO流的分类: - 有多种分类方式: - 按照流的方向进行分类 以内存为参照物, 往内存中去,叫做输入(Input),或者叫做读(Read) 从内存中出来,叫做输出(Output),或者叫做写(Write) -按照读取数据方式不同进行分类 * 有的流按照字节的方式读取数据,一次读取1个字节byte,等同于...原创 2021-07-05 20:30:11 · 75 阅读 · 0 评论