
JAVA
文章平均质量分 68
java学习记录
基础不牢,地动山摇
你失业的样子,真漂亮
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDFS shell及Java API操作
MapReduce跑不通参考这个解决https://blog.csdn.net/whs0329/article/details/121878162。拒绝当前用户访问的话,需要设置环境变量将用户替换为root用户。记得设置用户root环境变量,exit 0表示词频统计运行成功。设置环境变量HADOOP_USER_NAME=root。上传本地1.txt文件到hdfs上面。项目pom.xml文件。1.创建要执行统计的目录。Java API代码。原创 2022-12-08 15:45:39 · 708 阅读 · 0 评论 -
MyBatis多对一与一对多、自连接查询
多对一查询例如根据学生查班级,使用<association>标签。关联方式查询:通过多表关联的SQL语法进行查询, 需要使用join, on, …来实现查询。执行一条SQL语句就可以将所有需要的数据全部查询到。我们需要做的就是将查到的数据进行映射即可。实体类的属性名与表中的字段名一样时,默认不会自动映射,需要设置autoMapping=“true”,即可自动映射。通过association 映射实体类中包括的其他实体类。缺点:SQL语句复杂。<mapper namespace="mu原创 2020-11-22 16:35:07 · 923 阅读 · 1 评论 -
MyBatis动态SQL
SQL语句不固定,按条件生成对应的SQL语句。<if>标签用于条件判断,test属性表示判断结果,要求是一个boolean。test中的参数不用#{},直接用参数名或map的key。<where>标签用于维护where子句,通常配合一起使用。如果不使用<where>,直接使用where,if条件都不成立时,where还是会在SQL语句中,会出错。如下功能:当没有条件时, 不会创建WHERE关键字;当有条件时, 会自动生成WHERE关键字;会自动去掉第一个条原创 2020-11-20 18:30:53 · 161 阅读 · 0 评论 -
MyBatis接口绑定
自带的selectList等api的方法名和传参无法自定义。接口绑定可以解决方法调用不灵活,参数传递不灵活的问题。需要提供与接口匹配的映射配置文件。遵循特定规范必要规范:映射配置文件中, mapper的namespace属性必须和接口的全限定路径一致<mapper namespace="InterfaceBinding.TestInterfaceBinding"> <select id="selAll" resultType="User"> sel原创 2020-11-20 15:58:13 · 186 阅读 · 0 评论 -
MyBatis增删改与MD5加密实现
ctrl+shift+N 查找文件增删改需要进行事务管理。增@Testpublic void testAdd(){ User user=new User("wangwu","123","王五",18,new Date()); SqlSession sqlSession = MyBatisUtil.getSqlSession(); try { sqlSession.insert("insertUser",user); sqlSession.com原创 2020-11-20 10:38:34 · 879 阅读 · 0 评论 -
MyBatis带参查询
#{}占位符类似于jdbc中通过PreparedStatement进行操作的方式, 会将sql语句中需要参数的位置使用?进行占位,后续由传进来的参数进行参数的绑定。?处绑定的都是值,不能指定表的列,转换成sql时表名会被当成字符串,会出错,防止sql注入。select username,age,password from 'tb_user'简单类型参数简单类型指的是: 基本数据类型, 包装类型, String, java.sql.*。当参数是简单类型时, MyBatis会忽略SQL语句中参数的个数原创 2020-11-19 11:36:48 · 1114 阅读 · 1 评论 -
MyBatis三种基本查询方法与log4j
selectList查询不到时,返回空list。可以通过list.size()判断是否查询到。List<User> list = sqlSession.selectList("selAll");源码@Overridepublic <E> List<E> selectList(String statement, Object parameter, RowBounds rowBounds) { try { MappedStatement ms = co原创 2020-11-18 16:28:27 · 204 阅读 · 0 评论 -
MyBatis基础
配置文件一般放在src目录下,会直接编译并存放在类路径下(classpath)。原创 2020-11-17 14:57:02 · 131 阅读 · 0 评论 -
原生AJAX
Ajax请求发出去,客户端不需要等待,继续其他页面操作即可;服务端返回的也不是整个页面,是相关的数据,到达客户端后自动的局部刷新。好处:用户体验好,网络传输量小。特点:异步访问,局部加载。原生Ajax步骤创建XMLHTTPRequest对象与服务前连接回调函数发送Ajax请求let xml;function checkName(){ document.getElementById("nameTips").innerHTML="" let name=document.g原创 2020-11-14 21:29:06 · 183 阅读 · 0 评论 -
Java Iterator与ListIterator原理
IteratorIterator专门为遍历集合而生,集合并没有提供专门的遍历的方法Iterator实现迭代器设计模式(设计模式23个:工厂模式、单例模式、迭代器模式)iterator.remove() 删除当前遍历到的值foreach不能删除会出现ConcurrentModificationException哪些集合可以使用Iterator遍历Collection:可以List:可以Set:可以Map:不可以,map并没有实现Iterator接口提供iterator()方法的就可以原创 2020-11-14 17:21:35 · 248 阅读 · 0 评论 -
HashMap部分源码解析
默认初始容量首次添加且调用是不指定内存大小的构造方法,才会使用默认初始容量开辟内存空间// hashtable数组默认大小16个桶,必须是2的幂static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;将hashcode映射到桶中,数组大小(桶的个数)必须是2的幂,因为会将hashcode与数组大小-1进行按位运算,2的幂-1得到的数的二进制表示为全1,没有0的影响,使每个hashcode的运算就是其本身的二进制(即数组的下标),桶中数据分布原创 2020-11-13 15:44:14 · 99 阅读 · 0 评论 -
Java map容器
HashMapHashMap:底层结构是哈希表。查询快、 添加快,无序key:无序,唯一 HashSetvalue:无序,不唯一 CollectionLinkedHashMapLinkedHashMap:底层结构是哈希表+链表。查询快、添加快,有序key:有序(添加顺序),唯一 LinkedHashSetvalue:无序,不唯一 CollectionTreeMapTreeMap:底层结构是红黑树,速度介于哈希表和线性表之间,有序key:有序(自然顺序)唯一TreeSetvalue:原创 2020-11-12 20:02:32 · 426 阅读 · 0 评论 -
哈希表原理初解(hashtable)
哈希表结构特点ctrl+alt+左右箭头返回鼠标上次下次焦点hashtable也叫散列表 特点:快很快神奇的快结构:结构有多种最流行、最容易理解:顺序表+链表主结构:顺序表每个顺序表的节点在单独引出一个链表添加与查找数据计算哈希码(调用hashCode(),结果是一个int值 ,整数的哈希码取自身即可)计算在哈希表中的存储位置y=k(x)=x%11x:哈希码k(x) :哈希函数y :在哈希表中的存储位置,y值一样就会出现hash冲突(无法避免)。存入哈希表情况1 : 一原创 2020-11-12 16:30:25 · 198 阅读 · 0 评论 -
Java set容器
set特点:无序,唯一HashSet采用Hashtable哈希表存储结构(神奇的结构)优点:添加速度快查询速度快删除速度快缺点:无序LinkedHashSet采用哈希表存储结构,同时使用链表维护次序有序(添加顺序)TreeSet采用二叉树(红黑树)的存储结构优点:有序(大小顺序)查询速度比List快(按照内容查询)缺点:查询速度没有HashSet快二叉排序树:左子树<根<右子树二叉平衡树:首先是排序树,左右子树高度差不超过1set的遍历for-ea原创 2020-11-11 20:21:34 · 500 阅读 · 0 评论 -
Java ArrayList与LinkedList基础与底层部分源码
ArrayList数据结构元素的数据类型相同,所占内存大小一样,由于是顺序存储的,可以直接计算每个元素所在的内存地址,根据索引查找时速度快。在内存中分配连续的空间,实现了长度可变的数组优点:遍历元素和随机访问元素的效率比较高缺点:添加和删除需大量移动元素效率低(需要覆盖前移),按照内容查询效率低ArrayList特点:不唯一、 有顺序(索引的顺序)。集合中只能放对象,不能放基本数据类型,jdk1.5之后会自动装箱。ArrayList常用方法添加index为可选参数,list下标lis原创 2020-11-10 21:14:29 · 141 阅读 · 0 评论 -
java List容器原理
集合与数组对比数组缺点数组的长度必须在初始时指定,固定不可动态更改。数组存储是连续的,添加删除效率低。删除后还需要后面的数据向前移动进行覆盖。无法保存映射。key-value,下标只是数字,无实际含义,key则可以是字符串。数组不想集合提过对象操作方法。集合Collection接口存储无序、不唯一的对象。List接口存储有序,不唯一的对象。Set接口存储无序,唯一的对象。Map接口存储key唯一无序,value不唯一。ListArrayList元素的数据类型相同,所占内存大原创 2020-11-10 17:38:10 · 155 阅读 · 0 评论 -
String、StringBuffer和StringBuilder对比
String不可变性s1只是String对象的引用,而“hello”才是String对象,会先在常量池创建“hello”对象,s1就会指向String对象。执行s1=s1+"world"则会重新在常量池开辟新内存创建“hello world”对象,s1重新指向“hello world”。new(“”)时的对象则是堆中开辟内存。String s1="hello";s1=s1+"world";String一旦创建不能修改,由于它是final修饰的类,通过char[]引用类型对值进行了封装,value不原创 2020-11-10 16:34:32 · 145 阅读 · 0 评论