Java
文章平均质量分 62
CHEERWSL
这个作者很懒,什么都没留下…
展开
-
Java 基础知识复习
Java guide原创 2022-04-13 10:56:39 · 342 阅读 · 0 评论 -
十大经典排序算法
0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2 算法复杂度0.3 相关概念...转载 2018-12-10 19:16:12 · 110 阅读 · 0 评论 -
Java多线程中start()和run()的区别
Java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。通过调用Thread类的start()方法来启动一个线程。在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡: 第一是创建...转载 2018-12-04 22:54:11 · 205 阅读 · 0 评论 -
intValue()的用法,以及与parseInt()和valueOf 的区别
第一,intValue()是把Integer对象类型变成int的基础数据类型;parseInt()是把String 变成int的基础数据类型;valueOf()是把给定的String参数转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)注: intValue()用法与另外两个不同,比如int i = new Integer("123"), j = i.intVal...转载 2018-12-04 21:45:16 · 258 阅读 · 0 评论 -
@Inject和@Autowired以及@Resource区别
@Inject和@Autowired以及@Resource区别1、@Injectjavax.injectJSR330 (Dependency Injection for Java)这是jsr330中的规范,通过‘AutowiredAnnotationBeanPostProcessor’ 类实现的依赖注入。1.1、@Inject使用如下是@Inject的使用,不加@Named注解,需要...转载 2018-12-04 18:37:04 · 113 阅读 · 0 评论 -
给定一个链表,判断链表中是否有环
java 解法public class Solution { public boolean hasCycle(ListNode head) { ListNode fast = head; ListNode slow = head; while(fast != null && slow != null &&...原创 2018-11-26 21:49:37 · 408 阅读 · 0 评论 -
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
给定1->2->3->4, 你应该返回2->1->4->3.java实现class Solution { public ListNode swapPairs(ListNode head) { ListNode dump = new ListNode(0); dump.next = head; hea...原创 2018-11-26 21:32:31 · 1099 阅读 · 0 评论 -
反转链表
java/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode re...原创 2018-11-26 21:07:06 · 95 阅读 · 1 评论 -
java基础36讲笔记 int&Integer
原创 2018-11-25 22:31:11 · 92 阅读 · 0 评论 -
native 关键字
转载自 https://blog.csdn.net/youjianbo_han_87/article/details/2586375java native关键字 一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非...转载 2018-05-13 22:04:12 · 141 阅读 · 0 评论 -
切换JDK环境问题
以下方法如果前面的无法达到效果依次执行,不必复原前面的操作:方法一:更改JAVA_HOME变量值,将值改为需要切换的JDK目录,执行cmd命令,在cmd命令界面执行java -version,检查版本是否正确;方法二:打开控制面板,切换显示方式为大图标或者小图标,打开java控制面板,如下图,勾选自己要切换到的java版本;方法三:(亲测我是到这一步才解决的)将自己的java安装目录bin里面的j...原创 2018-05-12 14:54:28 · 179 阅读 · 0 评论 -
理解Cookie和Session的区别
前言HTTP是一种无状态的协议,为了分辨链接是谁发起的,需自己去解决这个问题。不然有些情况下即使是同一个网站每打开一个页面也都要登录一下。而Session和Cookie就是为解决这个问题而提出来的两个机制。应用场景登录网站,今输入用户名密码登录了,第二天再打开很多情况下就直接打开了。这个时候用到的一个机制就是cookie。session一个场景是购物车,添加了商品之后客户端处可以知道添加了...转载 2018-12-06 10:07:12 · 204 阅读 · 0 评论 -
配置文件内容加密jasypt
使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些。打开application.properties或application.yml,比如mysql登陆密码,redis登陆密码以及第三方的密钥等等一览无余,这里介绍一个加解密组件,提高一些属性配置的安全性。 jasypt由一个国外大神写了一个springboot下的工具包,下面直接看...原创 2018-12-13 17:49:37 · 1057 阅读 · 0 评论 -
java两个List对比根据某几个属性相同进行去重
在实际应用中总会有那个几个蛋疼的场景,其中之一就是要根据某几个属性相同来定义为重复,进行List去重,不想重复循环比较List<Map> list1 = new ArrayList<>();List<Map> list2 = new ArrayList<>();List<Map> list3 = new ArrayList<...原创 2019-07-27 13:45:05 · 14050 阅读 · 0 评论 -
java.util.List.subList() 分段截取List列表
List subList(int fromIndex, int toIndex) 返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。(如果 fromIndex 和 toIndex 相等,则返回的列表为空)。 返回的列表由此列表(原列表)支持,所以,你对原来的list和返回的list做的“非结构性修改”(non-structural changes...转载 2019-05-10 09:41:38 · 28561 阅读 · 1 评论 -
Redis5.0.4 集群搭建与远程访问开启&踩到的坑
Redis5.0.4 集群搭建与远程访问开启&踩到的坑背景下载安装redis5.0.4修改配置文件安装集群启动集群踩到的坑还有一个大坑无论怎么修改配置,重启节点都不能解决,可能是配置文件存在缓存,请重启服务器!小技巧背景阿里云1核学生机服务器单机6节点配置方式伪造集群下载安装redis5.0.4wget http://download.redis.io/releases/red...原创 2019-05-14 11:50:23 · 3037 阅读 · 3 评论 -
linux安装redis 完整步骤
安装:1.获取redis资源 wget http://download.redis.io/releases/redis-4.0.8.tar.gz2.解压 tar xzvf redis-4.0.8.tar.gz3.安装 cd redis-4.0.8 make cd src make install PREFIX=/usr/local/redis4....转载 2019-05-09 10:30:30 · 121 阅读 · 0 评论 -
Otter 双向同步mysql
一、Otter目前支持了什么 1. 单向同步, mysql/oracle互相同步 2. 双向同步,无冲突变更 3. 文件同步,本地/aranda文件 4. 双A同步,冲突检测&冲突补救 5. 数据迁移,中间表/行记录同步实际测试中,otter的同步速度相比于mysql的复制,约有5倍左右的性能提升...原创 2019-01-24 21:08:39 · 2633 阅读 · 0 评论 -
ELK原理简介
为什么用到ELK:一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。一般大型系统是一个分布式部署的架构,不同的服务模...转载 2018-12-17 16:36:09 · 180 阅读 · 0 评论 -
windows下安装ElasticSearch的Head插件
(一)从地址:https://nodejs.org/en/download/ 下载相应系统的msi,双击安装。(二)安装完成用cmd进入安装目录执行 node -v可查看版本号(三)执行 npm install -g grunt-cli 安装grunt ,安装完成后执行grunt -version查看是否安装成功,会显示安装的版本号(四)开始安装head① 进入安装目录下的confi...转载 2018-12-17 15:16:34 · 117 阅读 · 0 评论 -
ES结构化索引与非结构化索引的区别
结构化索引,类似MySQL,我们会对索引结构做预定义,包括字段名,字段类型等;那么,非结构化索引,就类似Mongo,索引结构未知,根据具体的数据来update索引的mapping。那么如何选择两种索引呢,还是跟具体的使用场景有关,结构化相比非结构化,更易优化,性能好些,非结构化相较灵活,只是频繁update索引mapping会有一定的性能损耗...原创 2018-12-17 11:54:46 · 4895 阅读 · 1 评论 -
JAVA中的权限修饰符
开发这么久,以前都是看别人的博客,总能学到许多知识,现在决定自己也要写一写,一来可以巩固自己所学的知识点,毕竟自己写的印象会深刻好多,二来也可以把所学知识分享出来,大家一起进步,以后可能工作会比较忙,不过会尽量抽时间写,今天就先从简单的 JAVA 基础写起吧!Java中修饰符总结:访问控制修饰符 作用: 用于控制被修饰变量、方法、类的可见范围. public 的访问级别是最高的,其次是 ...转载 2018-12-10 21:50:17 · 171 阅读 · 0 评论 -
List集合中的元素排序
Collections对List集合中的数据进行排序有时候需要对集合中的元素按照一定的规则进行排序,这就需要用到Java中提供的对集合进行操作的工具类Collections,其中的sort方法先看一个简单的例子:[java] view plain copypublic static void main(String[] args) { List<Integer> nums =...转载 2018-03-26 17:05:10 · 295 阅读 · 0 评论 -
mybatis小结
一、多数据源问题主要思路是把dataSource、sqlSesstionFactory、MapperScannerConfigurer在配置中区分开,各Mapper对应的包名、类名区分开 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/b...转载 2018-03-20 20:06:12 · 103 阅读 · 0 评论 -
java可变参数的使用和注意事项
只传一种参数参数传递:使用方法:多种类型参数注意事项:1.传多种参数时需要将可变参数写在最后面,同时每一个传参方法都需要写清楚非可变诶性的参数; 2.每一个方法中只能有一个可变参数;原因,可变参数由于自身参数以逗号隔开,本身无法识别逗号的间隔,无法知道什么时候终止;from20180322...原创 2018-03-22 22:09:43 · 2554 阅读 · 0 评论 -
Java集合框架关系图谱
Java集合是用于存储数量不等的对象的容器,还可以保存具有映射关系的关联数组, Collection是集合接口,它提供了对集合对象进行基本操作的通用接口方法。Java集合大致分为下面四种类型:List,Set,Queue,Map。List代表有序,可重复集合,Set代表无序,不可重复集合,Queue代表队列集合,Map代表具有映射关系的集合。Java集合主要有Collection和Map接口派生,...转载 2018-03-06 20:26:58 · 526 阅读 · 0 评论 -
Mybatis中的#{ } 和${ }u区别
Mybatis 的Mapper.xml语句中parameterType向SQL语句传参有两种方式:#{}和${}我们经常使用的是#{},一般解说是因为这种方式可以防止SQL注入,简单的说#{}这种方式SQL语句是经过预编译的,它是把#{}中间的参数转义成字符串,举个例子:select * from student where student_name = #{name} 预编译后,会动态解析成一个...转载 2018-03-06 20:21:40 · 215 阅读 · 0 评论 -
主流web服务器
1、Microsoft IIS Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和...转载 2018-02-08 22:04:26 · 406 阅读 · 0 评论 -
会话跟踪技术:会话Cookie,URL重写和HttpSession
一,会话跟踪(session tracking)技术 会话是客户端发送请求,服务器返回响应的连接时间段。 HTTP是无状态协议:每次都是单独连接,不能维持客户的上下文信息。 会话跟踪技术是用于维持客户端和服务器端通信信息的技术。 三种典型客户端会话跟踪解决方案: 1,Cookie; 2,URL重写; 3,隐藏表单域;二,会话Cookie 用于会话跟踪的Cookie叫做会话Cookie。Se...转载 2018-02-08 20:21:36 · 475 阅读 · 0 评论 -
JAVA文件上传-使用APACHE-FILEUPLOAD组件
目前文件上传的(框架)组件:Apache----fileupload 、Orialiy – COS – 2008() 、Jsp-smart-upload – 200M。用fileupload上传文件:需要导入第三方包: Apache-fileupload.jar – 文件上传核心包。 Apache-commons-io.jar – 这个包是f转载 2018-02-02 15:55:02 · 150 阅读 · 0 评论 -
利用commons-fileupload 上传图片(包含表单数据
在一个表单中包含普通文本数据,另外还有需要上传的图片,那么本程序将图片保存到服务器上的一个图片目录中,文本数据则获取然后输出,查看传输是否正确,后面的处理为涉及。上传的jsp页面:最后将信息输出:(图片已经保存在特定目录中)需要用到的两个jar包,commons-fileupload-1.2.2.jar commons-io.jarjsp页面:转载 2018-02-02 15:51:20 · 391 阅读 · 0 评论 -
JSP 中EL表达式用法详解
EL 全名为Expression LanguageEL 语法很简单,它最大的特点就是使用上很方便。接下来介绍EL主要的语法结构:${sessionScope.user.sex}所有EL都是以${为起始、以}为结尾的。上述EL范例的意思是:从Session的范围中,取得用户的性别。假若依照之前JSP Scriptlet的写法如下:User user =(Use转载 2018-02-01 22:54:58 · 105 阅读 · 0 评论 -
请求转发和重定向的区别
定向与转发的区别:1.重定向访问服务器两次,转发只访问服务器一次。2.重定向可以看见目标页面的URL,转发只能看见第一次访问的页面URL,以后的工作都是有服务器来做的。3.重定向跳转后必须加上return,要不然页面虽然跳转了,但是还会执行跳转后面的语句,转发是执行了跳转页面,下面的代码就不会在执行了。4.在request级别使用信息共享,使用重定向必然出错5.还有一个大的区别转载 2018-02-01 22:23:05 · 138 阅读 · 0 评论 -
过滤器filter与 servlet执行过程
原创 2018-02-01 11:31:21 · 434 阅读 · 0 评论 -
HTTP协议的主要特点
HTTP协议的主要特点可概括如下:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4.无连接:无连转载 2018-02-07 20:02:41 · 2897 阅读 · 0 评论 -
Java EE应用的组件
首先,我们得先了解一下这里所说的组件是什么鬼?百度百科给出的解释是:组件(Component)是对数据和方法的简单封装。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。从上面的描述来看,实际上就是面向对象的思想,或者就是在描述一个类,因为对象或者类就是由属性和方法构成的。而我们的Java...转载 2018-02-08 09:59:42 · 319 阅读 · 0 评论 -
阿里巴巴Java开发手册及Java代码规约扫描eclipse和IDEA插件使用方法
阿里巴巴Java开发手册及Java代码规约扫描eclipse和IDEA插件《阿里巴巴Java开发手册》是阿里巴巴技术团队的集体智慧结晶和经验总结,经历了大规模的实战不断完善,主要由编码规约、异常日志、单元测试、安全规约、工程结构、MySQL数据库六部分组成。俗话说得好无规矩不成方圆,无规范不能协作,相信大家在编程时都不喜欢维护别人写的代码,代码过度个性化使得维护起来非常费力,该手册让Java开发者...转载 2018-02-08 12:04:26 · 225 阅读 · 0 评论 -
集合遍历 Array [ ]、List、Set、Map、propertise...
Array[ ] 数组遍历//一维数组 String [ ] str =new String[3]; str[0]="张三"; str[1]="李四"; str[2]="王五"; // for形式遍历数组 f...转载 2018-03-12 18:05:59 · 125 阅读 · 0 评论 -
HashMap和HashTable的区别
Hashtable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。 也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable,但你必须同样地为...转载 2018-03-10 11:35:55 · 103 阅读 · 0 评论 -
Eclipse FindBugs插件安装与使用
前言:白盒测试中的静态检查一般是检查编码标准规范,错误列表。编码规范往往团队会根据自己的经验和风格进行设置一些规范。现在很多IDE工具都会在编辑代码的时候实时的提醒是否符合代码风格。错误列表,一般是代码潜在的bug,由于某种代码写法虽然没有语法错误,但是可能存在错误,比如会导致线程死锁。这些都是错误列表应该检查的。静态检查的可操作方式有人工代码走查和软件代码扫描。使用软件对我们的代码进行扫描,查找...转载 2018-03-09 14:59:09 · 547 阅读 · 0 评论