
学习笔记
乌拉乌拉哩乌拉乌拉乌拉哩巴扎嘿!
这个作者很懒,什么都没留下…
展开
-
【难题】VBox虚拟机使用NAT模式与真机互联互通的解决方案
一直以来有一个问题,我的数据库装在虚拟机上,虚拟机之前一直使用的是桥接模式,有时候写些代码需要用到数据库的时候会造成一个很不方便的地方是,如果我在办公室,虚拟机可能是10.0.x.x的IP,这时候我的配置文件或者Navicat里数据库的IP都是10.0.x.x,办公室里没写完有的时候可能要带回家写,在家连上wifi之后,虚拟机的IP地址又变成了192.168.x.x,这样又要去改配置文件和Navicat的数据库地址了,这样真的很不方便;原创 2023-04-12 21:38:31 · 604 阅读 · 0 评论 -
Nacos使用MySQL做持久化遇到的那些坑
Nacos遇到的那些坑原创 2022-10-18 10:48:43 · 690 阅读 · 0 评论 -
JDK8的lambda表达式
JDK8的Lambda表达式原创 2022-06-23 17:15:48 · 123 阅读 · 0 评论 -
数据库设计三大范式!
第一范式原子性:保证表的每一个字段不可再分第二范式前提:满足第一范式每张表只描述一件事情第三范式前提:满足第一范式和第二范式确保数据表中每一列数据都和主键直接相关,不能间接相关!规范性和性能的问题考虑商业化的需求,数据库性能更加重要!在考虑性能问题的时候 ,适当的考虑一下规范性故意给某些表增加一些荣誉的字段,(从多表查询变为单表查询)故意增加一些计算列,(从大数据量降低为小数据量的查询)...原创 2021-05-29 17:23:32 · 93 阅读 · 0 评论 -
Java多线程补充:死锁
死锁(DeadLock)死锁概述线程死锁是指两个或两个以上的线程互相持有对方所需要的资源,由于synchronized的特性,一个线程持有一个资源,或者说获得一个锁,在该线程释放这个锁之前,其它线程是获取不到这个锁的,而且会一直死等下去,因此这便造成了死锁。死锁产生的条件互斥条件:一个资源,或者说一个锁只能被一个线程所占用,当一个线程首先获取到这个锁之后,在该线程释放这个锁之前,其它线程均是无法获取到这个锁的。占有且等待:一个线程已经获取到一个锁,再获取另一个锁的过程中,即使获取不到也不会释放已转载 2021-05-28 10:38:16 · 114 阅读 · 0 评论 -
MySQL数据库中插入数据的几种方式
insert into最简单也是最基础的插入方式,传入List集合,然后在Sql语句中遍历取出insert into `TableName`(field1,field2,field3,...)values <foreach item="item" index="index" collection="list" separator=",">( #{item.value1}, #{item.value2}, #{item.value3}) </foreach&g原创 2021-04-14 00:08:42 · 853 阅读 · 0 评论 -
小白学Java24:JDBC
JDBC环境搭建eclipse:IDEA开发步骤连接到数据库获取发送SQL语句的对象执行SQL语句DML操作(增删改): 返回的是受影响行数(int)环境搭建eclipse:找到对应MySQL版本的JDBC库在项目下新建源文件夹:lib把库复制到lib文件夹下,右键选中lib文件夹,构建路径—> 配置构建路径上方选中"库",右侧添加JAR,找到刚刚复制到lib文件夹里的库,应用并关闭IDEA开发步骤连接到数据库导入驱动Class.forName("com.mysql.原创 2020-07-11 20:23:14 · 183 阅读 · 0 评论 -
小白学Java23:MySQL常用关键字和常用函数和各种约束
MySQL关键字和常用函数常用关键字DQL:数据查询语言基础查询 SELECT _ FROM _AS: 给列自定义名称DISTINCT: 查询结果去重排序查询:ORDER BY条件查询:WHEREBETWEEN _ AND _ : 区间查询IS NOT NULL 和 IS NULLIN(_ ,_ , _): 枚举查询LIKE : 模糊查询CARE WHEN _ THEN _ :分支条件查询分组查询:GROUP BYHAVING: 分组过滤查询限定查询:LIMIT(分页查询)合并查询:UNION表连接查原创 2020-06-16 11:20:57 · 288 阅读 · 0 评论 -
小白学Java22:MySQL
MySQLMySQL的安装常见SQL语句创建数据库:展示数据库:修改数据库删除数据库查看当前使用的数据库使用数据库关于表格创建表格展示当前数据库下的所有表格打开表格详细信息删除表修改数据表的结构数据库中的约束常见的数据库约束==数据查询==基本查询1. 查询列2.查询所有列3.对列中的数据进行运算4.查询结果去重5.列的别名排序查询按照单列排序按照多列排序条件查询1. 等值判断(=)MySQL的安装下载链接:https://dev.mysql.com/downloads/windows/install原创 2020-06-14 19:24:12 · 287 阅读 · 0 评论 -
小白学Java21:网络编程
网络编程01InetAddress创建本机的IP地址对象创建局域网的IP地址对象创建外网的IP地址对象基于TCP的网络编程Socket编程创建服务器创建客户端使用TCP实现多个客户端连接到一个服务器InetAddress表示IP地址对象,封装了与该IP地址相关的所有信息创建本机的IP地址对象 InetAddress ia = InetAddress.getLocalHost(); System.out.println("本机的IP地址是:" + ia.getHostAddress() +原创 2020-06-07 21:46:23 · 118 阅读 · 0 评论 -
小白学Java20:线程池
线程池线程池的创建线程池的创建Exrcutor原创 2020-06-06 14:38:01 · 281 阅读 · 0 评论 -
Java多线程之线程安全的几种方法
多线程之线程安全详解synchronized:同步代码块同步方法Lock同步锁synchronized:同步代码块synchronized (临界资源对象){//对临界资源对象加锁 //代码(原子操作)}同步代码块锁的是对象,如果两个或两个以上的线程想要访问同一个对象的时候,必须要排队访问同步方法使用synchronize修饰的方法,称之为同步方法,如果是实例方法,锁定的是调用此方法的对象,也就是this如果是静态方法,锁定的是当前的类,相当于类名.classpublic synch原创 2020-05-27 17:33:46 · 159 阅读 · 0 评论 -
小白学Java19:多线程
多线程理解多线程主线程如何创建线程方法1:创建类,使其继承Thread,并重写其中的run()方法方法2:定义一个实现Runnable接口的实现类,实现run()方法方式3:定义一个实现Callable接口的实现类三种创建线程的区别:理解多线程当我们打开了一个程序,就意味着在系统内部新建了一个进程,进程并不是程序执行的最小单位,每一个进程下面可能有很多线程,线程是实际CPU能够执行的最小单位主线程在Java程序启动时,一个线程立刻运行,该线程通常称为程序的主线程。主线程的重要性体现在两个方面:原创 2020-05-16 22:10:43 · 190 阅读 · 0 评论 -
小白学Java18:IO流(下):字节流,字符流,转换流和对象流
字节流,字符流,转换流和对象流字节流父类:字节输入流和字节输出流低级流:文件字节流文件字节输入流:FileInputStream文件字节输出流:FileOutputStream高级流:缓冲字节流字节缓冲输入流:BufferedInoutStream字节缓冲输出流:BufferedOutoutStream使用缓冲流来实现文件的复制字符流父类:字符输入流和字符输出流文件字符输入流:FileReader:继承自InputStreamReader文件字符输出流:FileWriter:继承自OutputStreamW原创 2020-05-14 16:24:03 · 271 阅读 · 0 评论 -
小白学Java17:IO流(上):File和RandomAccessFile
IO流文件类 File构造函数常用方法小知识:使用递归清理空文件夹文件过滤器:FileFilter用法举例随机文件读写类:RandomAccessFile构造函数常用方法文件类 File构造函数File file = new File("文件路径"); 路径分类: 绝对路径 相对路径:相对于某个基准目录的路径(SE中是项目目录为参照路径的) .表示当前目录的根目录 ..表示当前目录的上一级目录常用方法file原创 2020-05-14 14:06:15 · 161 阅读 · 0 评论 -
小白学Java16:异常
异常异常的分类异常处理的机制捕获异常(try catch finally)声明异常(throws)Throws和throw 的区别自定义异常异常的分类所有异常的父类:ThrowableError:错误(系统错误)Exception:异常IOException:IO异常检查异常:异常处理的机制捕获异常(try catch finally)try { //可能有问题的代码块} catch (Exception e) { //异常处理 }finally{ //原创 2020-05-13 17:07:31 · 169 阅读 · 0 评论 -
小白学Java15:集合和迭代器
集合Java集合框架梳理Collection接口:单列集合的顶层接口List:有序,可重复集合ArrayList(重点)LinkedList通用方法List集合的排序Set:无序不可重复集合HashSet(重点)LinkedHashSetTreeSetMap接口:双列集合的顶层接口HashMap(重点)构造方法常用方法遍历HashTableLinkedHashMapTreeMap迭代器(重点)List集合的迭代器普通迭代器:双向迭代器双向迭代器的新增方法Set集合的迭代器常用方法使用方法Vector集合(了原创 2020-05-13 16:54:15 · 176 阅读 · 0 评论 -
小白学Java14:时间日期类和日期格式化:SimpleDateFormat
时间日期类直接使用系统级的时间日期获取Date类构造方法三级目录直接使用系统级的时间日期获取返回以毫秒为单位的当前时间,返回当前时间与 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。常用来计算一段代码运行所花费的时间long System.currentTimeMillis(); Date类表示特定的瞬间,精确到毫秒 ,用于表示日期时间。构造方法三级目录...原创 2020-05-13 15:47:50 · 213 阅读 · 0 评论 -
小白学Java13:数学工具类:Math,高精度计算和数字格式化
数学工具类:Math,高精度计算和数字格式化数学工具类:Math常用方法:随机数类:Random高精度计算类:DigDecimal构造方法常用方法关于小数的舍入模式数字格式化:NumberFormat构造方法常用方法自定义数字格式化类:DecimalFormat构造方法数字转字符串:format()字符串转数字:parse()数学工具类:MathMath 类包含基本的数字操作,如指数、对数、平方根和三角函数;Math中方法和常量都是静态的,因此可以通过类名直接调用常用方法:常用的方法:•sta原创 2020-05-13 14:57:33 · 365 阅读 · 0 评论 -
小白学Java12:包装类
包装类何为包装类基础数据对应的包装类基础数据类型与包装类的转换包装类的常用方法何为包装类在Java中,一切都是对象,但基本的数据类型不是对象。因此在JDK中提供了基本数据类型的封装类对象,就是基础数据类型的包装类基础数据对应的包装类基础数据类型包装类booleanBooleancharCharacterbyteByteshortShortintinteagerlongLongfloatFloatdoubleDouble原创 2020-05-13 14:27:25 · 138 阅读 · 0 评论 -
小白学Java11:正则表达式
正则表达式正则表达式定义正则表达式使用正则表达式基本语法:定位符基本语法:普通字符基本语法:转义字符基本语法:限定字符基本语法:或基本语法:通配符基本语法:方括号基本语法:简写基本语法:否定基本语法:()正则表达式正则表达式是通过模式匹配实现对字符的查询,提取,替换,分割;从而简化操作对字符的处理定义正则表达式String regex = "(正则表达式内容)";使用正则表达式判断是否符合给定的正则表达式boolean isMatches = str.matches(regex);利原创 2020-05-13 14:12:59 · 457 阅读 · 0 评论 -
小白学Java10:系统常用类之String,StringBuffer,StringBuilder
系统常用类之String,StringBuffer,StringBuilder字符串字符串的分类String构造方法常用方法StringBuffer:可变,线程安全构造函数StringBuilder:可变,线程不安全,但是效率高字符串字符串是字符的序列,它是组织字符的基本数据结构,从某种程度上来说有些类似于字符的数组字符串的分类创建之后不会再做修改和变动的字符串常量–String对于字符串常量,由于程序中经常需要对它做比较,搜索之类的操作,所以通常把它放在一个具有一定名称的对象之中,由程序原创 2020-05-13 10:29:26 · 174 阅读 · 0 评论 -
小白学Java09:系统常用类之Object
系统常用类之ObjectObject构造方法常用方法小知识:Java的垃圾回收机制Object所有的类都直接或者间接继承自Object构造方法Object();常用方法String toString() //转化为字符串int hashCode() //哈希值boolean equals(Object obj) //判断当前对象和给定对象是否相等finalize() //java的垃圾回收机制会调用的方法,重写可以实现想实现的功能小知识:Java的垃圾回收机制clas原创 2020-05-12 21:45:52 · 132 阅读 · 0 评论 -
小白学Java08:类的扩展:抽象类、接口、内部类、枚举
类的扩展:抽象类、接口、内部类、枚举抽象类抽象方法接口接口的定义接口的声明和实现声明接口关键字:interface实现接口关键字:implements内部类静态内部类成员内部类局部内部类匿名内部类枚举抽象类使用abstract修饰的类 叫做抽象类抽象类不能直接实例化,必须被继承抽象方法使用abstract修饰的方法 叫做抽象方法抽象方法只有声明,不能有实现,抽象方法必须被重写定义了抽象方法的类必须是抽象类,但是抽象类不一定要有抽象方法接口接口的定义接口(interface)就原创 2020-05-12 21:33:28 · 162 阅读 · 0 评论 -
小白学Java07:面向对象的特性3:多态
面向对象的特性3:多态什么是多态向上转型(上溯)上转型对象的特点向下转型(下溯)instanceof 关键字强制类型转换的条件:重载和重写重载重写继承访问权限:protected防止继承关键字:final什么是多态当一个类有很多子类时,并且这些类都重写了父类的某个方法,那么那么当我们把子类创建的对象的引用放到一个父类的对象中时(即上转型对象), 那么这个上转型对象调用这个方法时就具有多种形态,因为子类在重写 父类方法时可能生产不同行为。多态就是指父类的某个方法被子类重写时,可以各自产生自己的功能行原创 2020-05-11 17:46:31 · 159 阅读 · 0 评论 -
小白学Java06:面向对象的特性2:继承
面向对象的特性2:继承继承的定义如何实现继承什么时候选择使用继承继承的权限问题变量隐藏的原则方法重写的原则关键字superthisfinal继承的定义继承性是面向对象程序设计语言的另一基本特征,通过继承可以实现代码的复用。继承而得到的类为子类,被继承的类为父类(超类) 父类包括所有直接或间接被继承的类。子类可继承父类中的变量及方法,也可定义其自身特有的变量及方法。Java中不支持多重继承,java支持单一的继承。一个子类只能有一个直接的父类如何实现继承使用extends关键字#:j原创 2020-05-11 16:41:39 · 136 阅读 · 0 评论 -
小白学Java05:面向对象的特性1:封装(包和访问权限)
面向对象的特性1:封装(包和访问权限)封装的定义包包的定义包的声明方式访问控制publicprotected(默认,前边没有修饰字的情况)private封装的定义将数据连同函数捆绑在一起,形成新的类型,这被称为封装。java语言中,对象就是对一组变量和相关方法的封装,其中变量表明了对象的状态,方法表明了对象具有的行为。通过对象的封装,实现了模块化和信息隐藏。通过对类的成员施以一定的访问权限,实现了类中成员的信息隐藏。包包的定义包(package)是类的容器,用来保存划分类名空间。由于J原创 2020-05-11 12:44:37 · 264 阅读 · 0 评论 -
小白学Java04:面向对象基础
小白学Java04:面向对象基础类和对象类和对象的关系类的组成类定义的规范类的组成结构权限修饰符publicprotected不写private变量变量的作用域全局变量:实例成员变量:类变量/静态变量:局部变量:小知识:方法分类按返回值分按参数分按功能分this关键字方法的重载类和对象类是描述对象的“基本原型”,它定义一类对象所能拥有的数据和能完成的操作。在面向对象的程序设计中,类是程序的基本单元。相似的对象可以归并到同一个类中去,就像传统语言中的变量与类型关系一样。程序中的对象是类的一个实例,是原创 2020-05-11 12:27:27 · 768 阅读 · 0 评论 -
小白学Java03:数组
小白学Java03:数组数组一维数组定义一维数组初始化一维数组数组的下标和长度:小知识多维数组二维数组的定义方式二维数组的初始化静态初始化动态初始化小知识数组的属性length:长度、元素个数数组的常用方法clone克隆toString 转化为字符串Arrays.copyOf(旧数组,新长度):实现数组的伪扩容或伪缩容数组在java语言中,数组是一种复合数据类型(引用数据类型)。数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素。数组有一维数组原创 2020-05-11 12:06:27 · 548 阅读 · 0 评论 -
小白学Java02:条件\循环
小白学Java02:条件\循环条件判断语句if...else语句switch...case 语句小知识:三目运算符循环for循环while循环do…while循环三个循环的区别和总结循环中的关键字break(退出)return(返还)continue(跳过)小知识:标签flag条件判断语句又称为分支语句,它通过对给定的条件进行判断,从而决定执行两个或多个分支中的哪一支。if…else语句通过判断条件为真还是假来决定是否执行此之下的代码如果if后的表达式结果为真,则执行括号内代码,否则执行原创 2020-05-10 20:14:11 · 121 阅读 · 0 评论 -
小白学Java01:Java基础
Java基础基础数据类型整数数据类型byte(字节型)short(短整型)int(默认型)long(长整型)浮点数据类型float(单精度)double(双精度)逻辑数据类型boolean(布尔类型)字符型char(单字符类型)知识点数据类型的转换显示转换隐式转换小知识运算符算数运算符赋值运算符:复合赋值运算符逻辑运算符与短路与:&&非短路与:&或短路或:||非短路或:|非 !位运算符:按位与 ( x & y )按位或 ( x | y )按位取反( ~x )按位异或(原创 2020-05-10 20:14:41 · 162 阅读 · 0 评论