数据库报错集 characterEncoding=UTF-8 :明确指定了字符编码为 UTF-8。这确保在与数据库进行数据交互时,使用 UTF-8 编码来对字符进行编码和解码,以正确处理包含中文字符等非 ASCII 字符的数据,避免出现乱码问题。useUnicode=true :表示启用 Unicode 支持,这对于处理包含非 ASCII 字符(如中文)的数据非常重要。1.数据库英文显示正常,中文显示?
java递归 从前有座山,山里有个庙,庙里有个老和尚,老和尚正在给和尚讲故事,讲的是什么呢?将一个大问题分解成多个规模缩小了的相似问题;递归是一种在方法内部直接或间接调用自身的方法;//4.清理,不是必须;//3.向下递归调用。
java I/O流 可以创建文件,获取文件的整体信息(例如文件的位置,名称,类型,大小,特性),删除文件,改名等操作。但不能对文件的内容进行操作;获取当前目录下的所有文件;获取当前目录下的所有文件名;renameTo(File):改名。可以表示操作系统中的一个文件或目录;i/o流 input/output。
HashMap的内部结构 当向hashmap中增加一个key时,先计算出他的hash码,根据hash码及数组的长度来计算出元素的位置,如果此位置无数据则直接放在此位置,如果有数据再使用equals进行逐个比较,相同则替换,都不相同,则使用尾插法,插入到链表的尾部;关于自扩容,默认的加载因子是0.75,超过当前容量的75%,就是扩展2倍;关于查找,也是先计算出hash码,再模上长度, 去此位置中查找;内部类,Node是对key,value的封装,同时,他也是链表的一个结点;使用链表来解决,如果长度超过8,转换成树结构(面试);
java集合框架梳理 2.元素是否重复一般通过equals来判断(也可以用hashcode),可在类中重写equals方法;Stack(实现类):栈,先进后出,push,pop,peek;LinkedList(实现类):链表,java是双项链表,有前驱和后继;priorityQueue(实现类):优先队列;ArraryList(实现类):动态数组;Collection(顶接口):element。List(子接口):可重复,有序,有下标;Set(子接口):不重复,无序,无下标;集合框架:接口,实现类,算法类;
java集合框架 collection):也被称为容器;是一种可以容纳(包含,管理)其他对象的对象,被包含的对象称为元素(elements);2.Collection下有LIst(有下标),Set(无下标,不可重复),QUeue子接口,并且没有直接的实现类;3.Collection中定义类所有集合类中共同拥有的方法;Map:元素是成对弧线的(key-value);集合是一种容器,可以增删改查(CURD);集合框架包含了多个接口,实现类,算法类;:所有集合都继承了这两个接口中的一个;1.集合框架中两个顶层接口之一;
java.util包(java工具包) Calemdar表示一个日历,此类可以用来处理时间,通常可以和Date结合着使用,就像String-->StringBuffer;可以获得年,月,日,小时,秒,星期几,一年中的第几天等;内部通过一个long值来表示当前时间的毫秒值;参考的时间是1970年1月1日0时0分0秒0毫秒;此包中包含了很多集合类,属性类,日期类等;但内部有一个方法,可以获得表示当前时间的实例;Random表示随机数生成器,它可以用来生成各种类型的随机数;表示一个时刻,可以精确到毫秒值,此类主要用来存储时间;Date(long);
java中String与StringBuffer转换 在Java中,当你使用"+"运算符来连接两个字符串时,会自动调用toString()方法将非字符串对象转换为字符串。这是因为Java中的字符串连接操作会自动调用对象的toString()方法来获取字符串表示形式,然后进行连接。例如,如果你有一个非字符串对象,比如一个整数,你可以直接将它与一个字符串相加,Java会自动调用整数对象的toString()方法来获取其字符串表示形式,然后将其与另一个字符串连接起来。被自动转换为字符串并与另一个字符串连接起来。
java异常 2.如果在try块中产生异常,则整个try块中的代码不再运行,并将产生的异常封装成一个对象,向外抛出;2.多个catch中的异常类型,应该先写子类,再写父类,因为父类包含子类,先写父类一定执行父类,不执行子类;//打印异常的追踪信息,即哪个类,哪个方法,哪行代码产生的什么类型异常;1.一个try块可以对应多个catch,catch是按顺序进行匹配的,如果匹配成功,将不会再继续匹配;如果都不能处理,则程序结束;finally的作用:只要进入try块,无论是否出现异常,都会执行finally中的代码;
java字符串缓冲区 /连在一起,就是链式编程。//不再重新创建,直接在原字符串后加了,因为字符串池中的字符串可改;//替换指定位置的字符串。有时需要对一个字符串反复执行,增删改的操作时,需要频繁的产生新的串,所以String的性能不好;//根据一个字符串来构建一个StringBuffer;//删除指定位置的字符串。reveser();
java.String类 使用创建对象定义时(String s = new String(“无敌”):,先在字符串池中寻找有无相同值,若有不进行任何操作,若无先在字符串池中创建,然后再到堆中创建,倘若以后再用创建对象定义时,重复以上操作,但仍要在堆中重新创建,不能指向堆中曾经已有的相同值;时,直接在字符串池中创建,以后再用字面值定义时,如果字符串值相同,则不再创建新的,直接指向字符串池中已创建的;10.int compareTo(String anoString)://比较两个字符串的大小;//连接字符串,返回新串;
java.API前期类回顾 3.如果两个对象不相等,则hashcode可能相等,因为hashcode是int类型,只能存二十多亿个地址,有用尽时,注意hash码是十六进制的;2.如果两个对象相等,则hashcode一定相等;toString():重写后,转换成字符串;如果重写的话,转换成类名@hashcode;3.查询类的成员:属性,方法,构造方法;lang包的特点:不需要导入,自动导入;hashcode:返回一个hsah码;1.不改对象,多次调用返回结果相同;final,不能实例化,静态成员;传递性:x,y,z;
java.Object类 判断两个对象的内容是否相同,需要重写(直接alt+insert),如果不重写此方法,将继承Object的equals方法,此方法比较的是地址;当使用System.out.println()方法时,会自动调用对象的toSring()方法;一般需要重写(alt+insert),如果不重写,返回的是:类名@hascode的十六进制。一个对象,如果属性不变,那么多次调用hashcode方法,返回的结果应该相同;如果两个对象不相等(equals),那么两个对象的hashcode也可能相等;
java包装类 3.API(Application Programming Interface)文档:类的使用说明书;//将一个10进制的数转成某种紧致的字符串;jdk5以后,支持自动拆装包,即int b = 10;java是面向对象的语言,为了统一使用,需要将基本数据类型也包装成一个类;包装类是对基本数据类型的包装,有8个基本数据类型,因此就有8个包装类;注意:所有的类都有一个共同的父类Object,系统自动默认;出身(即了解的内容):父类,实现了哪些接口;当前类的方法:构造方法,普通方法;作用:掌握某个类的使用方法;
long包 System是系统的意思,提供了最常用的一些方法和属性,此类不能被实例化,也不能被继承;//获得当前时间的毫秒值;2.此包中包含了最常用的类和接口,为了使用方便,java会将其自动导入;//向控制台输出错误信息;//退出java虚拟机,即结束程序;destPos:目标数组的开始位置;1.是java种应用最广泛的包;srcPos:源数组的开始位置;
java常用类 3.应用程序接口(API(application programming interface)):将一个类的定义放在其他的类种,这种类就叫内部类;static修饰,可以访问外部类的所有静态部分;(API文档就是使用说明说)定义在方法种,在调用方法是被创建;没有名,定义和创建实例放在一起;继承,关联(聚合,组合),依赖。可以访问外部类的所有部分;属性,方法,构造方法;