3 爱在那一天之小兵

尚未进行身份认证

成长就是动力!!!

等级
TA的排名 9w+

Java 通过FTP与SFTP 方式, 实现 文件的上传下载 删除操作

1. FTPFTP通讯协议采用客户机 / 服务器(Client / Server )架构。用户可以通过各种不同的FTP客户端程序,借助FTP协议,来连接FTP服务器,以上传或者下载文件。默认端口: 21在此协议中SSH2服务器起了一个桥梁作用,把数据在客户端和ftp之间转发。ftp协议本身包括两个通道,一个是控制通道,另一个是数据通道。2. SFTPSftp是Secure Fi...

2019-09-25 10:23:51

实现 Java 本地缓存(转)

转载的内容缓存,我相信大家对它一定不陌生,在项目中,缓存肯定是必不可少的。市面上有非常多的缓存工具,比如 Redis、Guava Cache 或者 EHcache。对于这些工具,我想大家肯定都非常熟悉,所以今天我们不聊它们,我们来聊一聊如何实现本地缓存。参考上面几种工具,要实现一个较好的本地缓存,平头哥认为要从以下三个方面开始。1、存储集合的选择实现本地缓存,存储容器肯定是 key/v...

2019-09-18 09:24:04

数据库优化知识小结(二)

1. 数据库调优维度数据库调优的目的: 让数据库运行的更快,相应时间更快, 吞吐量更大用户的反馈----> 找到数据相关问题日志的分析-----> 日志和异常定位问题服务器资源的监控------> CPU / 内存 / I/O等数据库内部监控-----> (Active Session) 监控会话,是否繁忙/SQL堆积第一步: 选择合适DBMS (MY...

2019-09-03 23:20:42

SQL 学习笔记(一)

1. SQL语言按功能划分DDL,英文叫做 Data Definition Language,也就是数据定义语言,它用来定义我们的数据库对象,包括数据库、数据表和列。通过使用 DDL,我们可以创建,删除和修改数据库和表结构。DML,英文叫做 Data Manipulation Language,数据操作语言,我们用它操作和数据库相关的记录,比如增加、删除、修改数据表中的记录。DCL,英文叫...

2019-09-03 23:16:26

Git学习命令使用

1. 下载安装Git学习来源:添加链接描述2. 使用命令git创建全局用户git config --global user.name “xzb”git config --global user.email “465722177@qq.com”切换盘符cd e:创建文件mkdir learngit显示当前目录pwd初始化目录为git仓...

2019-08-16 17:55:14

记录一个IDEA中MAVEN更新私服jar,download不下来的原因

在公司下载项目后,需要下载相应的jar包,加了一个Maven依赖项(dependency)可是我始终获取不到本地解决:1.Maven的setting.xml文件检查没有问题,比如私服地址配置,镜像等配置发布时使用的用户名和密码,后期需要申请,这个只是更新下载包,可忽略<servers> <server> <id>服务...

2019-07-18 14:06:59

Java8实战之函数代码引用(::)

2019-06-18 20:53:32

BIO与NIO简单学习

1. 概念2. BIO3. NIO4. 使用:如果拿NIO比作成一个餐厅的话,ServerSocketChannel就相当于整个餐厅,SocketChannel相当于客人,Selector相当于服务员,SelectionKey相当于服务种类(迎接客人,点餐等)这是简单学习!!!...

2019-06-14 10:36:02

Win10下安装多版本MySQL(MySQL5和MySQL8)

1. 多版本zip准备[ https://dev.mysql.com/downloads/mysql/ ] 官网地址,MYSQL5.72. MYSQL8,2. 解压到指定目录3. 配置环境变量2. 加入Path变量3. 配置以及初始化,创建服务(MYSQL5)1.在bin的同级目录下创建my.ini配置文件2. my.ini 内容:3. 创建自己指定的目录: ...

2019-06-05 21:49:00

本地缓存Ehcache的使用(记录)

1.什么是EhcacheEhcache是纯java的开源缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。它主要面向通用缓存、JavaEE和轻量级容器,具有内存和磁盘存储、缓存加载器、缓存扩展、缓存异常处理程序。Ehcache最初由GregLuck于2003年开始开发。2009年,该项目被Terracotta购买。软件仍然开源,但一些新的主要功能(...

2019-05-02 17:11:39

API接口幂等设计(Token方式防止表单重复提交或网络延迟)

场景要求:页面的数据只能被点击提交一次发生原因:由于重复点击或者网络重发,或者nginx重发等情况会导致数据被重复提交解决办法:集群环境:采用token加redis(redis单线程的,处理需要排队)单JVM环境:采用token加redis或token加jvm内存处理流程:数据提交前要向服务的申请token,token放到redis或jvm内...

2019-04-27 01:27:01

linkedList模拟实现map 原理: 数组+链表的方式实现Map功能(不是hashMap)

大致思路实体基于Entry<K,V> 存储此处是使用LinkedList自己封装的链表 ,这个实现的效率低基于1.7版本的HashMap原理: 单项链表+数组 Node<K,V>[] 实现基于1.8把那本的HashMap原理: 数组 + 红黑树 实现核心知识(1).两个对象进行比较时,如果hashCode()值相同,那么 他们的值不一定相同(2).两个对...

2019-03-29 14:11:01

通过源码分析自定义实现LinkedList集合

数据结构数组; 链表; 红黑树; 二叉树数组和链表结构对比实现细节以及思路实现本质: 双向链表的数据结构链表: 节点: 存储上一个节点地址信息, 元数据, 下一个节点地址信息通过地址指针 实现数据节点的双向指向核心参数理解first节点的使用? 是为了查询的时候知道从哪个地址开始遍历last节点的使用? 是为了添加元素的时候,从哪个地址开始.实现细节添加的时候: 注意是...

2019-03-28 00:09:23

自定义实现ArrayList

大致思路通过看源码ArrayList 分析:核心(1)是由线性的连续分配的内存空间, 有Object[]数组实现(2当数组满时, 需要使用扩容机制: System.arraycopy(原数组,原数组的起始复制位置,目标数组,目标数组的移动位置, 复制的容量 大小) Arrays.copyOf(数组,扩容的大小) --底层使用System.arraycopy(..)方法...

2019-03-27 17:00:41

自定义实现jdbc数据库连接池

连接池作用达到资源的复用提高响应速度(不必要的连接与关闭)资源的分配策略,可以统一管理连接池的大致实现思路核心参数:空闲连接数: 没有使用的连接数活动连接数: 正在使用的连接数最大连接数: 最多允许存在的连接数初始化连接池(用容器封装:比如Vecotr sql包下)实现获取Connection的方法:(1) 判断当前连接数(countPool) 是否小于 最大连接数...

2019-03-26 23:41:49

自定义实现简易版SpringMVC(基于Servlet)

了解SpringMVC流程了解ServletServlet 生命周期:Servlet 加载—>实例化—>服务—>销毁。init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Ser...

2019-03-26 12:45:50

Spring自定义实现IOC和依赖注入(注解方式)

大致思路:注解实现方式:就是用 反射机制. 获取指定的包下使用了注解的类,存储在一个map容器, 然后获取map容器下类的属性, 利用反射给使用了注解的属性赋值对象.xml实现方式:使用xml解析配置文件+反射机制此处使用注解方式1. 引入相关jar<dependencies> <!-- 引入Spring-AOP等相关Jar --> <depen...

2019-03-25 22:32:49

Java并发编程之内存模型概念知识

Java内存模型共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入时,能对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实存在。它...

2019-03-17 16:23:08

Java并发编程之线程基础与生产者与消费者问题案例

什么是线程、进程、多线程?线程: 是Java中执行代码的一条执行路径。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。进程:每个正在系统上运行的程序都是一个进程,是操作系统调度的执行单元。多线程:在一个进程中,有多条不同的执行路径,并行执行,目的为了提高程序的效率在一个进程...

2019-03-17 16:04:21

Linux下安装Memcached和Java应用

摘要出自[纯洁的微笑]Memcache 介绍Memcache 是一个自由和开放源代码、高性能、分配的内存对象缓存系统。简单来说,Memcache 是一个高性能的分布式内存对象的 key-value 缓存系统,用于加速动态 Web 应用程序,减轻数据库负载,现在也有很多人将它作为内存式数据库在使用。它可以应对任意多个连接,使用非阻塞的网络 IO,由于它的工作机制是在内存中开辟一块空间,然后建立...

2019-03-01 11:27:39

查看更多

勋章 我的勋章
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。