自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 tomcat版本导致的乱码问题

大多数的乱码文章主要就集中在两方面tomcat要在server.xml connector设置URIENCODING=utf-8 就是修改自己的代码先解码成什么ISO-8859-1在编码成UTF-8但是却都没有注意到tomcat版本导致的乱码解决方式也是不一样的,我在项目中遇到的bug,写下来为了让自己以后不再走相同的坑首先tomcat我是拉取的镜像,保证镜像的干净,我不会...

2019-07-31 16:25:07 970

原创 MySQL驱动和MySQL版本不一致导致的坑

今天接手了一个很老的jsp + servlet的项目,在本地启动项目的时候,发现项目一直报连接不上数据库,当时特别郁闷,用Navicat可以连接上,当时恨不得追踪源码看看url,name,password到底初始化成功没有,到最后突然想起,我的mysql是用docker拉的最新镜像,也就是8版本的,但是驱动是老的驱动的,具体我也忘记是几版本的,当时换了一个5.5版本的mysql,数据...

2019-07-31 16:07:11 11444

转载 无重复字符的最长字串

给定一个字符串,找出不含有重复字符的最长字串的长度示例1:输入: "abcabcbb"输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3。示例2:输入: "bbbbb"输出: 1解释: 无重复字符的最长子串是 "b",其长度为 1。示例3:输入: "pwwkew"输出: 3解释: 无重复字符的最长子串是 "wke",其长度为 3。

2018-09-18 11:22:58 209

转载 反转整数

给定一个 32 位有符号整数,将整数中的数字进行反转示例1:输入: 123输出: 321示例2:输入: -123输出: -321示例3:输入: 120输出: 21我在做这道题目的时候,自己写了一个,但是在位数太多的情况下,就会出现越界等一系列问题,但是对于以上示例是没有问题的。还是自己考虑问题不全面。。。。。。唉唉唉,一些临界情况没有考虑全面。pr...

2018-09-18 11:09:22 130

转载 两数相加

 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807Java代码实现: packag...

2018-09-13 10:58:02 108

转载 RabbitMQ的基本概念

RabbitMQ的基本概念Broker:可以理解为消息队列服务器的实体,他是一个中间件的而应用,负责接收消息生产者的消息,然后将消息发送至消息接收者或者其他的Broker Exchange:交换机,是消息第一次到达的地方,消息通过它指定的路由规则,分发到不同的消息队列中去 Queue:消息队列,消息通过发送和路由之后最终到达的地方,到达Queue的消息即进入逻辑上等待消费的状态。每个消息都...

2018-09-12 18:07:39 167

转载 RabbitMQ消息队列——VirtualHost

VirtualHost在RabbitMQ中叫做虚拟消息服务器VirtualHost,每个VirtualHost相当于一个相对独立的RabbitMQ服务器,每个VirtualHost之间是相互隔离的。exchange、queue、message不能互通在RabbitMQ中无法通过AMQP创建VirtualHost,可以通过以下命令来创建rabbitmqctl add_vhost [vh...

2018-09-12 17:32:09 721

转载 Spring Boot整合RabbitMQ,监听队列获取消息

Spring Boot整合RabbitMQ,监听队列获取消息1、pom.xml添加如下依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></...

2018-09-12 17:21:45 9118

原创 CentOS安装RabbitMQ

RabbitMQ编译安装RabbitMQ是使用Erlang开发,所以安装RabbitMQ前需要先安装Erlang,获取Erlang和RabbitMQ的源文件官网http://erlang.org下载最新的源文件wget http://erlang.org/download/otp_src_17.0.tar.gz编译安装Erlang1、解压otp_src_17.0.tar....

2018-09-12 17:16:47 220

原创 1、两数之和

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]实现思路:遍历两边数组,第二次遍历下标加1开始,找出两个数和为目标值的...

2018-09-12 15:01:49 103

原创 Java并行程序基础总结

进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程的所有状态都在Thread中的State枚举中定义public enum State{ NEW, RUNNABLE, BLOCKED, WALTING, TIMED_WAITING, RERMINATED;}NEW状态表示刚刚创建的线程,

2017-09-18 22:22:14 388

原创 Tomcat的总结

什么是web服务器web服务器可以解析HTTP协议。当web服务器接收到一个HTTP请求,会返回一个HTTP响应web服务器根据对javaEE支持能力分为两大类1)javaEE服务器(应用服务器) IBM公司 WebSphere BEA公司 WebLogic JBoss 公司 JBoss Apache组织 Geronimo(免费WebSphere社区版) 2)web容器(servlet/j

2017-09-18 19:22:23 381

原创 进程和线程的区别

进程的官方解释: 进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程有三个特征: 1、独立性:进程是系统中独立存在的实体,他可以拥有自己独立的资源,每个进程都拥有自己私有的地址空间。 2、动态性:进程与程序的区别在于,程序只是一个静态的集合,而进程是一个正在系统中活动的指令集合。 3、并发性:多个进程可以在单个处理器上并发执行,

2017-09-06 09:02:44 191

转载 effective java executor和task优先于线程

如果编写的是小程序,或者轻载的服务器,使用Executor.newCachedThreadPool通常是个不错的选择。 在大负载的服务器中,最好使用Executor.newFixedThreadPool,他为你提供了一个包含固定线程数目的线程池,活着为了最大限度的控制他,就直接使用ThreadPoolExecutor类你不仅应该尽量不要编写自己的工作队列,而且还应该尽量不直接使用线程。现在关键抽象

2017-08-20 17:49:39 407

转载 effective java避免过度同步

过度同步可能会导致性能降低,死锁,甚至不确定的行为。为了避免火星失败和安全性失败,在一个被同步的方法或者代码快中,永远不要放弃对客户端的控制。将外来方法调用一处同步的代码块 建立快照 使用并发集合,CopyOnWriteArrayList,属于ArrayList的辩题,通过拷贝整个底层数组,在这里实现所有的写作,由于内部数据用于不改动,因此迭代不需要锁定,速度也非常快。在同步区域之外被调用的外来

2017-08-20 16:54:54 378

转载 effective java同步访问共享的可变数据

关键字synchronized可以保证同一时刻,只有一个线程可以执行某一个方法,或者某一个代码块。 同步的意思: 1、当一个对象被一个线程修改的时候,可以阻止另一个线程观察到对象内部不一致的状态; 2、同步不仅可以组织一个线程看到对象处于不一致的状态,还可以保证进入同步方法或者同步代码块的每个线程,都看到由同一个锁保护的之前所有的修改效果。 考虑下面这个阻止一个线程妨碍另一个线程的任务。ja

2017-08-20 16:21:39 334

原创 Swing实现简单的简历样式

简单的界面效果package com.bjsxt.swing;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Bu

2017-08-16 21:10:48 558

原创 Effective Java慎用可变参数

从java1.5后增加了可变参数的方法,可变参数可以接受0个或者多个指定类型的参数,可变参数机制通过先创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到数组中,最后将数组传递给方法。举个可变参数的例子 4.png (19.4 KB, 下载次数: 0)下载附件  保存到相册13 分钟前 上传计算Int类型参数

2017-08-16 21:07:53 375

转载 Effective Java慎用重载

先看一下下面的这个重载方法 你所期望到的应该是输出Set ,List,Unknown Collection但是结果却是输出了三遍UnknownCollection,主要原因是,classify这个方法被重载了,调用重载方法是在编译时就做出决定的,对于for循环的这三次他的类型是Collection,每次迭代的类型都是不同的,但是这并不影响对重载方法的选择,三次编译的类型都是Coll

2017-08-16 21:05:54 271

原创 List接口下Vector的API全部方法的用法(上)

今天闲得无聊,想认真了解一下集合的API,就看了一下Vector的所有方法,我就简单给大家介绍一下这些方法的基本用法,希望对大家有帮助。 Vector:动态数组 特点: 1、允许含有重复元素 2、允许含有空 3、由于Vector底层是使用数组来实现的,所以查询效率极高,但是添加删除效率低(因为他需要折腾其他元素) 4、Vector在多线程下是线程安全的。但是性能是低下的。方法摘要: 1

2017-08-13 21:57:19 235

转载 接口优于抽象类

effetive java提出了三个使用接口的原因: 1、现有的类可以很容易被更新,以实现新的接口。 2、接口是定义mixin(混合类型)的理想选择。 3、接口允许我们构造非层次结构的类型框架。

2017-08-11 08:13:41 302

原创 For-each循环优于for循环感悟

For-each是java1.5之后才推行的版本,它的优势在于可以完全隐藏迭代器或者是索引变量,避免了混乱和出错的可能,不会有性能的损失。for(Element e : elements){ doSomething(e);}元素代表的意思: 当见到冒号的时候,可以把他读作在什么里面。因此上面的循环可以读作“对于元素中的每个元素e”。举个摇筛子的例子代码如下:enum Face{

2017-08-10 22:38:35 1347

原创 消除过期的对象引用感悟

消除过期的对象引用三种造成内存泄漏的主要原因:1、Stack类自己管理内存。存储池包含了elements数组(对象引用单元,而不是对象本身)的元素,只要类是自己管理内存,程序员就应该警惕内存泄漏问题。Stack先是增长,然后再收缩,Stack内部维护着对这些对象的过期引用,过期引用指的是永远也不会解除的引用,只要一个单元被弹出栈,指向他的引用就过期了,清除过期引用最好的方法就是让包含该引用的变量结束

2017-08-10 21:12:39 416

原创 Vector和ArrayList的区别

Vector和ArrayList的区别Vector(protected Object[] elementData;)和ArrayList( transient Object[] elementData;)底层都是数组,所以数组有的他们也有。

2017-08-10 19:37:40 188

转载 BS和CS的区别以及优缺点

B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型

2017-08-10 19:13:59 1250

原创 优化的冒泡排序

优化的冒泡排序冒泡排序算法的运作如下:(从后往前)1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3、针对所有的元素重复以上的步骤,除了最后一个。 4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 代码实现如下:public class BubbleS

2017-08-09 20:03:06 221

转载 堆排序

堆排序堆排序的大概步骤如下:1、构建最大堆。 2、选择顶,并与第0位置元素交换 3、由于步骤2的的交换可能破环了最大堆的性质,第0不再是最大元素,需要调用maxHeap调整堆(沉降法),如果需要重复步骤2堆排序中最重要的算法就是maxHeap,该函数假设一个元素的两个子节点都满足最大堆的性质(左右子树都是最大堆),只有跟元素可能违反最大堆性质,那么把该元素以及左右子节点的最大元素找出来,如果该元

2017-08-09 19:58:03 230

转载 归并排序

归并排序:思想: 归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。java代码具体实现 public class MergeSort { public static int[] sort(int[] nums,int low,int high){ int mid=

2017-08-08 19:45:47 198

转载 快速排序

快速排序

2017-08-08 19:32:50 173

原创 优化的插入排序

优化的插入排序

2017-08-07 21:33:55 209

原创 选择排序

选择排序

2017-08-07 21:23:38 176

转载 String、StringBuilder、StringBuffer的不同

String、StringBuilder、StringBuffer的不同

2017-08-07 10:15:04 150

转载 java的重载和java的重写的不同

java的重载和java重写的不同

2017-08-07 10:13:37 374

空空如也

空空如也

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

TA关注的人

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