自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 MacOS 安装 Homebrew 错误处理 Connection refused

按照官方的操作,输入以下命令/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"报错信息如下curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused解决方法原因是目前 GitHub 的 gist 访问不了,所以获取不到安装的脚本文件。运行下面

2021-03-18 00:13:30 199

原创 zookeeper入门(一)

zookeeper的基本功能和应用场景zookeeper可以提供基础服务:1、替用户管理少量数据2、替用户监听指定数据(当数据发生变化,用户会得到通知)zookeeper的整体运行机制zookeeper具有高可用,高可靠zookeeper推荐安装在奇数台服务器(3、5…)zookeeper在安装的时候不区分主从角色zookeeper在运行的时候会选举出一个节点作为主节点选举流程:1、第一台启动的zk进程,会向局域网进行组播投票,投自己2、第二台启动的zk进程,会向局域网进行组播投票,投

2020-12-02 14:14:31 178

原创 Java总结(进阶)

10.JavaSE新特性概述多例设计模式构造方法私有化,类内部需要提供若干个实例化对象,然后通过static方法返回这些实例化对象枚举(JDK1.5) 枚举并不是一种新的结构,使用enum关键字定义的枚举本质上是继承于 java.ang.Enum 父类的枚举类 JDK 1.5之后的枚举比起多例设计模式,简单且代码少,可以说枚举是一种高级的多例设计模式 三个方法 ...

2019-10-24 12:37:18 198

原创 JVM运行时区域划分

程私有:程序计数器是一块比较小的内存空间,记录当前线程的执行字节码的行号指示器,每条线程都有独立的PCRegister。如果执行java方法,那计数器中的值不为0;如果正在执行的是Native方法,计数器中值为0。PCRegister是JVM规范中唯一一个不会产生OOM(OutOfMemoryError异常,虚拟机动态扩展时无法申请到足够的内存)情况的区域。虚拟机栈java方法的信息...

2019-08-27 15:30:32 113

原创 深入理解Synchronized关键字

java对象头在同步的时候获取对象的monitor,即可获取对象的锁,那么锁怎么理解,其实就是一个标记位,那么这个标志就是放在java对象头,java对象头里面的Mark Word里面默认存放对象的HashCode,分代年龄和锁标记synchronized底层实现synchronized最大特征是同一时刻只有一个线程能获得对象的监视器,从而进入同步代码块或者同步方法中(MonitorEnt...

2019-07-25 19:56:57 155

原创 Java面试题

一、Java 基础1.JDK 和 JRE 有什么区别?​ JDK是Java开发工具包,包含各种类库和工具​ JRE是JVM和核心类库​ 电脑上装了jre能运行java程序,但不能进行java开发2.== 和 equals 的区别是什么?​ ==比较的是内存地址​ equals比较的是两个变量或者实例指向的是不是同一内存空间3.两个对象的 hashCode()相同,则 equals(...

2019-07-24 15:52:20 1073

原创 Netty学习(二)

Channel HandlersNetty的ChannelHandler是应用程序中处理最多的。Netty应用至少有一个ChannelHandler参与。那么ChannelHandler是什么?我们可以理解为ChannelHandler是一段执行业务逻辑处理数据的代码,它们来来往往的通过ChannelPipeline。Netty中有两个方向的数据流,入站(ChannelInboundHan...

2019-07-18 16:22:48 166

原创 Nginx学习

Nginx是俄罗斯人编写的一款高性能的HTTP和反向代理服务器,在高连接并发的情况下,它能够支持高达50000个并发连接数的响应,但是内存、CPU等系统资源消耗却很低,运行很稳定。目前Nginx在国内很多大型企业都有应用,据最新统计,Nginx的市场占有率已经到33%左右了。而Apache的市场占有率虽然仍然是最高的,但是是呈下降趋势。而Nginx的势头很明显。选择Nginx的理由也很简单:第一,...

2019-06-08 18:41:24 121

原创 关于DefaultHttpClient的作用已经被弃之后的新方法

HttpClient使用方法:使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。创建HttpClient对象。创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。 DefaultHttpClient httpClient; try { ...

2019-05-29 15:50:53 19261

原创 Netty学习

Netty是基于Java NIO的网络应用框架,,使用Netty可以快速开发网络应用,例如服务器和客户端协议。Netty提供了一种新的方式来开发网络应用程序,这种方式使得他很容易使用和很强的扩展性,Netty的内部实现很复杂,但是他提供了简单的API从网络代码中解耦业务逻辑,Netty是完全基于NIO实现的,所以整个Netty都是异步的。什么是Netty?Netty提供了高层次抽象来简化TC...

2019-05-25 15:23:40 110

原创 Java中的泛型擦除

Java泛型的引入加强了参数类型的安全性,减少了类型的转换,但有一点,Java的泛型在编译器有效,在运行期被删除,也就是泛型参数类型在编译后都被清楚List、List 擦除后的类型为 List。List[]、List[] 擦除后的类型为 List[]。List<? extends E>、List<? super E> 擦除后的类型为 List。List<T ...

2019-05-23 21:19:13 90

原创 设计模式

设计模式简述创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式.结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式.行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式.工厂方法模式工厂模式,属于类创建型模式,工厂父类(...

2019-05-09 23:24:16 215

原创 Spring学习之AOP

AOP原理@EnableAspectJAutoProxy:核心是这个,AOP要起作用,就是靠他启动//导入了此类,点进去看@Import(AspectJAutoProxyRegistrar.class)public @interface EnableAspectJAutoProxy { //proxyTargetClass属性,默认false,采用JDK动态代理织入增强(实现接口...

2019-04-28 22:07:55 106

原创 Spring学习之Bean的创建

Spring跨年最重要的就是IOC和AOP,IOC的意思就是控制反转,不用用户自己去new对象,而是去交给容器处理,也就是context,他实际就是一个HashMap,他是存储的是实例的名称和实例大致为HashMap<String,Object> 对象创建默认是单例模式,在容器加载的时候创建,将这个对象放入Spring容器中,他的穿件方式是根据类名进行反射创建,根据条件有动态反射和C...

2019-04-17 20:46:39 118

原创 深入理解volatile关键字

故事要从盘古开天辟地的时候说起,不好意思,走错片场了…想要深入理解volatile就必须从Java虚拟机层面去理解,所以,在介绍volatile关键字之前就要从硬件谈起。硬件的效率与一致性由于计算机的读写速度与其运算速度差距十分巨大,所以,计算机上都会加一层读写速度尽可能接近处理器运算速度的高速缓存(cache)来作为内存与处理器之间的缓冲:意思就是将需要用到的数据放到缓存中,让运算快速进行...

2019-04-15 15:19:58 134

原创 浅谈HashMap源码

HashMapHashMap实现了Map接口,是通过链地址法设计的hash表(通过key去找value),通过数组加链表加红黑树实现,他是一个线程不安全的map他并不是一创建对象就把桶创建好(就是数组)单链表的Node节点,他创建的时候是在第一次put的时候初始化的, /** * Associates the specified value with the specifi...

2019-03-20 21:18:19 96

原创 MySQL事务和锁

事务在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。事务用来管理 insert,update,delete 语句一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,...

2019-03-13 16:57:14 1765

原创 IDEA快捷键-让你事半功倍

IDEA快捷键需要牢记的指令Double Shift(双击shift)在所有地方找想要找的(比如想找一个类)Alt + Ins(Insert如果在键盘0的位置按住shift按insert)可以生成一些代码toString,equals。get,set等待Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Ctrl+E或者Alt+Shift+C 最近...

2018-12-03 20:41:06 231

原创 Spring学习(一)

Spring之旅Spring为企业级开发提供丰富的功能,但是这些功能的底层都是依赖他的两个特性,也就是DI(依赖注入dependency injection)和AOP(面向切面编程aspect-oriented programming)开始之前首先应该知道下面几个简称POJO :Plain Old java Object 简单老式java对象EJB:Enterprise javaBean ...

2018-12-03 15:48:46 112

原创 Lock体系

AQS:int类型变量+同步队列同步队列:带有头尾指针的双向链表,Node节点连接节点状态:lockInterrupt响应中断独占锁的获取获取锁失败后调用AQS提供的acquire(int arg)模板方法流程:acquire(int arg)-&gt;tryAcquire(int arg)尝试再次获取同步状态,成功方法退出,失败调用addWaiter方法addWaiter(Node...

2018-12-03 12:31:58 119

原创 LeetCode罗马数字与数字之间的转换

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。1...

2018-11-02 11:13:55 389

原创 495. 提莫攻击

在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。示例1:输入: [1,4], 2输出: 4原因: 在第 1 秒开始时,提莫开始对艾希进行攻击并使其立即中毒。中毒状态会维持...

2018-10-29 10:56:01 182

原创 IDEA中查看源码

首先打开IDEA,双击shift,查找想要查询的类 在源码中查找方法快捷键Ctrl+F12 如果想要查看方法细节可以按住Ctrl点击方法若果想要回到原来位置Ctrl+alt+方向左键...

2018-09-11 14:56:25 15440 1

原创 IDEA的几个常用快捷键

1.将代码添加到try,catch块中,或者将代码嵌套进条件语句 选中代码按Ctrl+alt+t 2.将代码上下移动 选中代码按Ctrl+shift+上下键 3复制整行代码,将光标放到要复制的那一行 Ctrl+d 4.删除整行代码,将光标放到要复制的那一行 Ctrl+x...

2018-09-09 17:17:25 165

原创 Java中List和ArrayList之间的区别

刚开始学习Java编程语言的人经常怀疑如何在List变量中存储ArrayList对象,List和ArrayList之间有什么区别。 他们的主要区别是List是一个接口,而ArrayList是一个类,而且继承于List。这也意味着ArrayList是List的子类,在Java或者任何面向对象的语言找中,超类的变量都可以存储子类类型对象,这也称为多态,因为任何虚方法都只从子类执行,即使他们从超类调用...

2018-09-02 15:39:47 8246 1

原创 Java多态(面试考点,不要因为基础而忽视)

面向对象的三大特性:继承封装,多态 从一定角度来看,封装和继承几乎都是为多态准备的 定义 指的是不同对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式 作用 消除类型之间的耦合关系 多态的好处 1)可替换性 2)可扩充性 3)接口性 4)灵活性 Java中多态的分类 分为方法的多态和类的多态 1)person为父类,student为子类,那么...

2018-08-24 23:43:39 4456

原创 斐波那契数列

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n&lt;=39public class Solution { public int Fibonacci(int n) { int a=1,b=1,c=0; if(n&lt;0){ return 0; }els...

2018-08-12 22:22:50 76

原创 sort-list

Sort a linked list in O(n log n) time using constant space complexity 思路: 因为题目要求复杂度为O(nlogn),故可以考虑归并排序的思想。 归并排序的一般步骤为: 1)将待排序数组(链表)取中点并一分为二; 2)递归地对左半部分进行归并排序; 3)递归地对右半部分进行归并排序; 4)将两个半部分进行合并(mer...

2018-08-08 23:37:08 96

原创 partition-list

题意:给定一个单链表和一个x,把链表中小于x的放到前面,大于等于x的放到后面, 每部分元素的原始相对位置不变。 思路:新建两个节点preHead1与preHead2,分别为指向两个链表的头结点。 把节点值小于x的节点链接到链表1上,节点值大等于x的节点链接到链表2上。 最后把两个链表相连即可class ListNode { int val; ListNode nex...

2018-08-05 21:51:48 235

原创 复杂链表的复制

题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的headclass RandomListNode { int label; RandomListNode next = null; RandomListNode random = null; RandomListNode(i...

2018-07-31 23:13:44 77

原创 模板设计模式-抽象类的实际应用

抽象类的最大特点在于强制规定了子类的实现结构,除了这个特点以外,抽象类更多情况下起到一个模板的作用 下面举一个例子: 人 = 吃饭 + 睡觉 + 工作 ; 猪 = 吃饭 + 睡觉 ; 机器人 = 吃饭 + 工作 ; 定义行为类abstract class Action{ // 描述的是一个抽象的行为public static final int EAT = 1 ;public...

2018-07-30 23:15:39 133

原创 输入:BUTTER FLOUR HONEY FLOUR EGG 输出:4判断字符串是否重复问题

public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); HashSet&lt;String&gt; set = new HashSet&lt;&gt;(); while(scanner.hasNe...

2018-07-30 09:21:37 191

原创 Java实现[编程题]表示数值的字符串

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1415”和”-1E-16”都表示数值,但是”12e”,,”1a3.14”,”1.2.3”,”+-5”和”12e+4.3”都不是思路:利用Java提供的字符串转double型,如果可以转返回true,否则在catch块中返回falsepublic class Solut...

2018-07-29 16:36:14 120

原创 读入一个字符串str,输出字符串str中的连续最长的数字串(Java实现)

题目:读入一个字符串str,输出字符串str中的连续最长的数字串 输入描述: 个测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述: 在一行内输出str中里连续最长的数字串。 示例1 输入abcd12345ed125ss123456789 输出123456789 思路:用两个循环判断,一个判断是否为数字开始,第二个计算长度,最后将最长的从原...

2018-07-27 22:17:51 6703

原创 ArrayList list = new ArrayList(20);中的list扩充几次?牛客网笔试题

ArrayList list=new ArrayList(); 这种是默认创建大小为10的数组,每次扩容大小为1.5倍 ArrayList list=new ArrayList(20); 这种是指定数组大小的创建,创建时直接分配其大小,没有扩充。 所以,扩充为0次...

2018-07-27 16:17:43 19368

原创 Java实现字符串左移

汇编语言中有一种指令叫做循环左移(ROL),现在又个简单任务就是用字符串模拟这个指令,对于一个给定的字符串s,请你把其循环左移K位后的序列输出,例如,字符串S=”abcXYZdef”要求输出循环左移三位的结果”XYZdefabc”我的思路将两个相同字符串拼接,然后从第K位开始取length个,从而达到要求public class Demo{ public static String...

2018-07-26 17:22:59 2755 2

原创 用Java实现将一个字符串的空格转换

题目要求:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为hello word长度12,则经过替换之后的字符串为hello%20%20word 解题思路: 确认使用for循环结构。 方法一:直接遍历string中所有字符,将空格替换为“%”输出结果; 方法二:将string转化为数组,然后进行遍历,将空格替换为“%20”,输出结果;package zh...

2018-07-25 17:52:07 2542

原创 Java实现输入两个整数n和m,从0-n中随意取几个数,使其和等于m

编程求解,输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m。要求将所有的可能组合列出来。 思路: 1.首先判断,如果n&gt;m,则n中大于m的数不可能参与组合,此时置n = m; 2.将最大数n加入且n == m,则满足条件,输出; 3.将n分两种情况求解, (1)n没有加入,取n = n - 1; m = m;递归下去; (2)n加入,取n = n - 1,...

2018-07-20 18:29:43 1365

原创 二叉树的基本操作与面试题

面试题 拷贝二叉树 前序遍历非递归 二叉树的镜像递归 二叉树的镜像非递归 求二叉树中结点的个数 获取二叉树中叶子结点的个数 求二叉树中K层结点的个数 求二叉树的高度 其中用到的队列 栈的基本操作二叉树的基本操作 Queue.h#pragma oncetypedef char BTDataType;typedef struct BinTreeNode{ s...

2018-05-08 17:45:29 161

原创 队列的基本操作

Queue.h#pragma once#include"BinTree.h"typedef PBTNode QDatatype;typedef PBTNode DataType;typedef struct Node{ struct Node *_PNext; DataType _data;}Node, *PNode;typedef struct Queue{ PN

2018-05-08 17:33:14 99

空空如也

空空如也

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

TA关注的人

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