- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 谈谈抽象类与接口的区别 完美回答
抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部行为进行抽象。而接口并不要求实现的类与接口是同一本质,它们之间只存在“有没有这个能力”的关系。抽象类所体现的是一种继承关系,考虑的是子类与父类本质“是不是”同一类的关系。接口则是自上向下来设计的,不需要知道子类的存在,只需要定义一个规则即可。接口更多的则是API定义和实现分离,实现解耦的目的,定义行为和规范。抽象类所跨域的是具有相似特点的类,而接口却可以跨域不同的类。抽象类是对类抽象,而接口是对行为的抽象。抽象类主要的作用是代码重用。
2023-11-01 12:49:04 114
原创 vue前端 + java文件下载
vue部分前端代码<el-table-column prop="displayName" min-width="100" show-overflow-tooltip header-align="center" label="附件名称"> <template slot-scope="scope"> <el-link style="color: #409eff;cursor: pointer" @click="downL
2021-05-17 15:33:27 499
原创 web service简单理解
简介Web Service是一种跨编程语言和跨操作系统平台的远程调用技术技术实现Web Service实现技术:XML+XSD、SOAP、WSDL使用xml的原因:平台无关的数据传输方式,实现跨平台的基础使用xsd的原因:相当于一种通用的数据类型系统,不管哪种语言都可与之互相转换,实现跨语言的基础SOAP协议:Simple Object Access Protocol,也就是web service通信的方式,相当于HTTP协议+XML数据格式,提供了标准的RPC方法来调用Web Ser
2020-12-22 09:59:40 356
原创 sso入门
https://blog.csdn.net/lchq1995/article/details/79527490单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。以下是个人查询资料的借鉴及对接某大型互联网公司单点系统后的一个总结和理解...
2020-12-07 14:59:20 172
原创 java 日志学习
日志和异常处理结合得当的话,会给项目维护带来非常大的价值。• 日志:就是介绍一个过程和经历的详细记录。• 项目日志:就是项目开发过程的详细记录,一般由项目经理记录。• 代码里的日志:就是程序员记录某个开发过程的详细情况,这是项目里每个程序员需要做的工作。代码里的日志在项目中扮演着非常重要的角色,日志记录的详细程度决定系统是否容易维护,Java 项目中日志记录的框架有很多,在项目中如何选型也必将困惑。我们这场 chat 讨论的主题就是:Java代码里的日志,主要是写给 Java 程...
2020-12-03 14:27:02 196
原创 HashMap实现原理
https://wiki.jikexueyuan.com/project/java-collection/hashmap.html简单地说,HashMap 在底层将 key-value 当成一个整体进行处理,这个整体就是一个 Entry 对象。HashMap 底层采用一个 Entry[] 数组来保存所有的 key-value 对,当需要存储一个 Entry 对象时,会根据 hash 算法来决定其在数组中的存储位置,在根据 equals 方法决定其在该数组位置上的链表中的存储位置;当需要取出一个Entry
2020-10-21 17:04:40 92
原创 java集合简单理解
https://blog.csdn.net/zengxiantao1994/article/details/77018356Set:无序不重复HashSet:基于HashMap实现,HashSet底层采用HashMap来保存所有元素;为快速查找设计的Set。LinkedHashSet:HashSet类的子类;使用链表维护元素插入的次序。TreeSet:基于TreeMap实现,是一个有序集合;如果没有指定Comparator接口,则默认是自然排序;List:有序可重复A...
2020-10-21 13:22:26 129
原创 JVM内存结构
JVM的内存结构大概分为:堆(Heap):线程共享。所有的对象实例以及数组都要在堆上分配。回收器主要管理的对象。 方法区(Method Area):线程共享。存储类信息、常量、静态变量、即时编译器编译后的代码。 方法栈(JVM Stack):线程私有。存储局部变量表、操作栈、动态链接、方法出口,对象指针。 本地方法栈(Native Method Stack):线程私有。为虚拟机使用到的Native 方法服务。如Java使用c或者c++编写的接口服务时,代码在此区运行。 程序计数器(Progr..
2020-10-20 22:23:35 96
原创 常用排序算法 java
常见排序手写冒泡、选择了解堆排 插入排大致思想这篇写得不错,但是具体实现细节建议google,留作复习用https://www.cnblogs.com/guoyaohua/p/8600214.html 手写二分法https://juejin.im/post/6844903616629702669手写快排https://blog.csdn.net/nrsc272420199/article/details/82587933...
2020-10-20 10:05:05 93
原创 网络协议理解
ip地址基本理解https://www.jianshu.com/p/ad7cd1d5be45初学者如何理解网络协议https://www.cnblogs.com/tsingke/p/8604871.html五层协议理解http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.htmlhttp://www.ruanyifeng.com/blog/2012/06/internet_protocol_suite_pa
2020-10-17 10:22:47 165
原创 this关键字补充
https://blog.csdn.net/ccpat/article/details/44515335参考链接正常情况下this 表示当前类的当前实例对象package com.test.base;public class Test4 { String name = "aaa"; void show(){ System.out.println(this); } @Override public String toString(.
2020-09-21 16:34:45 119
原创 多线程概要知识点复习面试
1、线程状态2、常用函数常用方法网上大多数说的含糊不清,自己敲了下代码理解了一遍,大意如下,确保不会出错join() 执行完当前线程后再执行之后的线程,需要用在该线程的start方法之后,如果之前有线程已经start,不影响前面的线程static yield() 使该线程从运行状态变为就绪状态,与其他线程一起竞争资源static sleep(long xx ms) 使该线程沉睡XX ms,之后继续执行,不释放资源,也就是说XX ms过后可以直接继续执行wait() ...
2020-09-17 18:25:57 91
原创 java1.8新特性之stream流式算法
来源:https://blog.csdn.net/papima/article/details/81808445一. 流式处理简介 接触到java8流式数据处理的时候,流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现。比如我们希望对一个包含整数的集合中筛选出所有的偶数,并将其封装成为一个新的List返回,那么在java8之前,我们需要通过如下代码实现:List<Integer> evens = new ArrayList<.
2020-07-16 09:15:56 297
原创 树形列表遍历
遍历的树如图:实体类如图:遍历方法:// 方法调用getChildrenId(childMap, childMap.get(cur.getId()), ids);// 遍历树private void getChildrenId(Map<String, List<BudgetTreeYearVO>> childMap, List<BudgetTreeYearVO> children,
2020-07-14 15:39:44 657
原创 Map替换key
示例:import java.util.HashMap;import java.util.Map;public class Test { private static void show(Map<String,String> map){ for(Map.Entry<String, String> entry : map.entrySet()) { String mapKey = entry.getKey();
2020-07-14 14:54:54 4965
原创 Map遍历的四种方式
在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方式去遍历。方法一:在for循环中使用entries实现Map的遍历:/*** 键值对都需要使用时,用的最多 */Map <String,String>map = new HashMap<String,String>();map.put("熊大", "棕色");map.put("熊二", "黄色.
2020-07-14 14:43:34 313
原创 Vue 父子组件之间传值
父组件向子组件传值首先,准备好父组件要传递的数据var vm = new Vue({ el: '#app', data: { msg: '父组件向子组件传递数据啦!' //父组件要传递的数据 }})通过子组件绑定属性的方式,传递数据<div id="app"> <row :sendData="msg"></row></div>子组件通过prop获取传递过来的数据Vue.component
2020-07-14 09:18:44 148
原创 Vue中computed使用
get 依赖的值变化而变化,默认使用方法就是getset val 中就是最新的computed后的值,用该数据做后续其他处理computed:{fullName3 : { get(){//回调函数 当需要读取当前属性值是执行,根据相关数据计算并返回当前属性的值 return this.firstName + ' ' + this.lastName }, set(...
2020-06-08 17:27:47 238
原创 Vue watch使用
转自https://www.cnblogs.com/shiningly/p/9471067.html在vue中,使用watch来响应数据的变化。watch的用法大致有三种。下面代码是watch的一种简单的用法:基本用法<input type="text" v-model="cityName"/>new Vue({ el: '#root', data: { cityName: 'shanghai' }, watch: { cityName(n.
2020-06-08 16:52:32 143
原创 Element-UI中el-tree的使用,Vue实现左树右表
页面如下:Vue中结构如下:treeData:loadTree() { getTree().then(response => { console.log(response.data, 'data') this.treeData = JSON.parse(JSON.stringify(response.data)) }) },treeData结构如下:具体如何组装treeData见上一篇
2020-06-05 14:22:32 12676 12
原创 复制树形列表功能实现
图为需要复制的内容需求简述:每个年度有不同的树形列表,该功能为复制新增树:先选择某个年度的树,点击复制新增后需要变为指定年度的树,树的结构完全一致,变化的是id,年度;详情:第一张图中的树是由2部分数据拼接的,其中深度为1-3的树在另一张表中定义,深度4+的树为需要复制的数据;难点:新生成的id与pid的映射解决思路:通过cpid中间字段保存旧id,实现映射代码思路:将原来数组按照树的深度拆分为各个数组,根据深度进行遍历,将每个深度的数组id,pid和年度逐一替换(很笨拙的方法,后.
2020-06-05 13:40:43 1489
原创 BIO、NIO、AIO理解
同步:A调用B,B处理直到获得结果,才返回给A。需要调用者一直等待和确认调用结果是否返回,然后继续往下执行。异步:A调用B,无需等待结果,B通过状态通知A或回调函数来处理。调用结果返回时,会以消息或回调的方式通知调用者。阻塞:A调用B,A被挂起直到B返回结果给A,才能继续执行。调用结果返回前,当前线程挂起不能够处理其他任务,一直等待调用结果返回。非阻塞:A调用B,A不会被挂起,A...
2020-04-14 23:24:39 122
原创 sql基础 一张表实现省市区联动
题目:一张表设计出如下所示的结构,并查询出所有街道广东 --珠海 --片区1 --街道1 --街道2 --片区2 --街道3解1:create table `zhuhai1`(id smallint unsigned primary key auto_increment,pid smallint unsigned,...
2020-04-14 23:14:11 1299
原创 利用MR程序将数据从hbase中导入mysql
转载请注明出处。这里先理一下思路,要将数据从hbase中导入mysql,要实现5个类,分别是负责读取hbase数据的mapper类,负责写入mysql的reducer类,combine类,数据库信息读写的接口类,以及最后让程序跑起来的主类。先来看下连接mysql需要给出的信息:有3点:分别是配置参数configuration,输入输出格式dbout/input, job的初始化
2017-05-28 11:37:53 2479
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人