自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 java工程开发环境搭建总结

文章目录1.谈谈跳槽2.开发必备工具2.1 git2.2 jdk82.3 IDEA2.4 maven2.5 IDEA下的lombok插件1.谈谈跳槽  互联网行业竞争实在是太大了,唯有不断学习,才能不被淘汰;同样互联网就业机会也多,跳槽也是比较频繁的;刚入职一家新公司,由于业务不熟悉、新公司技术栈不熟悉,头三个月就会非常难熬,很多人因此就会出现后悔跳槽的想法;因此我根据自己滴滴的一次跳槽经验,...

2020-10-18 15:31:06 474

原创 网络编程-多路复用

网络编程,多路复用,整理的非常好!转了select详解https://blog.csdn.net/lixungogogo/article/details/52219951poll详解https://blog.csdn.net/lixungogogo/article/details/52226501epoll详解https://blog.csdn.net/lixungogogo/arti...

2019-12-19 10:40:56 283

原创 java进程的启动

1.概述即启动一个jvm,方法比较多。比如idea上启动、mvn启动,但本质上都是先对代码进行打包成jar,再通过java命令执行。2.示例shell脚本如下:#! /bin/bashPROCESS=`ps -ef|grep java|grep -v grep|awk '{ print $2}'`echo "kill the process [$PROCESS]"kill -9 $...

2019-12-03 16:14:36 834

原创 mybatis的执行过程深度分析

一.mybatis的作用大家都懂的二.spring项目中使用mybatis1.需依赖的maven包 2.如何使用大家都会 使用mybatis-generator-core.jar以及configfile生成对应的文件,包括 xxxEntity, xxxExample,xxxMapper,xxxMapper.xml。 使用注意点: 确保xxxMapper.xml中的...

2018-08-17 14:23:52 266

原创 常用的NoSQL数据库概述

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。市场上常见的NoSQL数据库如下: ...

2018-06-15 11:02:48 271

原创 数据库原理,看这一篇就足够

1.绝对大神作品,讨论数据库原理。 值得耐心看完… 数据库原理全面分析2.什么是数据库索引? 数据库索引3.什么是数据库视图? 数据库视图4.什么是数据库执行计划? 数据库执行计划...

2018-04-08 14:01:28 1714

原创 跨域请求-CrossOrigin注解

什么是跨域请求浏览器的同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。 从一个域上加载的脚本不允许访问另外一个域的资源。 同源是指协议、ip地址、端口三者全部相同的情况。 举个例子: 在页面http://0.0.0.0:8000/crossorigin.html 中发起一个http请求,通过 XMLHttpRequest对象请求后端接口 http://127.0.0.1:808...

2018-03-15 22:07:02 11537

原创 Thinking in Java 系列:接口和内部类

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。接口1.什么是抽象类? 包含抽象方法的类叫做抽象类,如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的。 abstract void f(); 如果从一个抽象类继承,并想创建该新类的对象,那么必须为基类中的所有抽象方法提供方法定义。如果不这样做(可以选择不做),那么导出类也是抽象的,且编译器将会强制我们用abs...

2018-03-06 17:20:50 223

原创 Thinking in Java系列:复用类

复用代码是java众多引人注目对功能之一,有两种方法: 1.组合:只需在新的类中产生现有类的对象,由于新的类是由现有类的对象所组成,所有这种方法称为组合。该方法只是复用了现有程序代码的功能,而非它的形式。 2.继承:按照现有类的类型来创建新类,无需改变现有类的形式,采用现有类的形式并在其中添加新代码,这种神奇的方式称为继承,而且编译器可以完成其中大部分工作。继承是面向对象程序设计的基石之一。...

2018-03-06 11:27:10 223

原创 Thinking in Java系列:方法覆盖(Overriding)和方法重载(Overloading)

java中的方法重载发生在同一个类里面两个或者多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。 覆盖者可能不会限制它所覆盖的方法的访问。重载(Overloading)(1)方法重载是让类以统一的方法处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数(类型)。重载Overload是...

2018-03-02 15:54:23 467

原创 JAVA中基于RSA的签名验签/加密解密的实现

基于RSA的签名算法,目前KMI支持NONEwithRSA, MD2withRSA, MD5withRSA, SHA1withRSA, SHA256withRSA, SHA384withRSA, SHA512withRSA, SHA1withDSA代码如下: public void testRSA() throws Exception{ // 生成一对密钥 ...

2018-02-28 17:05:25 1292

原创 利用OkHttp发起网络请求

我们知道http请求包括三个部分即:状态行,请求首部、请求体。所以一些网络请求框架对数据的组织基本上都围绕着这三个部分进行展开,可谓万变不离其宗。Okhttp当然也不例外,在Okttp中用Request对象和ReqeustBody对象来分表一个请求及其请求所携带的请求体。 如果想了解原码可以在github上下载,地址是:okhttp源码 对应一个http请求来说,是否需要请求体(下文用Reqe...

2018-02-26 20:56:13 751

原创 数据库事务(五):利用动态代理实现事务处理

上一篇我们利用template模式实现事务处理,把实际对业务逻辑交给子类去实现,这样对话在service层中,我们只需要声明一个transactionTemplate即可完成事务处理。 本文通过另一种方法在service层隐藏事务对开启、提交或回滚,那就是动态代理(dynamic proxy)。java动态代理原理:被代理对象proxied实现接口interface,同时声明一个代理对象pr...

2018-02-08 10:56:16 934

原创 数据库事务(四):利用template模式实现事务处理

在上一篇事务处理系列文章中,利用TransactionManager实现线程安全的事务处理,本文继续对事务处理进行优化操作:Template模式。 什么是template模式?在spring中有JdbcTempalte,其基本思想是:在超类里将完成核心功能的方法声明为抽象方法,留给子类去实现,而在超类中完成一些通用操作。我们已经知道,在进行数据库操作时,为了保证数据一致性,需启动事务->增删

2018-02-07 21:23:20 318

原创 数据库事务(三):构建自己的TransactionManager实现事务处理

在上一篇中我们提出,要实现一个可靠的事务处理机制,关键在于保证同一个事务中使用相同的Connection对象。本文将继续探讨如何保证获取到同一个Connection对象。 因此我们需要单独创建一个全局公用类,用于管理connection对象,所有数据库操作都从该类中获取connection;全局公用类管理Connection对象定义一个ConnectionHolder类:pu

2018-02-06 12:00:02 2673

原创 python如何进行http请求

在平时的开发过程中,少不了进行数据订正,你可以一个一个手动去操作,当然这种方法太笨拙了,脚本可以帮你解决掉这些事情,今天我要简单总结一个,如何写python脚本,向后端发起一个http请求,并打印请求结果。 代码如下:#!/usr/bin/python# coding=utf-8import sysimport urllib2import jsonCOOKIE_VALUE="JS

2018-02-01 20:52:23 1787

原创 JDBC的原生使用

最近学习java与数据库的连接,jdbc是其中最重要的工具。虽然说现在有很多仓储层框架,比如mybatis之类的,我们不用直接跟jdbc打交道,但这些框架的底层还是离不开jdbc。使用jdbc需要先往spring容器注入DataSource的bean@Configuration@Slf4jpublic class DataSourceConfig { @Autowire

2018-01-25 19:31:41 412

原创 数据库事务(二): java事务处理

在平时我们做业务开发的时候,数据库操作一般都需要使用到事务。如果是基于spring的项目,很简单,有两种方法: 1.配置一个DataSource给spring容器托管,再配置一个TransactionManager事务管理器,然后在需要事务的方法上加上Transactional注解就ok,这样的话方法结束后事务才提交。 2. 配置好TransactionManager事务管理器后,可以在配置一

2018-01-17 15:13:33 1892 1

原创 Java的Excel导出

有时我们希望程序里面的数据能够导出为excel方便查看,在java中可以使用第三方包poi来实现。 在maven中添加poi依赖包, 我采用的版本为3.15 使用到的类如下://工作簿import org.apache.poi.hssf.usermodel.HSSFWorkbook;//表格import org.apache.poi.hssf.usermodel.HSSFS

2018-01-16 18:00:05 241

原创 Java的邮件发送

今天有个业务需求,执行一个定时任务,往某个特定的邮箱发送邮件。简单总结一下,利用java如何发送邮件。 1. org.springframework.mail.javamail.JavaMailSenderImpl实现类,该类实现org.springframework.mail.javamail.JavaMailSender接口,用于邮件发送端的设置。 2. java.util.Propert

2018-01-15 14:24:09 349

原创 数据库事务(一)

事务简述数据库事务是指对数据库的一个操作系列,这些操作要么都执行,要么都不执行,它是一个不可分割的操作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。事务的提出主要是为了解决,在并发情况下保持数据一致性的问题。 事务的4个基本特征: ● Atomic(原子性):事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部

2018-01-15 11:21:43 323

原创 前端js如何发起http请求后端后端

作为一名后端开发人员,一致在学习后端技术,今天突然想起写一个原生的js,探讨向服务端发起http请求,获得数据后再做显示。 先贴代码:html>head> meta charset="utf-8"> title>请求后端接口测试title> head>body>input type="text" id="aaa">输入查询银行input>button onclick="s

2018-01-14 14:50:07 15260 1

原创 AOP,自定义注解,反射机制实现前端数据在后端自动解密

刚参加工作不久,很多基础东西都不懂,希望通过博客一步步积累,本文主要是为了整理一下最近自学的spring aop,自定义注解,反射机制。 项目结构如下: demo主要功能: 前端请求controller接口上传用户信息,用户信息里面包括加密的信息,利用aop拦截所有controller方法,通过反射机制读取运行时信息进行解密操作,service层对解密后的用户信息进行显示Contr

2017-12-20 12:12:09 1903

原创 Java的stream流操作

stream()简介stream()方法在接口Collection中,接口定义如下public interface CollectionE> extends IterableE> { default Stream stream() { return StreamSupport.stream(spliterator(), false); } //接

2017-12-19 16:19:40 409

原创 MySQL中sql语句总结

常用的数据库操作总结

2017-12-19 15:27:22 338

原创 Maven常用命令

1.创建一个简单的Java工程:mvn archetype:create -DgroupId=com.mycompany.example -DartifactId=Example 2.创建一个java的web工程:mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifact

2017-12-09 14:49:37 181

原创 Git常用命令

查看、添加、提交、删除、找回,重置修改文件git help # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- # 抛弃工作区修改git co . # 抛弃工作区修改git add # 将工作文件修改提交到本地暂存区git add . # 将所有修改过的工作文件提交暂存区git rm # 从版本库

2017-12-09 14:44:53 269 1

转载 web 容器之tomcat

web 容器之tomcat我们讲到servlet可以理解服务器端处理数据的java小程序,那么谁来负责管理servlet呢?这时候我们就要用到web容器。它帮助我们管理着servlet等,使我们只需要将重心专注于业务逻辑。什么是web容器?servlet没有main方法,那我们如何启动一个servlet,如何结束一个servlet,如何寻找一个servlet等等,都受控于另一个java应用,这个应

2017-12-05 20:42:56 244

原创 Java的lombok注解

前言项目中经常使用bean,entity等类,绝大部分数据类中都需要get、set、toString、equals和hashCode方法,虽然eclipse和idea开发环境下都有自动生成的快捷方式,但自动生成这些代码后,如果bean中的属性一旦有修改、删除或增加时,需要重新生成或删除get/set等方法,给代码维护增加负担。而使用了lombok则不一样,使用了lombok的注解(@Setter,@

2017-11-04 19:45:51 368

转载 Java BigDecimal

1.引言借用《Effactive Java》这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。2.BigDeci

2017-10-19 13:53:28 279

转载 动态分配类对象与静态分配类对象

动态分配类对象:就是使用运算符new来创建一个类的对象,在堆上分配内存。静态分配类对象:就是A a,由编译器创建类对象,在栈上分配内存。1)动态分配类对象把类的构造函数和析构函数设为protected属性。类对象不能访问,但是派生类可以继承,也可以访问。同时,创建create和destroy两个函数,用于创建类对象。(create函数设为static,原因是,创

2016-09-16 15:21:56 1992

转载 C++ STL中map容器总结

map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会

2016-09-01 12:24:01 491

转载 C++ STL中set容器总结

STL中的set容器总结1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等。在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常

2016-09-01 12:04:58 460

转载 两种平衡二叉树的比较: AVL树和红黑树

1 好处 及 用途        红黑树并不追求“完全平衡”——它只要求部分地达到平衡要求,降低了对旋转的要求,从而提高了性能。红黑树能够以O(log2 n) 的时间复杂度进行搜索、插入、删除操作。此外,由于它的设计,任何不平衡都会在三次旋转之内解决。当然,还有一些更好的,但实现起来更复杂的数据结构 能够做到一步旋转之内达到平衡,但红黑树能够给我们一个比较“便宜”的解决方案。红

2016-09-01 11:43:50 1895

转载 Linux动态库,静态库

一、什么是库本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库。Linux系统有几个重要的目录存放相应的函数库,如/lib    /usr/lib。二、静态函数库、动态函数库A.  这类

2016-08-31 16:41:31 295

转载 B树,B-树,B+树,B*树

B树       即二叉搜索树(BST):       1.所有非叶子结点至多拥有两个儿子(Left和Right);       2.所有结点存储一个关键字;       3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;       如:              B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么

2016-08-31 10:29:54 257

转载 网络编程-socket基础

目录(?)[-]网络中进程之间如何通信什么是Socketsocket一词的起源socket的基本操作31socket函数32bind函数网络字节序与主机字节序33listenconnect函数34accept函数35readwrite等函数36close函数socket中TCP的三次握手建立连接详解socket中TCP的四次握手释放连接详解一个例

2016-08-30 10:55:18 420

转载 TCP滑动窗口机制

(1).窗口机制滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。下面举一个例子(假设

2016-08-30 09:39:59 714

转载 字符串匹配,KMP算法

0、废话 一直ym传说中的kmp算法能以最坏线性的时间复杂度搞定字符串匹配,开始动手看才知道kmp中的K居然是Donald.E.Knuth,《计算机程序设计艺术》的作者。好吧,继续ym……1、传统的字符串匹配算法/* * 从s中第sIndex位置开始匹配p * 若匹配成功,返回s中模式串p的起始index * 若匹配失败,返回-1 */int index

2016-08-29 18:23:09 453

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除