自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode:#450. 删除二叉搜索树中的节点

leetcode:#450. 删除二叉搜索树中的节点题目详情采用Java实现class Solution { public TreeNode deleteNode(TreeNode root, int key) { TreeNode deletedNode = root; TreeNode deletedParentNode = null; while (deletedNode != null && deletedNode.val

2021-05-26 22:50:32 130

原创 leetcode:#153. 寻找旋转排序数组中的最小值

leetcode:#153. 寻找旋转排序数组中的最小值题目详情采用Java实现。二分法class Solution { public int findMin(int[] nums) { int left = 0; int right = nums.length - 1; while (left < right) { int mid = (left + right) / 2; if (num

2021-05-24 16:21:15 125

原创 leetcode:#162. 寻找峰值

leetcode:#162. 寻找峰值题目详情采用Java实现。二分法class Solution { public int findPeakElement(int[] nums) { int left = 0; int right = nums.length - 1; while (left < right) { int mid = (left + right) / 2; if (num

2021-05-24 15:48:11 114

原创 leetcode:#148. 排序链表

leetcode:#148. 排序链表题目详情采用Java实现。熟悉合并两个有序链表,断链操作,dummyHeadclass Solution { public ListNode sortList(ListNode head) { ListNode dummyHead = new ListNode(); dummyHead.next = head; int length = calculateListLength(dummyHead);

2021-05-19 21:44:29 85

原创 面试题 08.06. 汉诺塔问题

面试题 08.06. 汉诺塔问题题目详情主要考察递归采用Java实现。class Solution { public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) { move(A.size(), A, B, C); } private void move(int count, List<Integer> source, List&

2021-04-20 21:52:44 102

原创 面试题 03.06. 动物收容所

面试题 03.06. 动物收容所题目详情采用Java实现。class AnimalShelf { public static final int[] ERROR_RESPONSE = {-1, -1}; private Queue<Integer> cat; private Queue<Integer> dog; public AnimalShelf() { cat = new LinkedList<>();

2021-04-18 23:52:04 94

原创 leetcode:#42. 接雨水

leetcode:#42. 接雨水题目详情采用Java实现,构建一个单调递增栈。class Solution { public int trap(int[] height) { Stack<Integer> stack = new Stack<>(); int result = 0; for (int i = 0; i < height.length; i++) { while (!stac

2021-04-18 23:16:01 84

原创 leetcode:#59 - I. 滑动窗口的最大值

leetcode:#59 - I. 滑动窗口的最大值题目详情采用Java实现class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if (nums == null || nums.length == 0) { return new int[0]; } int numsLength = nums.length; int[] ma

2021-04-18 13:16:06 66

原创 leetcode:#59 - II. 队列的最大值

leetcode:#59 - II. 队列的最大值题目详情采用Java实现class MaxQueue { Queue<Integer> queue; ArrayDeque<Integer> help; // 维护一个增队列保存最大值(不是单调的,有值可能相等) public MaxQueue() { queue = new LinkedList<>(); help = new ArrayDeque<&

2021-04-18 12:02:50 88

原创 leetcode:#739 每日温度

leetcode:#739 每日温度题目详情采用Java实现。方法一最容易想到的解题思路:public class Solution { public int[] dailyTemperatures(int[] T) { int[] result = new int[T.length]; for (int i = 0; i < T.length; i++) { for (int j = i + 1; j < T.leng

2021-03-28 22:37:58 91

原创 面试题 16.26. 计算器

面试题 16.26. 计算器题目详情方法一维护两个栈,其中一个用来存储操作数,另外一个栈用来存储运算符。遍历字符串,如果是数字,那么直接入操作数栈,如果是操作符,就和运算符栈的栈顶元素比较:当运算符的优先级高于运算符栈的栈顶元素——直接入栈;否则取出运算符栈栈顶元素还有操作符栈栈顶两个元素,进行运算,将运算结果再入运算符栈;继续比较直到当前操作符入栈。public class CalculatorByTwoStack { private static final char ADD = '+

2021-03-27 23:32:11 124

原创 leetcode:#206 反转链表

leetcode:206.反转链表题目详情java实现/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val =

2021-03-18 23:23:30 87

原创 leetcode: #2 两数相加

leetcode: 两数相加题目描述java实现/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val

2021-03-18 22:56:27 96

原创 MAC IntelliJ IDEA 快捷键

文件跳转project及editor的切换command+1 & ESC打开终端option+F12打开最近查看的文件command+E跳转到上一个编辑的文件command+shift+delete跳转到下一个编辑的文件command+control+delete(自定义的快捷键)跳转到上一个查看的文件command+option+⬅️跳转到下一个查看的文件c...

2019-11-01 17:07:56 190

原创 git 命令

基本命令查看文件状态git status将文件添加到暂存区git add <file-name>git add <path>git add -a将暂存区中的文件提交到版本库git commit -m 'message'将本次提交合并到上次提交,修改提交信息git commit --amend将本次提交合并到上次提交,不修改提交信息git commi...

2019-11-01 17:06:14 129

原创 curl命令

简单命令查看网页源码curl www.baidu.com将服务器的回应保存为文件,与wget相似curl -o test.html www.baidu.com跟随服务端的重定向curl -L URL显示响应头信息,及网页源码curl -i URL只显示响应头信息curl -I URL显示整个http通信过程,包括建立连接,发起请求curl -v URL模拟网络环境cu...

2019-10-30 10:59:26 940

翻译 PUT与PATCH请求的幂等性

PUT与PATCH请求的幂等性为什么说PUT操作是幂等的,而PATCH操作是非幂等的?什么是幂等性[Wikipedia](https://en.wikipedia.org/wiki/Idempotence#Computer_science_meaning)Why为什么说PUT操作是幂等的,而PATCH操作是非幂等的?根据 RFC 2616 Section 9.1.2什么是幂等性Wikiped...

2019-10-24 16:49:00 2002 3

原创 【十九】数据库-事务的特性及隔离级别

目录一、事务的四大特性⑴ 原子性(Atomicity)⑵ 一致性(Consistency)⑶ 隔离性(Isolation)  ① Serializable (串行化):  ② Repeatable read (可重复读):  ③ Read committed (读已提交):  ④ Read uncommitted (读未提交):⑷ 持久性(Durabili...

2019-03-04 21:15:25 171

原创 【十八】常见排序算法

以下都是内部排序:public class Sort {public static void main(String[] args) {int []a = {2,3,1,4,7,8,6,5,0};int []b = {1,2,3,4};//directChooseSort(a);//bubbleS...

2019-03-01 20:49:48 209

原创 【十七】常用的设计模式

目录一、单例模式1、饿汉式:2、懒汉式:3、内部类的方式:4、为什么使用单例模式?二、代理模式1、静态代理2、动态代理①JDK动态代理②Cglib代理③动态代理的选用三、工厂模式1、简单(静态)工厂类2、使用反射的简单工厂3、多方法工厂(常用)4、普通工厂(非静态方法获取对象的实例)5、抽象工厂(在普通工厂的基础上添加多个产品)...

2019-03-01 20:45:36 182

原创 【十六】redis

什么是redis?Redis 是一个基于内存的高性能key-value数据库。一、启动方式:①前端启动 ./redis-server②后端启动 ./redis-server redis.conf关闭:./redis-cli shutdownredis自带客户端: ./redis-cli -h 127.0.0.1 -p 6379(默认不需要密码认证,如果需要认证,那么接...

2019-02-28 18:31:24 204

原创 【十五】Spring

目录一、IOC与DI二、AOPAspectJ的AOP与Spring的区别三、事务的传播行为四、Spring 声明式事务和编程式事务五、@Autowire和@Resource的区别一、IOC与DIIOC和DI是一个概念,依赖注入,即当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中,创建被调用者的工作不再...

2019-02-28 18:24:11 158

原创 【十四】struts2与spring mvc的工作原理及区别

目录一、Struts2的工作原理二、Spring MVC的工作原理1)整体流程2)核心流程三、Struts2与Spring的区别一、Struts2的工作原理1、客户端(HttpServletRequest)发送请求2、请求经过过滤器((可选过滤器)--&gt;StrutsPrepareAndExecuteFilter(核心过滤器,struts1的核心过滤器是Fi...

2019-02-28 18:10:47 311

原创 【十三】Java SE中的一些常见问题

目录一、异常处理二、comparable与comparator1、实现Comparable:2、实现Comparator接口:三、Java编译时与运行时四、hashCode()与equals()方法五、finalize方法六、面向对象、面向接口编程七、String、StringBuffer、StringBuilder一、异常处理Error是程序无...

2019-02-28 17:57:45 409

原创 【十二】NIO

目录一、NIO与IO的区别二、NIO的缓冲区1、缓冲区(Buffer):2、缓冲区存取数据的两个核心方法:3、缓冲区中的四个核心属性:4、直接缓冲区与非直接缓冲区:5、常用的一些方法:三、NIO的通道四、NIO的阻塞式与非阻塞式1、阻塞式:1)例1:2)例2:2、非阻塞式:五、总结一、NIO与IO的区别NIO面向缓冲区的、基于通道(...

2019-02-28 11:28:26 226

原创 【十一】常见容器

目录一、hashMap,hashTable,ConcurrentHashMap,hashSet1、HashTable2、HashMap3、ConcurrentHashMap4、hashSet二、TreeMap与TreeSet比较三、ArrayList LinkedList Vector的区别四、使用迭代器遍历ArrayList的时候修改List报Concurren...

2019-02-28 11:09:26 424

原创 【十】与线程相关的一些其他问题

一、创建执行线程的三种方法①继承Thread类并且重写run()方法②实现Runnable接口并且重写run()方法③实现Callable接口并且重写run()方法执行 Callable 方式,需要 FutureTask 实现类的支持,用于接收运算结果。FutureTask 是Future 接口的实现类eg:public class TestCallable {...

2019-02-28 10:53:19 158

原创 【九】线程副本ThreadLocal,及WeakHashMap

实现多线程安全的三种方法,1. 使用锁机制 synchronize、lock方式:为资源加锁,可参考我前面文章。2. 使用 java.util.concurrent 下面的类库:有JDK提供的线程安全的集合类:AtomicInteger、AtomicStampedReference、ConcurrentHashMap、CopyOnWriteArrayList、ReentrantLock,F...

2019-02-28 10:41:16 768

原创 【八】java.util.concurrent包下的一些类

一、同步锁lock、及其一些常用实现类同步锁lock,注意(与synchronized不同点):1)使用lock无论如何都要手动释放锁(否则会发生死锁),所以将其放在finally块中,而synchronized离开块后会自动释放锁,一般不会发生死锁2)Lock可以让等待锁的线程响应中断,在持有锁的线程长时间不释放锁时,可以中断等待锁的线程去干别的事(通过lock.lockInterr...

2019-02-28 10:25:50 284

原创 【七】线程及线程池

一、线程的生命周期:*start()开启一个新的线程,只能调用一次,run()方法不会开启一个新的线程,只是简单的调用方法。* currentThread()获取当前的线程* getName()获取线程的名称* setName()设置线程的名称* yield()调用此方法的线程释放当前的CPU执行权,注意:但是当前线程可能还会抢占到CPU资源* join()在A线...

2019-02-28 10:05:58 155

原创 【六】可见性及原子性

一、可见性问题:前一篇文章大概解释了JMM,此时若有两个线程A,B,A读取了变量x的值,同时线程B对主内存中的变量x进行修改,B需要先将其读入自己的工作内存,在自己的工作内存中对变量x进行修改之后,再写入到主内存中,若此时cpu一直处于占用状态,那么修改的x变量对于A是不可见的(每个线程有自己的工作内存),此时就出现了可见性问题。可以使用volatile关键字解决。volatile 关键字...

2019-02-27 18:16:51 197

原创 【五】Java内存模型(JMM)

Java Memory Model (JAVA 内存模型)描述线程之间如何通过内存(memory)来进行交互。 具体说来, JVM中存在一个主存区(Main Memory或Java Heap Memory),对于所有线程进行共享,而每个线程又有自己的工作内存(Working Memory),工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作并非发生在主存区,而是发生在工作内存中,而线程之...

2019-02-27 17:21:13 203

原创 【三】JVM垃圾回收机制

目录一、触发对象回收的条件二、垃圾对象的判定:1、引用计数器算法2、根搜索算法三、引用类型1、强引用:2、软引用:3、弱引用(weak reference):4、虚引用(PhantomReference):四、垃圾回收算法:1、标记—清除算法:2、复制算法3、标记/整理算法:4、以上三种算法比较5、分代收集算法(大部分的回收都是针对...

2019-02-27 17:05:18 268

原创 【二】ClassLoader及双亲委托机制

1、Java语言系统自带有三个类加载器:- Bootstrap ClassLoader 最顶层的加载类,主要加载核心类库,%JRE_HOME%\lib下的rt.jar、resources.jar、charsets.jar和class等。另外需要注意的是可以通过启动jvm时指定-Xbootclasspath和路径来改变Bootstrap ClassLoader的加载目录。比如java -Xboo...

2019-02-27 16:53:51 226

原创 【一】类的生命周期

java类的生命周期就是指一个class文件(java源文件编译后的文件)从加载到卸载的全过程。目录1.加载2.连接(1)验证:(2)准备:(3)解析:3.初始化4.使用(1)对象实例化:(2)垃圾收集:(3)对象的终结:5.类卸载1.加载我们编写一个java的源文件,经过编译后生成一个后缀名为.class的文件,这结合四字节...

2019-02-27 16:47:18 722 2

原创 使用nginx配合FastDFS上传文件时,出现500错误(程序没有问题,而是nginx的问题)

项目背景:项目使用微服务的架构进行开发,前端进行文件上传时,首先经过nginx反向代理到对应的上传文件模块的服务器,再由该服务器将图片上传到FastDFS。点击上传文件后出现了如下错误:出现500首先就去检查了自己的程序,发现没有日志打出来,所以应该是在nginx进行反向代理的过程中出错。仔细观察发现Response Headers中的Server是nginx,此时第一反应是认为ngi...

2018-12-29 17:32:56 1375

原创 【四】Java运行时数据区

最近在看一些面试的相关问题,发现自己对java底层变量内存的分配理解不是很透彻,于是网上各种找资料,看了许多篇别人的博客,于是自己也整理了一下,下面分享给各位:堆中Java虚拟机的自动垃圾回收:引用变量是普通的变量,定义时在栈中分配,引用变量在程序运行到其作用域之外后被释放。而数组和对象本身在堆中分配,即使程序运行到使用 new 产生数组或者对象的语句所在的代码块之外,数组和对象...

2018-06-02 09:53:32 1596

原创 使用httpClient的POST方式调用webservice服务产生中文乱码问题

今天遇到做项目需要使用httpClient来远程调用webservice服务,此项目中调用服务的一端和服务端都使用org.springframework.web.filter.CharacterEncodingFilter过滤器来进行设置以POST方式提交数据的编码格式,但是服务端获取到的数据中文还是一直乱码。以下是自己写的一个httpClient的工具类:public static String...

2018-05-13 19:16:19 4355 1

原创 eclipse或myeclipse复制项目后,启动项目,访问的还是原来的项目

eclipse或myeclipse复制项目后,启动项目,访问的还是原来的项目现在有以下两个项目,test2复制于test1: 现在访问test2下的index.jsp,地址栏出现如下的url地址: 访问的还是test1下的index.jsp。对于myeclipse: 现在只需要右键项目,出现以下界面: 点击manage点击Web,然后更改右侧的Web Context Root为对应的

2017-06-29 15:46:32 2910

原创 Struts2 动态方法调用

Struts2动态方法调用

2017-06-26 17:01:40 605

空空如也

空空如也

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

TA关注的人

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