![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 79
_重年
这个作者很懒,什么都没留下…
展开
-
IO(Java)
IO一、IO分类1.1、总的分类1.2、按流向分类输入流 数据源到程序(InputStream、Reader读进来)输出流 程序到目的地(OutPutStream、Writer写出去)1.3、按功能分类节点流 可以直接从数据源或目的地读写数据。处理流 不直接连接到数据源或目的地,是处理流的流。通过对其他流的处理提高程序的性能。1.4、按处理的数据单元字节流按照字节读取数据(InputStream、OutputStream) 字节流能够处理一切的内容,包括文本和非原创 2021-07-23 19:44:22 · 119 阅读 · 0 评论 -
方法重写 (Java)
方法重写 子类是父类的延续 + 扩展 延续 : 直接继承下来的 扩展:增强(重写), 新增(新加的)需要重写的原因: 当存在继承关系的两个类中,如果父类的方法不能满足子类的需求, 按需在子类中重写父类中方法(只有方法才存在重写) 重写的注解:@Override重写的注意点:重写方法的修饰符一般和父类相同,但至少范围要大于等于父类,比如父类是protected,子类只能是protected或者public重写方法的返回值一般和父类相同,除非,返回值是引用类型时,返回值最多允许修改原创 2020-11-08 14:48:55 · 315 阅读 · 0 评论 -
Properties (Java)
PropertiesProperties为Hashtable的子类,要求键与值只能为字符串 ,不能为null,长与 配置文件(与外界交互 的信息) 即内存与存储介质(文件、数据库、网络、服务器内存等) 交互。原来的集合(Set, List, Map) 都是内存中自己给数据,Peroperties 特殊在于,他自己去读取磁盘中文件的内容,添加到集合中,直接使用有数据的集合即可(自己提供集合对象)。一般使用在配置文件中 , 如下:db.properties 配置文件userName=zhangsan原创 2020-11-12 10:08:42 · 221 阅读 · 2 评论 -
对象转型 (Java)
对象转型不同的引用类型之间进行转换,但是必须保证在同一条继承链上自动:子类->父类 向上转型 一定丢失子类的新特性强制:父类->子类 向下转型 可能类型转换异常(真实的对象是父类的时候,由子类转为父类,再转回子类)编译:编译阶段只会检查类型,只要类型通过,认为一切都没有问题,此时也决定了能调用什么方法执行|运行:运行阶段才会检查对象,才会根据对象去调用方法,检查空间,空间不匹配,运行时报错为什么需要有对象转型?子类-> 父类: 提高程序的扩展性父类->子类原创 2020-11-08 14:49:04 · 242 阅读 · 0 评论 -
逆向工程 (Java+Oracle框架--mybatis)
逆向工程mybatis-generator是一款mybatis自动代码生成工具,可以通过配置,快速生成pojo,mapper和xml文件.generatorConfig.xml配置需添加到资源包下 src下<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//E原创 2020-11-09 20:24:51 · 307 阅读 · 0 评论 -
缓存 (Java+Oracle框架--mybatis)
缓存 缓存的重要性是不言而喻的。 使用缓存, 我们可以避免频繁的与数据库进行交互, 尤其是在查询越多、缓存命 中率越高的情况下, 使用缓存对性能的提高更明显。 mybatis 也提供了对缓存的支持, 分为一级缓存和二级缓存。 但是在默认的情况下, 只开启一级缓存。一级缓存缓存的原理 在同一个 SqlSession 中, Mybatis 会把执行的方法和参数通过算法生成缓存的键值, 将键值和结果存放在一个 Map 中, 如果后续的键值一样, 则直接从 Map中获取数据;缓存的开启: 默认原创 2020-11-09 19:42:31 · 221 阅读 · 0 评论 -
注解开发 (Java+Oracle框架--mybatis)
注解开发使用注解一般用于简化配置文件. 但是, 注解有时候也不是很友好(有时候反而更麻烦), 例如动态 SQL等,所以注解和配置文件可以配合使用。MyBatis 中常用的注解 CRUD 注解@Select: 类似于select标签@Insert: 类似于insert标签@Update: 类似于update标签@Delete: 类似于delete标签package com.xxxx.mapper; import java.util.List; import org.apache.ibati原创 2020-11-09 10:37:13 · 292 阅读 · 0 评论 -
动态SQL及其resultMap的功能 (Java+Oracle框架--mybatis)
动态SQL项目结构:一、核心配置文件 (配置了log4j)<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><!-- configuration 核心配置文件的根元素 --><config原创 2020-11-09 00:28:25 · 416 阅读 · 0 评论 -
日志 (Java+Oracle框架--mybatis)
日志日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。日志级别分为五个级别:DEBUG(人为调试信息)、INFO(普通信息)、WARN(警告)、ERROR(错误)和FATAL(系统错误)这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条日志信息的原创 2020-11-08 21:14:58 · 175 阅读 · 0 评论 -
2种不能随意写占位符#{}的情况 (Java+Oracle框架--mybatis)
占位符 #{} 只有一个的时候都能随意写。比如 #{a} 或者 #{abc} 等等,不过最好见名知义。有2种情况不能随意写:第1种: 传入的参数是对象时,需要用到对象的属性 #{deptno} #{dname} ,#{} 里面必须使用对象属性。 <!--Javabean:根据用户名和部门编号同时查询员工信息 : sql语句中的参数2个--> <select id="queryEmpByNameDeptno" parameterType="emp" resultType原创 2020-11-08 20:24:53 · 478 阅读 · 0 评论 -
MyBatis接口绑定方案 (Java+Oracle框架--mybatis)
MyBatis接口绑定方案 Myabtis中,提供了一套接口绑定方案,程序员可以提供一个接口,然后提供一个与接口所对应的mapper.xml文件Myabaits会自动讲接口与xml文件进行绑定。实际上就是Mybatis互根据接口和对应的xml文件创建一个接口的实现类,换言之,就是可以得到接口类型的一个对象,方便方法的调用项目结构:一、核心配置文件此处有优化:别名配置 (默认设置包下所有pojo的别名)扫描多个接口,可以简化配置,使用package标签,表示扫描对应包下的所有接口原创 2020-11-08 16:48:24 · 254 阅读 · 0 评论 -
This的作用(Java)
This的作用代表了当前对象,只出现在方法中区分同名变量和属性,用 this.属性名 代表成员变量 (如果省略this,那么按照就近原则,该属性指代方法内的局部变量或者形参)在方法中可以使用 this.方法名 调用成员方法,但可以省略在构造方法的第一行,可以使用 this() 调用重装的构造方法public class Course_exercise_point { int x; int y; int z; public Course_exercis原创 2020-11-08 14:45:35 · 1933 阅读 · 0 评论 -
MyBatis 的入参 parameterType 和返回值 resultType 的测试 (Java+Oracle框架--mybatis)
MyBatis 的入参 parameterType 和返回值 resultType 的测试一、核心配置文件driver=oracle.jdbc.driver.OracleDriverurl=jdbc:oracle:thin:@localhost:1521:XEusername=SCOTTpassword=TIGER<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-/原创 2020-11-08 14:07:19 · 471 阅读 · 0 评论 -
Mybatis (Java+Oracle框架--mybatis)
Mybatis1. 基本介绍: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache soxware foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的P原创 2020-11-08 11:09:13 · 874 阅读 · 0 评论 -
JDBC (Java+Oracle) --12
JDBCJDBC: java database connectivity java 与数据库的连接面向接口编程: java 制定标准 ,不同的数据库厂商实现 接口即可。 java 中提供的接口 java.sql.* 包下,常用接口如下JDBC步骤:具体步骤1. 准备工作 引入驱动包,构建路径 build path测试用户是否正确登录2. 设置好 驱动,连接,用户名 和 密码3. 封装sql4. 封装处理块(静态处理块,预处理块) (发送执行sql)5. 接口结果集并处理原创 2020-11-07 20:15:27 · 169 阅读 · 0 评论 -
泛型 (Java)
泛型Java泛型是 JDK1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的 数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。泛型类 泛型接口public class className<泛型符号1,泛型符号2...>{} public interface interfaceName<泛型符号1,泛型符号2...>{} public class className in原创 2020-10-28 22:07:38 · 74 阅读 · 0 评论 -
日期相关类 (Java)
日期相关类类方法System 系统类currentTimeMillis(): 当前时间Date 日期类new Date() :当前时间new Date(指定时间):指定时间getTime(): 获取时间setTime(指定时间):设置指定时间SimpleDateFormat 格式器new SimpleDateFormat() 构造方法 (模板)format() : 格式化为字符串parse():转成日期System 系原创 2020-10-28 19:47:41 · 129 阅读 · 0 评论 -
包装类 (Java)
包装类 JAVA并不是纯面向对象的语言。Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。 比如:集合的操作中。例如使用Map对象要操作put()方法时,需要传入的参数是对象而不是基本数据类型。为了解决这个不足,在设计类时为每个 基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class) 。 包装类均位于 java.lang 包,包装类和基本数据类型的对原创 2020-10-28 14:44:45 · 361 阅读 · 0 评论 -
异常 (Java)
异常异常的概念: 异常(Exception) 即例外,程序没有按自己预想的结果运行出来,出现了非正常情况,即“程序得病了”。 错误 (Error) 是指在程序运行的过程中发生的一些例外事件(如:除0,数组下标越界,所要读取的文件不存在)。异常分类:Error: 称为错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等, 程序对其不做处理。Error 类层次描述了 Java 运行时系统内部错误和资源耗尽错误。**这类错误是我们无法控制的,同时也是非常罕见的错误。**所以在编程中原创 2020-10-28 11:37:26 · 76 阅读 · 0 评论 -
类的设计原则 及 类和类之间的关系 (Java)
类的设计原则1. 单一职责原则一个类应该有且只有一个变化的原因。单一职责原则将不同的职责分离到单独的类,每一个职责都是一个变化的中心。需求变化时,将通过更改职责相关的类来体现。如果一个类拥有多于一个的职责,则多个职责耦合在一起,会有多于一个原因来导致这个类发生变化。一个职责的变化可能会影响到其他的职责,另外,把多个职责耦合在一起,影响复用性。2. 里氏代换原则这就是要求继承是严格的is-a关系。所有引用基类的地方必须能透明地使用其子类的对象。在软件中将一个基类对象替换成它的子类对象,程序将不会产生任原创 2020-10-28 11:07:11 · 470 阅读 · 1 评论 -
抽象类和接口 (Java)
抽象类抽象类:含有abstract修饰符的class即为抽象类对于抽象类里的方法 :含有抽象方法的类必须定义为抽象类。抽象方法前可以有 public protected 或者 默认 修饰 ,不能有 private static 和final修饰抽象类可以有构造方法,但抽象类不能创建实例对象(new),只能被用来继承(extends)。对于抽象类的子类: 抽象类中定义抽象方法必须在具体子类中实现,如果子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。抽象类原创 2020-10-28 10:33:26 · 75 阅读 · 0 评论 -
final 关键字 (Java)
final 关键字修饰变量 被它修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。修饰成员变量 成员变量必须 在定义处赋值 或者 在构造方法中赋值。 (两者只能选其一)修饰局部变量 可以先声明,不马上赋值。但只能赋值一次,不能再修改。final修饰的是引用变量时只是引用值不能改变。对应的对象内部的属性仍然可变。public class tt { final int p = 0; // 定义处赋值 final int i; public tt(int i)原创 2020-10-27 21:40:59 · 185 阅读 · 0 评论 -
继承 (Java)
继承 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。继承的优点:继承的本质在于抽象。类是对对象的抽象,继承是对某一批类的抽象。为了提高代码的复用性。(事实上,利用组合可以更好的实现代码复用!)如何实现继承: 使用 extends 关键字即可。public class TestExtends { public static void main(String[] args) { Mammal m1 = new Mammal(); m1.puru(); m原创 2020-10-27 21:11:34 · 60 阅读 · 0 评论 -
封装性 (Java)
封装性隐藏内部的实现细节,对外提供公有的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。使用者: 方便使用创造者(提供者):保护内部数据的安全一般而言:(封装适度, 该露的露,该藏的藏) 属性私有化(藏起来), 方法公开(暴露出来)权限修饰符,达到封装的效果 private, default, protected, public封装的好处(优点):1) 通过隐藏对象的属性来保护对象内部的状态(隐原创 2020-10-27 20:39:43 · 271 阅读 · 1 评论 -
Java基本介绍
Java基本介绍1、什么是JDK? * Java Development Kits * Java开发工具箱【Java开发必备】 * 可以从Oracle的官网上下载。http://www.oracle.com * 目前2016-08-30最高版本Java8【Java SE 8u101 / 8u102】 * 下载JDK的时候需要注意:JDK的版本,不同的操作系统需要安装不同版本的JDK。2、Java分三大块:1999年* J2SE【Java的标准版本】: 基础,无论是以后走EE还是ME,S原创 2020-10-27 17:54:50 · 336 阅读 · 0 评论 -
容器 (Java)
容器ArrayList 和 LinkedList增:void add( Object element); void add (int index, Object element); 删:Object remove (int index); clear() 改:Object set (int index,Object element);//修改某一位置的元素 查:Object get (int index); int indexOf (Object o);//返回某个元素的索原创 2020-10-25 17:02:30 · 248 阅读 · 0 评论 -
不定长参数 (Java)
不定长参数注意的两点使用不定长参数必须是参数的最后一个一个方法中有三个参数,你的第一个第二个参数不能是不定长参数一个方法中只有一个不定长参数public class test { public static void main(String[] args) { show("测试不定长参数方法",1,2,3); } public static void show(String str,int ... arr){ Sys原创 2020-10-25 15:17:58 · 188 阅读 · 0 评论 -
File类 (Java)
File类File 不区分文件和文件夹File(String pathname) //可以是绝对路径,也可以是相对路径(盘符) 有盘符就是绝对路径 可以使用 \\ 或者 /File fileA = new File("E:\\a.txt");File fileA = new File("E:/a.txt");File(File parent, String child) // 文件夹下面对应的文件File(String parent, Stringch原创 2020-10-25 14:26:48 · 186 阅读 · 0 评论 -
String常用类和StringBuilder (Java)
String常用类String类的下述方法能创建并返回一个新的String对象:String() 创建一一个空字符的 String对象String(String original) 创建一个String对象为original的拷贝String(char[] value) 用一个字符数组创建一个String对象String(char[] value, int offset, int count) 用一个字符数组从offset开始的count个字符序列创建一个String对象String(b原创 2020-10-25 10:12:56 · 126 阅读 · 1 评论 -
多线程 (Java)
线程和进程的区别进程: 执行中的程序叫做进程(Process),操作系统同时执行多个进程,每个进程独立运行。线程: 一条线程指的是进程中一个单一顺序的控制流, 一个进程中可以并发多个线程,每条线程并行执行不同的任务。 多线程原来的执行程序为一条路径,现在加入多线程则存在多条执行路径。三种实现方法:继承Thread类 子类对象调用start() -----> 由于java是单继承,不推荐使用public class ThreadDemo01 ex原创 2020-10-22 20:52:53 · 102 阅读 · 0 评论 -
内部类 (Java)
内部类成员内部类: 成员内部类可以访问外部类的所有成员变量和方法(无论静态、非静态、私有、非私有),自身没有静态成员。在外部类中如果要访问成员内部类的成员,必须先创建 一个成员内部类的对象,再通过指向这个对象的引用来访问。静态内部类: 如果用 static 将内部类静态化,那么内部类就只能访问外部类的静态成员变量,不能直接访问外部类的实例变量、实例方法,只有通过对象引用才能访问。局部内部类: 内部类移到了外部类的方法中,然后在外部类的方法中再生成一个内部类对象去 调用内部类方法。(像局部原创 2020-10-22 20:54:49 · 102 阅读 · 1 评论 -
Java集合框架图 (Java)
原创 2020-11-08 14:49:42 · 48 阅读 · 0 评论 -
容器List的删除方式对比 及 remove()方法和removeAll()方法 (Java)
remove()方法import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * 集合中元素的删除 * 注意: */public class Demo001 { public static void main(String[] args) { List<String> list = new ArrayList<>(); lis原创 2020-10-25 17:44:36 · 1746 阅读 · 1 评论 -
hashcode()和equals()的联系 (Java)
hashcode()和equals()的联系hashCode()和equal()一样都是基本类Object里的方法,而和equal()一样,Object里hashCode()里面只是返回当前对象的地址,如果是这样的话,那么我们相同的一个类,new两个对象,由于他们在内存里的地址不同,则他们的hashCode() 不同。equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的。使用equal()是一定可靠的,为什么还要重写hashCode()呢?重写has原创 2020-11-08 14:52:31 · 127 阅读 · 0 评论 -
Java中Scanner对象中的方法 (Java)
Java中Scanner对象中的方法nextInt() nextFloat() nextDouble() nextBoolean() next()nextInt() 只能输入整型数据nextFloat() 能输入整型数据或者浮点型数据nextDouble() 能输入整型数据或者浮点型数据nextBoolean() 只能输入true或者false (此处大小写随意 TrUE FAlse都可以)next() 将数据当字符串接收,返回一个字符串next().charAt() 可以用来当作接收字原创 2020-11-08 14:49:33 · 1349 阅读 · 0 评论 -
ArrayList 的三种构造方法 (Java)
ArrayList 的三种构造方法ArrayList的构造函数总共有三个:(1)ArrayList()构造一个初始容量为 10 的空列表。List<String> list1 = new ArrayList<>();(2)ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。List<String> list2 = new ArrayList<>(6);(3)ArrayList(Collection<原创 2020-11-08 14:49:25 · 7325 阅读 · 1 评论 -
多态 (Java)
多态 (综合了 继承, 重写, 向上转型)继承关系的两个类中,有方法重写,父类引用指向子类对象,调用了其中的经过重写的方法,就会发生多态,根据子类实际对象调用对应的方法。(提高程序的扩展性)...原创 2020-11-08 14:52:39 · 66 阅读 · 0 评论 -
split()函数 (Java)
首先,我们来了解一下split()函数各个参数的意义public String[] split(String regex, int limit)regex – 正则表达式分隔符。limit – 分割的份数。第一个参数:下面就让我们来举个例子String str = "one two three, four";String[] tokens = str.split(" ");System.out.println("个数:"+tokens.length);for (String s: t原创 2020-11-08 14:49:15 · 3003 阅读 · 0 评论 -
Super关键字 (Java)
Super关键字super不是引用类型,super中存储的不是内存地址,super指向的不是父类对象.super代表的是当前子类对象中的父类型特征。注意: 子类除了构造方法外,可以继承父类的所有属性和方法访问父类的属性: super.属性名; 前提是有访问权限方法父类的方法: super.方法名(); 前提是有访问权限访问父类的构造器: suepr(); 前提是有访问权限public class Person { private String nam原创 2020-11-08 14:48:44 · 208 阅读 · 0 评论 -
克隆clone() (Java)
克隆clone() —> 使用clone()避免使用构造器生成对象。未使用克隆的情况:package Day07.Exercise.CloneTest;public class TestNoClone { public static void main(String[] args) { TestNoClone t1 = new TestNoClone(); TestNoClone t2 = t1; System.out.printl原创 2020-11-08 14:49:54 · 376 阅读 · 0 评论