- 博客(417)
- 资源 (5)
- 收藏
- 关注
原创 java中需要自己进一步理解的技术
前言今天看了一名三年经验的Coder的面试经验不禁想到了自己工作也有差不多三年了,只不过在这三年里面从前端到后端,从PHP到JAVA。自己也走了很多错路,花了很多时间通过一段时间的思考还是感觉自己在java的路上继续深入和磨练。希望自己在技术上能越走越远。正文不喜欢瞎琢磨的程序员不是好猿关于专业技能static的小故事:今天面试我问你static关键字有哪些作 用,如果你答
2017-02-27 15:33:56 980
原创 [Nginx入门] --mac 下安装nginx
背景:操作手册参考:How to Install NGINX on Mac | Installing NGINX on Mac - Javatpoint步骤如下:Step 1: 下载 安装 Homebrew/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"Step 2: 更新Homebrew 仓储前提是一定要切换到 : /usr/lo..
2021-09-17 20:08:48 304
转载 【转】Java获取泛型T的具体类型
在日常的开发中特别是框架的设计或者实用反射的时候,经常会实用class类去做一些事情,但是由于系统的抽象等问题,经常实用泛型去做一些事情。所以如何在泛型中获取具体的class类呢?解决方案:父类本身不获取泛型的具体类型,仅提供抽象方法,由子类来提供具体的类型public abstract class Foo<T> { public abstract Class g...
2020-01-18 11:15:21 1834
原创 阿里面试真题:二分查找算法
其实这个题目并不难,但是却是很实用,因为很多同学对于异常条件吃不准的话就会有问题。看看JDK自带的二分查找吧/** * Searches a range of * the specified array of longs for the specified value using the * binary search algorithm. * T...
2020-01-18 10:58:18 827
原创 阿里面试真题:redis的主从同步,aof和rdb区别,redis cluster原理,hash一致性
1. 主从同步redis支持master-slave模式,一主多从,redis server可以设置另外多个redis server为slave,从机同步主机的数据。配置后,读写分离,主机负责读写服务,从机只负责读。减轻主机的压力。redis实现的是最终会一致性,具体选择强一致性还是弱一致性,取决于业务场景。redis 主从同步有两种方式(或者所两个阶段):全同步和部分同步。主从刚刚连接...
2020-01-12 17:15:40 3666
原创 阿里面试真题:慢SQL优化思路
其实这是个常见的面试题目:1、知识点一:执行计划:具体参数可以参见:https://segmentfault.com/a/1190000008131735各列的含义如下: id: SELECT 查询的标识符. 每个 SELECT 都会自动分配一个唯一的标识符. select_type: SELECT 查询的类型. table: 查询的是哪个表 parti...
2020-01-12 16:55:10 5953
原创 阿里面试真题:给定一个二叉树,找出其最小深度
给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。参考文档:https://juejin.im/post/5b8d64346fb9a01a1d4f99faclass Solution { public int minDepth(TreeNode root) { if(root == null) ret...
2020-01-02 10:46:06 1223
原创 阿里面试真题:ABC三个线程如何保证顺序执行?
其实这一个题有很多解,面试官想听的可能是CountDownLatch这一种,因为面试官也只会这一种。。参考了网络不过总体思路没错。public class ThreadOderRun { public static void main(String[] args) { ThreadOderRun threadOderRun = new ThreadOderRun...
2020-01-01 10:31:11 3669
转载 架构师方向提升技术视野学习计划---广度部分
学习规划总共分为五大部分,分别是:大数据技术基础 离线计算Hadoop 流式计算Storm 内存计算Spark 机器学习算法大数据技术基础linux操作基础linux系统简介与安装 linux常用命令–文件操作 linux常用命令–用户管理与权限 linux常用命令–系统管理 linux常用命令–免密登陆配置与网络管理 linux上常用软件安装 linux本地...
2019-03-14 16:37:47 686
转载 【排序类算法】:快速排序
public class FastSort{ public static void main(String []args){ System.out.println("Hello World"); int[] a = {12,20,5,16,15,1,30,45,23,9}; int start = 0; int end ...
2019-01-22 16:54:43 315
转载 【数组类算法】:调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 public class Solution { public void reOrderArray(int [] array) { int jishu=0; int ...
2019-01-22 16:35:34 271
转载 【数组类算法】:最多有多少个点在一条直线上
问题描述:给出二维平面上的n个点,求最多有多少点在同一条直线上。样例:给出4个点:(1, 2), (3, 6), (0, 0), (1, 3)。一条直线上的点最多有3个。算法思想:点和点在不在一条直线上,关键两点之间的斜率是否相同。开始自己写了一些,但过于理想化,且复杂,没有考虑全面,并且没有考虑到使用map集合。最后这种还是从从网上百度出来的: public int maxP...
2019-01-22 15:46:52 1392
转载 【数组类算法】:第k大元素
问题描述:在数组中找到第k大的元素样例:给出数组[9,3,2,4,8],第三大的元素是4;给出数组 [1,2,3,4,5],第一大的元素是5,第二大的元素是4,第三大的元素是3,以此类推挑战:要求时间复杂度为O(n),空间复杂度为O(1)算法设计:首先对这个数列使用快速排序算法进行从大到小排序,然后再遍历寻找第k大数据。此算法的重点难点应该在于快速排序public cla...
2019-01-22 11:32:01 310
转载 ConcurrentHashMap能完全替代HashTable吗?
关于ConcurrentHashMap在之前的ConcurrentHashMap原理分析中已经解释了原理,而HashTable其实大抵上只是对HashMap的线程安全的封装,在JDK7与JDK8中HashMap的实现中解释了HashMap的原理。至此你应该能够明白,ConcurrentHashMap与HashTable都可以用于多线程的环境,但是当Hashtable的大小增加到一定的时候,性能...
2019-01-22 08:26:11 1556
转载 Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值代表意义
Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义以及linux命令执行返回值意义 (1) Shell脚本中$0、$?、$!、$$、$*、$#、$@等的意义说明1.1、简要说明 ps: 你在Linux环境下多试下就明白了$$Shell本身的PID(ProcessID,即脚本运行的当前进程ID号)$!Shell最后运行的后台Process的PID(后...
2019-01-22 08:13:52 1380
转载 转:Java中的锁分类
在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。公平锁/非公平锁公平锁是指...
2019-01-21 15:52:25 213
转载 转:三个实例演示 Java Thread Dump 日志分析
jstack Dump 日志文件中的线程状态dump 文件里,值得关注的线程状态有:死锁,Deadlock(重点关注) 执行中,Runnable 等待资源,Waiting on condition(重点关注) 等待获取监视器,Waiting on monitor entry(重点关注) 暂停,Suspended 对象等待中,Object.wait() 或 TIMED_W...
2019-01-20 14:13:22 263
原创 面试杂项
延迟消息队列的实现方式---考察架构设计和逻辑思维性--架构设计----NO;cms 垃圾回收期的高阶—答不上来持久带是否发生fullGC okjps----okjstack----okjmap jhat------dump日志,jhat 不清楚jstat----不清楚dump文件中的分析jstack Dump 日志文件中的线程状态dump 文件里,值得关注的线程状态有:...
2019-01-17 16:29:51 1597
转载 算法杂项
简单介绍一下包含的内容:动态规划题:♥问题一:最低消耗问题 ♥问题二:生小牛的故事♥♥问题三:计算有多少种最长的递增序列♥♥问题四:给数字N,以1...N为节点能构建多少颗不同二叉搜索树♥♥问题五:矩阵连乘♥♥♥问题七:凸多边形最优三角剖分字符串相关题:♥问题一:字符串匹配求两个字符串的最大公共连续子串♥问题二:基本计算器♥♥问题三:字符串匹配有哪些...
2019-01-17 10:50:24 209
原创 杂项
MyBatis:http://www.mybatis.org/mybatis-3/zh/index.htmlhttps://blog.csdn.net/luanlouis/article/details/41280959https://blog.csdn.net/column/details/mybatis-sample.html https://km.sankuai.c...
2019-01-15 23:43:43 217
原创 MYSQL开发规范
Q15.数据库容量系数打分怎么计算的?容量系数factor计算方法: factor = 1 / 负载值; if 80% <= IO利用率 < 90%: factor = factor / 1.2; else if 90% < IO利用率: factor = factor / 1.5容量系数=10为最高分20。太大或太小均扣分,每增加1,减少1分;每降低1,减少2分,...
2019-01-15 23:14:51 380
转载 IO机制
IO的机制:AIO、BIO、IOhttps://www.cnblogs.com/aspirant/p/6877350.html?utm_source=itdadao&utm_medium=referral select、poll、epollhttps://www.cnblogs.com/aspirant/p/9166944.html ...
2019-01-15 23:08:38 337
原创 JVM杂项
我们启动后使用命令查看垃圾回收情况,命令:ps -ef|grep PermGCTest|grep -v grep | awk '{print$2}'|xargs -I{} jstat -gc '{}' 1000 200 Dozer :https://www.jianshu.com/p/bf8f0e8aee23 CMS参数学习:-XX:+UseConcMarkSweep...
2019-01-15 23:07:55 433
原创 java 8 CompletableFuture 初探
最近组内分享了一下java 8中的CompletableFuture特性感觉非常赞的一个功能。下面小记一下基本的使用:1.使用场景将两个异步计算合并为一个——这两个异步计算之间相互独立,同时第二个又依赖于第一个的结果。 等待 Future 集合中的所有任务都完成 或者 仅等待 Future 集合中最快结束的任务完成(有可能因为它们试图通过不同的方式计算同一个值),并返回它的结果。 ...
2018-12-21 10:47:07 219
转载 转:理解CPU steal time
哪里可以看到CPU Steal Time?你可以使用Linux 的 TOP 命令来看到实时的一些性能指标。CPU相关的其中一行内容如下:top两个你可能较为熟悉的是 %id(空闲 百分比) 和 %wa(I/O 等待 百分比)。 如果 %id 很低, 那么说明CPU的工作负载很大并且没有多少计算负载能力剩余。 如果 %wa 很高,则说明瓶 CPU 处于等待计算的状态,但是正在等待I/O活动的...
2018-10-01 14:34:00 4130
原创 redis开发与运维笔记(4)
1、持久化1、RDB。RDB持久化是把当前进程数据生成快照保存到硬盘的过程, 分为手动触发和自动触发(1)触发机制手动触发:save命令。阻塞当前Redis服务器,直到RDB过程完成。线上环境不建议使用 手动触发:bgsave命令。Redis进程执行fork操作创建子进程,RDB持久化由子进程负责。阻塞只发生在fork阶段,时间很短。 自动触发:使用save相关配置:“save m...
2018-09-30 14:22:20 356
原创 redis开发与运维笔记(3)
1、客户端通讯协议是建立在TCP协议之上的。Redis制定了RESP(REdis Serialization Protocol, Redis序列化协议) 实现客户端与服务端的正常交互(1)客户端API。client .. 命令 client list。列出与Redis服务端相连的所有客户端连接信息。输出结果的每一行代表一个客户端的信息, 可以看到每行包含了十几个属性 id: 客户端...
2018-09-30 11:55:25 403
原创 redis开发与运维笔记(2)
1、键管理(1)键迁移 dump+restore可以实现在不同的Redis实例之间进行数据迁移的功能, 整个迁移的过程分为两步: 1) 在源Redis上, dump命令会将键值序列化, 格式采用的是RDB格式。 2) 在目标Redis上, restore命令将上面序列化的值进行复原, 其中ttl参数代表过期时间, 如果ttl=0代表没有过期时间。 第一, 整个迁移过程并非原子性的...
2018-09-29 23:43:29 239
原创 redis开发与运维笔记(1)
1、Redis特性与优点速度快。redis所有数据都存放于内存;是用C语言实现,更加贴近硬件;使用了单线程架构,避免了多线程竞争问题。Redis使用了单线程架构和IO多路复用模型(epoll作为多路复用技术的实现,非阻塞IO)来实现。每次客户端的请求都会经过发送命令、执行命令、返回结果三个阶段。所有客户端命令都会放入到同一个队列中,然后逐个被执行。单线程避免了线程切换和竞态产生的消耗 基于键...
2018-09-29 22:41:26 434
原创 Spring线程池ThreadPoolTaskExecutor配置及详情
<!-- spring thread pool executor --> <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <!-- 线程池维护线程的最少数量 --> ...
2018-09-29 16:51:12 4319
转载 关于数据库场景设计与架构
一、总起文章:《每每谈到数据库架构,我们在讨论什么》内容: 单库体系架构 数据库分组架构 数据库分片架构 数据库垂直切分 二、实践一场景:单key业务,如何做到数据库无限容量文章:《用户中心,数据库架构优化与实践》内容: 用户中心业务分析 用户中心水平切分方案 “前台与后台分离”架构设计思想 对于“业务复杂”...
2018-09-26 15:02:31 728
转载 mysql进阶:SELECT ...for update
使用场景就是给数据加上悲观锁,核心的思想就是一切的查询更改都会有并发问题。需要加锁!!!使用场景举例 商品goods表中有一个字段status,status为1代表商品未被下单,status为2代表商品已经被下单,那么我们对某个商品下单时必须确保该商品status为1。假设商品的id为1。如果不采用锁,那么操作方法如下://1.查询出商品信息select status from...
2018-09-12 23:37:11 530
转载 Java远程调试各参数说明
首先,JAVA自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试。 JAVA的调试方法如下: -Xdebug -Xrunjdwp,transport=dt_socket,server=y,address=5432,suspend=n,onthrow=java.io.IOException,la...
2018-09-08 17:03:49 2838
原创 git技巧一则:git重命名分支
重命名git分支名称 1、git branch -m 要改的本地分支名 修改后的分支名(修改本地分支) 2、 git push origin :远程修改前的分支名(删除远程分支) 3、git push origin 修改后的分支名:修改后的分支名(push 到远程分支) 4、git branch --set-upstream 修改后的分支名 origin/修改后的分支名(绑...
2018-08-23 20:37:51 12406
转载 函数性能对比工具之JMH
概述JMH 是一个由 OpenJDK/Oracle 里面那群开发了 Java 编译器的大牛们所开发的 Micro Benchmark Framework 。何谓 Micro Benchmark 呢?简单地说就是在 method 层面上的 benchmark,精度可以精确到微秒级。可以看出 JMH 主要使用在当你已经找出了热点函数,而需要对热点函数进行进一步的优化时,就可以使用 JMH 对优化的...
2018-08-21 11:15:46 1632
转载 转:lombok工具的使用
Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。官方地址:https://projectlombok.org/,github地址:https://github.com/rzwitserloot/lombok。@Getter and @Setter你可以用@Getter / @Setter注...
2018-07-13 10:40:07 238
转载 转:Guava学习笔记之Joiner ,Strings,Splitter 工具实例
在工作的过程中,如果写业务的话。那么就是拼工具箱里工具了。Guava对于很多JDK 1.7的人来说是不错的一个工具,而且很好用说的几个都是基础的功能Strings1.Strings.padEnd方法//padEnd普全右 String a="12345"; String b=Strings.padEnd(a, 10, 'x'); System.out.println(b); 结果...
2018-07-12 15:14:20 687
转载 好用的Joda-Time
简介在Java中处理日期和时间是很常见的需求,基础的工具类就是我们熟悉的Date和Calendar,然而这些工具类的api使用并不是很方便和强大,于是就诞生了Joda-Time这个专门处理日期时间的库。由于Joda-Time很优秀,在Java 8出现前的很长时间内成为Java中日期时间处理的事实标准,用来弥补JDK的不足。在Java 8中引入的java.time包是一组新的处理日期时间的API,遵...
2018-04-19 19:49:35 546
转载 mysql进阶:select into 和 insert into select
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 ...
2018-04-02 12:56:01 3806
转载 org.springframework.web.filter.DelegatingFilterProxy 的原理及使用
DelegatingFilterProxy就是一个对于servlet filter的代理,用这个类的好处主要是通过Spring容器来管理servlet filter的生命周期,还有就是如果filter中需要一些Spring容器的实例,可以通过spring直接注入,另外读取一些配置文件这些便利的操作都可以通过Spring来配置实现。首先在web.xml中配置:<filter> &...
2018-03-29 16:59:08 2611
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人