java
文章平均质量分 54
java语言学习中的小笔记
鲍博博
这个作者很懒,什么都没留下…
展开
-
JDK动态代理
JDK动态代理基本概念代理模式静态代理JDK动态代理本博客根据动力节点中动态代理课程整理而来基本概念代理模式 百度百科中代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 比如说,有A,B,C三个类,其中A是我们写的类原创 2022-01-04 15:29:33 · 444 阅读 · 0 评论 -
MyBatis编程
MyBatis官方网站链接什么是MyBatis?MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。MyBatis编程基本套路 3. 引入依赖(pom.xml中) mysql-connector-jav原创 2021-07-27 17:31:25 · 265 阅读 · 0 评论 -
read方法阻塞的解决
转载自别人的博客在网络编程中,读取数据时遇到了该问题:服务器端运行到read方法停住了,不再往后运行。代码如下:客户端:public class SocketClient { public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException { Socket client = new Socket("localhost",8转载 2021-06-29 16:34:38 · 4857 阅读 · 0 评论 -
java网络编程(包含C/S模式的原理)
在学习java网络编程前,需要有计算机网络和javaIO流的相关知识。想简单学习IO流请点击我TCP通信概述客户端要求和代码import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class TCPclient { public static void main(String[] args) throws IOExce原创 2021-06-28 20:11:16 · 419 阅读 · 1 评论 -
java算法题必备:快速输入输出
转载自:原文链接快速输入1// 创建分词器输入流StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));// 转到下一个标记in.nextToken();// 输入字符String str = in.sval;// 转到下一个标记in.nextToken();// 输入数字double num = in.nval;快速输入2import java.原创 2021-03-12 16:24:45 · 859 阅读 · 0 评论 -
你知道什么是java注解吗?
注解,或者叫做注释,英文单词是:Annotation注解Annotation是一种引用数据类型。编译之后也是生成xxx.class文件。怎么自定义注解呢?[修饰符列表] @interface 注解类型名{}注解怎么使用,用在什么地方?注解使用时的语法格式是:@注解类型名注解可以出现在类上、属性上、方法上、变量上等…注解还可以出现在注解类型上java中常用的注解@Deprecated注释的程序元素,表示已过时,不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。@O.原创 2021-02-03 14:02:13 · 257 阅读 · 3 评论 -
反射机制
由该视频整理:视频链接反射机制的包和类可以对class(字节码)文件进行读写操作。反射机制的相关类在哪个包下?java.lang. reflect.* ;反射机制相关的类有哪些?java.lang.Class //代表字节码文件java.lang.reflect.Methpd //代表字节码中的方法字节码java.lang.reflect.Constructor //代表字节码中的构造方法java.lang.reflect.Field //代表字节码中的属性字节码获取字节码文件原创 2021-02-03 12:46:18 · 169 阅读 · 0 评论 -
可移植的文件路径
解决文件路径的问题不会受到环境移植的两种打开文件相关的方式(该文件要求放在src下面):1.第一种获取文件绝对路径,再通过路径创建流即可string path =Thread.currentThread ().getcontextClassLoader().getResource("以src为起点的相对路径" ) .getPath();第二种直接获取流对象Inputstream in=Thread.currentThread().getContextClassLoader().getReso原创 2021-02-03 12:17:56 · 230 阅读 · 0 评论 -
使用wait和notify方法实现生产者消费者模式
什么是“生产者和消费者模式”?生产线程负责生产,消费线程负责消费。这是一种特殊的业务需求,在这种特殊的情况下需要使用wait方法和notify方法。wait和notify方法不是线程对象的方法,是普通java对象都有的方法。wait方法和notify方法建立在线程同步的基础之上。因为多线程要同时操作一个仓库。有线程安全问题。wait方法作用: o.wait()让正在o对象上活动的线程t进入等待状态,并且释放掉t线程之前占有的o对象的锁。notify方法作用: o.notify()让正在o对象上.原创 2021-02-02 21:57:52 · 410 阅读 · 0 评论 -
java线程
由该视频整理得:视频链接进程和线程进程A和进程B的内存独立不共享。在java中同一进程不同线程间的堆区(new出来的对象)和方法区(代码、静态变量等)的资源共享,栈区资源不共享。并不是一个方法对应一个线程。多线程实现的方法类继承Thread类并重写run方法。public class Test { public static void main(String[] args) { // 这里是main方法,在主线程中执行 // 新建一个分支线程对象 MyThread my原创 2021-02-02 21:57:21 · 195 阅读 · 1 评论 -
IO和Properities
本博客由该视频整理而得:视频链接非常好的一个设计理念:以后经常改变的数据,可以单独写到一个文件中,使用程序动态读取。将来只需要修改这个文件的内容,java代码不需要改动,不需要重新编译,服务器也不需要重启。就可以拿到动态的信息。类似于以上机制的这种文件被称为配置文件。并且当配置文件中的内容格式是:keyl=valuekey2=value的时候,我们把这种配置文件叫做属性配置文件。java规范中有要求:属性配置文件建议以.properties结尾,但这不是必须的。使用示例 public原创 2021-02-02 13:46:38 · 225 阅读 · 0 评论 -
java序列化
本文档由该视频整理:视频链接什么是序列化和反序列化序列化: Serializable将java对象存储到文件中,将java对象的状态保存下来的过程。反序列化: DeSerializable将硬盘上的数据重新恢复到内存当中,恢复成java对象。序列化的要求参与序列化和反序列化的对象,必须实现Serializable接口。注意:通过源代码发现,Serializable接口只是一个标志接口;public interface Serializable{}Serializable接口的作用起原创 2021-02-02 13:38:13 · 164 阅读 · 0 评论 -
File类
File对象是路径名的抽象表示,包括目录和文件File类和IO流类没有继承关系,不能用于文件的读写常用方法public boolean exists() //判断文件是否存在public boolean mkdir() //创建目录public boolean mkdirs() //创建多重目录public boolean createNewFile() throws IOException //创建文件public String getParent() //获取父路径public.原创 2021-02-02 12:00:02 · 185 阅读 · 0 评论 -
Map接口、HashMap、Propertries、TreeSet
本文档由该视频整理而来:视频链接Map的常用方法V put(K key, v value)向Nap集合中添加键值对get(object key)通过key获取valuevoid clear()清空Map集合boolean containsKey(Object key)判断Map中是否包含某个keyboolean containsValue(Object value)判断Map中是否包舍某个valueboolean isEmpty()判断vap集合中元素个数是否为0Set<K> k原创 2021-02-02 11:44:41 · 231 阅读 · 0 评论 -
IO流以及相关流类的使用方法
本博客由该视频整理而得:视频链接Io流的分类按照流的方向分为输入流和输出流:以内存作为参照物,往内存中去,叫做输入(Input)。或者叫做读(Read).从内存中出来,叫做输出(output)。或者叫做写(write).按照读取数据方式不同分为字节流和字符流:字节流是按照字节的方式读取数据,一次读取1个字节。这种流是万能的,什么类型的文件都可以读取。包括:文本文件,图片,声音,视频……字符流是按照字符的方式读取数据的,一次读取一个字符,这种流是为了方便读取普通文本文件而存在的,这种流不能读取原创 2021-02-02 11:43:32 · 264 阅读 · 0 评论 -
java泛型
JDK5.0之后推出的新特性:泛型泛型这种语法机制,只在程序编译阶段起作用,只是给编译器参考的。(运行阶段泛型没用! )使用了泛型好处是什么?第一:集合中存储的元秦类型统一了。第二:从集合中取出的元秦类型是泛型指定的类型,不需要进行大量的向下转型!泛型的缺点是什么?导致集台中存储的元素缺乏多样性。大部分业务中使用的类型是统一的。JDK8之后引入了钻石表达式。//自动类型摧断(钻石表达式)List<Animal> myList = new ArrayList<>.原创 2021-02-01 15:39:52 · 147 阅读 · 0 评论 -
List接口及部分实现类
本博客由该视频整理所得:视频链接List集合存储元素特点有序可重复有序:List集合中的元素有下标。从e开始,1递增。可重复:存储一个1,还可以再存储1.List接口特有的常用的方法:void add(int index,Object element)Object get(int index)int indexOf(object o)int lastIndexOf(Object o)Object remove(int index)Object set(int index,object原创 2021-02-01 15:19:40 · 166 阅读 · 0 评论 -
Collection接口
由此视频整理而得:视频链接Collection中可以存储什么元素没有使用“泛型”之前,collection中可以存储object的所有子类型。使用了“泛型”之后,Collection中只能存储某个具体的类型。集合中不能值接存储基本数据类型,通过自动装箱可以存储包装类;也不能存java对象,只是存储java对象的内存地址。CoIlection中的常用方法boolean add(object e):向集合中添加元素int size():获取集合中元素的个数void clear():清空集合boo原创 2021-02-01 12:44:00 · 163 阅读 · 0 评论 -
java两类不同的集合
本博客由该视频整理得:视频链接什么是集合集合实际上就是一个容器,可以来容纳其它类型的数据。集合中存储什么集合不能直接存储基本数据类型,另外集合也不能直接存储java对象,集合当中存储的都是java对象的内存地址。(或者说集合中存储的是引用。)注意:集合在java中本身是一个容器,是一个对象。集合中任何时候存储的都是"引用"。不同集合对应着不同的数据结构在java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到了不同的数据结构当中。例如:new Array原创 2021-01-30 20:23:23 · 322 阅读 · 0 评论 -
java异常
异常对象两个重要的方法:获取异常简单的描述信息:String msg = exception.getMessage();获取简短的异常信息。如果new异常时有形参,则msg为形参。打印异常追踪的堆栈信息:exception.printStackTrace();异常的堆栈信息采用了异步线程的方式。异常对象使用方法建议捕捉异常以后调用printStackTrace方法,不然实际发生异常时我们并不知道。我们以后查看异常的追踪信息,我们应该怎么看,可以快速的调试程序呢?异常信息追踪原创 2021-01-30 18:37:57 · 178 阅读 · 0 评论 -
枚举类型的使用
枚举是一种引用数据类型枚举类型的定义:enum 枚举类型名 {枚举值1,枚举值2}结果只有两种情况的,建议使用布尔类型。结果超过两种并且还是可以一枚一枚列举出来的,建议使用枚举类型。例如:颜色、四季、星期等都可以使用枚举类型。...原创 2021-01-29 22:15:25 · 240 阅读 · 0 评论 -
IDEA常用快捷键
Ctrl+F 搜索Alt+回车 导入包,自动修正Ctrl+Alt+L 格式化代码Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+F 查找文本Ctrl+Shift+Space 自动补全代码Ctrl+P 方法参数提示Ctrl+y 复制行Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/…/ )Alt+数字 打开或关闭相关面板psvm main方法sout 输出方法...原创 2021-01-29 16:15:46 · 161 阅读 · 0 评论 -
Object类部分方法
clone是克隆对象的一个方法。 protected native Object clone() throws CloneNotSupportedException;hashCode是获取对象哈希值的一个方法。public native int hashCode ();这个方法带有native关键字,底层调用c++程序。hashCode(方法返回的是哈希码:实际上就是一个java对象的内存地址,经过哈希算法,得出的一个值。所以hashcode ()方法的执行结果可以等同看做一.原创 2021-01-29 11:09:43 · 164 阅读 · 0 评论 -
jdbc连接mysql
import java.sql.*;public class Main { public static void main(String[] args) { String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=DW"; String userName = "sa"; String原创 2020-12-27 17:25:38 · 230 阅读 · 1 评论 -
java基本数据类型
内置数据类型Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。byte:byte 数据类型是8位、有符号的,以二进制补码表示的整数;最小值是 -128(-2^7);最大值是 127(2^7-1);默认值是 0;byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;例子:byte a = 100,byte b = -50。short:short 数据类型是 16 位、有符号的以二进转载 2020-10-14 11:47:48 · 170 阅读 · 0 评论 -
next方法和nextLine方法区别以及注意事项
转载自https://blog.csdn.net/guanghuichenshao/article/details/81545450正文nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。next()会自动消去有效字符前的空格键、Tab键或Enter,只返回输入的字符,不能得到带空格的字符串。输入有效字符之后,将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符,但是这些符号仍然在缓冲区内,如果紧接着使用nextLine(),那么nextLine()自动转载 2020-10-13 20:22:18 · 1290 阅读 · 0 评论 -
printf函数
转载自:https://me.csdn.net/blog/K346K346格式说明%[flags][width][.prec][length]type分别为:%[标志][最小宽度][.精度][类型长度]类型类型标志示例:printf("%5d\n",1000); //默认右对齐,左边补空格printf("%-5d\n",1000); //左对齐,右边补空格 printf("%+d %+d\n",1000,-1000);转载 2020-10-13 20:06:15 · 747 阅读 · 0 评论 -
java日期时间
Date类import java.util.Date;public class DateDemo { public static void main(String args[]) { // 初始化 Date 对象 Date date = new Date(); // 使用 toString() 函数显示日期时间 System.out.println(date.toString()); }}使用 SimpleDa原创 2020-08-14 23:02:13 · 187 阅读 · 0 评论