
Java
文章平均质量分 62
相由心生fhy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode之 15.三数之和 (3Sum)总结
生命不止,刷题不息~~~~~~前两天就一直在做15.三数之和,这个题在LeetCode和LeetCode中国上获赞很多,绝对的好题啊!不过,我喜欢这个题仅仅是因为它采用了快速排序的思想啦。从捋清思路到代码实现,突破重重Bugs大关,终于提交成功,对于小白而言,实属不易,接下来就跟大家分享一下这个题的解题思路,并附上用C++,java,和python的代码实现,希望能给大家提供帮助!1、...原创 2018-07-30 10:46:14 · 349 阅读 · 0 评论 -
求一个数的二进制表示中1的个数和0的个数
在我复习的过程中,很多面试题,甚至笔试题中,都用到了多次求一个整数的二进制表达中1的个数或者0的个数,网上的资料比较乱,我在此做个小记录,算是自己的一点总结,也希望对大家有帮助!1.1 求二进制数中 1 的个数(java版——算法转换)public int getNumOfOne_1(int num){ int count = 0; while(num != 0){ num = ...原创 2019-01-04 15:56:42 · 3864 阅读 · 0 评论 -
通俗易懂学会动态代理实现
动态代理是很重要又很经典的技术,今天看到一篇博客,用动态代理的代码实现让整个过程一目了然,在此做个总结。本文转自: 简简单单的代码让你轻松学会动态代理 package cn.xiaolu; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.l...转载 2018-12-03 10:01:01 · 252 阅读 · 0 评论 -
leetcode 腾讯笔试面试题之链表题目总结(持续更新。。。)
一、合并两个有序链表(简单)将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4 1)java代码非递归实现(9ms 战胜96.25%):/** * Definition for singl...原创 2018-12-01 10:33:49 · 623 阅读 · 0 评论 -
基于Socket的服务端多线程模式——服务端和客户端代码
本文代码来源于《实战java高并发程序设计》葛一鸣 郭超 著学习这本书的过程中,感觉这一部分比较重要,自己做下总结,也希望能给大家提供些帮助。 本代码模拟简单的Echo服务器,对于Echo服务器,他会读取客户端的一个输入,并将这个输入原封不动地返回给客户端。虽然实例很简单,但麻雀虽小五脏俱全,需要一套完整的Socket处理机制。适合拿来学习。下面贴出本例代码。 1、服...原创 2018-12-02 19:29:21 · 863 阅读 · 0 评论 -
Spring Security 整合freemaker 实现简单登录和角色控制
写这篇文章是因为我做了一个电商网站项目,近期刚加上权限控制。整个过程很简单,在此给大家梳理一下,也算是自己对知识点的一个总结。一、需求分析:我们都知道,电商网站在权限这一块,有两大块内容: 1、用户未登录,部分页面拒绝访问(如:下订单) 2、不同角色用户登录看到的功能模块不一样(如:买家、卖家、客服等)基于以上需求,接下来我们要解决的就是对用户登录的拦截...原创 2018-11-26 20:50:40 · 1874 阅读 · 0 评论 -
如何用命令将本地项目上传到git 及可能出现的问题汇总(持续更新... ...)
一、文件上传在执行本地项目上传之前,你需要保证自己已经有一个GitHub账号,电脑上已经安装的Git工具。如果没有执行以上操作,可以参考我的上一篇博客:Github 初级教程(申请及Git安装配置)https://blog.csdn.net/fhy569039351/article/details/839630031、(先进入项目文件夹,即:在要上传的项目路径下邮件,点击Git B...原创 2018-11-11 21:58:47 · 329 阅读 · 0 评论 -
Github 初级教程(申请及Git安装配置)
如果你是一枚Coder,但是你不知道Github,那么我觉的你就不是一个菜鸟级别的Coder,因为你压根不是真正Coder,你只是一个Code搬运工。但是你如果已经在读这篇文章了,我觉的你已经知道Github了。正是Github,让社会化编程成为现实,我在总结这篇博客的时候,GitHub已经正式被微软收购了。什么是 Github?github是一个基于git的代码托管平台,付费用户可以...原创 2018-11-11 21:58:04 · 699 阅读 · 0 评论 -
为什么CMS两次标记时要 stop the world(阿里面试)
1、CMS及其执行过程? CMS,全称Concurrent Mark and Sweep,用于对年老代进行回收,目标是尽量减少应用的暂停时间,减少full gc发生的机率,利用和应用程序线程并发的垃圾回收线程来标记清除年老代。CMS并非没有暂停,而是用两次短暂停来替代串行标记整理算法的长暂停。 内外的设置正常收集周期是这样的: 1)CMS-init...原创 2018-11-11 18:19:05 · 18413 阅读 · 10 评论 -
java内部类面试总结
本文转自牛客网上 BlueFish 总结的Java内部类的笔记,我觉得很详细,在此转发进行记录。有问题大家可以到牛客网进行讨论:1.为什么使用内部类?使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。使用内部类最大的优点就在于:它能够非常好的解决多重继承的问题,使用内部类还能够为我们带来如下特性:...转载 2019-01-04 20:04:55 · 1442 阅读 · 0 评论 -
剑指offer面试题之:打印从1到最大的n位数 (2种方法实现)
题目:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1、2、3一直到最大的3位数999注意:该题需要考虑大数问题,n的范围没有规定,可以很大,所以不能用int 或 long long类型来存储概数。我们用数组存储(int[] numbers = new int[number+1])方法一:在数组上模拟数字加法代码实现:/** * C...原创 2019-03-21 09:50:36 · 321 阅读 · 0 评论 -
面试题之——写一个多线程安全的单例模式
针对面试题中频频出现的问题:写一个多线程安全的单例模式。在此做一个记录。很多博客列举了多种线程安全单利模式的例子,写的很棒,推荐给大家看:https://www.cnblogs.com/jiuyi/p/6105037.html我这里只提供最优的一种写法(多线程环境下懒汉式单例模式实现),需要详细看的请到我推荐的博客中学习。package test;/** * @time 2...原创 2019-07-19 21:56:47 · 1450 阅读 · 1 评论 -
如何实现一个简单的微服务例子 SpringBoot+Eureka+ribbon+maven
SpringBoot:开发框架Eureka:注册中心ribbon: 实现负载均衡maven: 管理项目1、首先简单描述一下此微服务结构图:2、创建的详细流程: 1)注册中心Eureka服务端实现: 1、start.spring.io 去找模板,自己加依赖EurekaServer 2、在eclipse中创建S...原创 2019-07-11 21:29:23 · 1415 阅读 · 0 评论 -
动态规划之0/1背包问题(java实现)
1、开篇:2020届小白开始准备互联网笔试了,要想拿下笔试,动态规划问题得写的特别6啊!在此总结一篇最基本的0/1背包问题的动态规划问题,其实笔试题中很多动态规划问题都是在此基础上的改版,原理是差不多的。2、题目:假设现有容量10kg的背包,另外有3个物品,分别为a1,a2,a3。物品a1重量为3kg,价值为4;物品a2重量为4kg,价值为5;物品a3重量为5kg,价值为6。将...原创 2019-06-04 21:50:19 · 2495 阅读 · 0 评论 -
面试题复习总结(全)
最近在复习找工作,把自己总结的频繁出现在面试中的知识点跟大家分享一下,希望对大家找工作有帮助,不足之处还请批评指正!一起加油哦!持续更新。。。。。。Linux命令复习怎么查看端口状态:netstat -a 查看所有的服务端口 ; netstat -t 显示tcp服务端口 netstat -u 显示udp服务端口怎么查看进程状态:ps -auc计算机网络浏览器...原创 2019-06-06 22:36:44 · 1028 阅读 · 2 评论 -
手撕排序算法(java实现)
本文总结了频繁出现在面试题中的排序算法,并提供了java和python两种语言实现,作为自己复习的总结,也希望对其他找工作的朋友们有所帮助。一、快速排序: 快速排序通常情况下,是用于排序的最佳的实用选择。这是因为其平均性能相当好:期望的运行时间为O(nlogn),且O(nlogn)记号中隐藏的常数因子很小。另外,它还能够进行就地排序,在虚存环境中也能很好地工作。接下来我们便来...原创 2019-06-06 22:29:10 · 1148 阅读 · 0 评论 -
递归和非递归实现 先序、中序、后序遍历二叉树
递归和非递归实现 先序、中序、后序遍历二叉树先序、中序、后序遍历二叉树是一个基础又非常重要的知识点,频繁出现在《剑指offer》面试题中,很多题目都是二叉树遍历的变形。所以在本文章中,我总结了用递归和非递归的方法分别实现对二叉树的先序、中序和后序遍历。递归实现三种遍历先序遍历package algorithm.tree;/** * * @author FHY * ...原创 2019-05-10 10:39:19 · 529 阅读 · 0 评论 -
动态规划问题:47 礼物的最大价值; 48 最长不含重复字符的子字符串
本文总结《剑指offer》中使用动态规划思路高效率解决问题的几个典型题目:1、面试题47 礼物的最大价值思路:首先,最简单的思路是使用递归逐步计算,但这样存在大量重复计算,该方法舍弃!其次,我们想到构造一个辅助二维数组,数组中坐标为(i,j)的元素表示到达坐标为(i,j)的格子时能拿到的礼物价值总和的最大值。仔细想一下,其实在二维数组中存储的很多元素是我们并不需要的。比如坐标(i,j...原创 2019-04-15 11:30:27 · 316 阅读 · 0 评论 -
网易笔试题之:输入正整数n和k,n>=k,找出[1,n]范围内按照字典排序的最小第k个值。
题目:输入正整数n和k,n>=k,找出[1,n]范围内按照字典排序的最小第k个值。输入两个正整数n,k输出一个整数数实例:输入:15,3输出:11题目分析:1、首先,本题作为一个在线笔试题,有一个非常重要的问题是关注题目要求的输入输出格式。输入:15,3 在用例测试时,需要测试很多用例,所以要使用循环接收键盘输入的格式:while(scan.hasN...原创 2019-03-17 21:31:06 · 2253 阅读 · 0 评论 -
java是编译型还是解释型语言
Java这个语言很非凡!一、你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。 二、你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。 三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。...转载 2018-11-11 16:32:01 · 11802 阅读 · 2 评论 -
Hashtable、HashMap和TreeMap面试总结(持续更新......)
三者均实现了Map接口,存储的内容是基于key-value的键值对映射,一个映射不能有重复的键,一个键最多只能映射一个值。1、元素特性HashTable中的key、value都不能为null;HashMap中的key、value可以为null,很显然只能有一个key为null的键值对,但是允许有多个值为null的键值对;TreeMap中当未实现Comparator 接口时,key...原创 2018-08-30 10:02:18 · 815 阅读 · 0 评论 -
两个排序数组的中位数——按照求第K小的思路实现
两个排序数组的中位数给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。你可以假设 nums1 和 nums2 不同时为空。示例 1:nums1 = [1, 3]nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2]nums2 = ...原创 2018-09-07 15:10:11 · 4168 阅读 · 3 评论 -
遍历HashMap中元素的三种方法
遍历HashMap中的元素一共有三种方式:1、以Map.Entry 的方式2、通过map.keySet() 的方式3、通过map.getValues() 的方式以下是自己的学习总结代码,希望对大家有用!package demo;import java.util.Collection;import java.util.HashMap;import java.util.I...原创 2018-09-12 10:42:49 · 5636 阅读 · 0 评论 -
素材链接积累,持续更新~~~
1、非常详细的SVN使用教程总结:armyfai博客包括SVN服务器搭建、TortoiseSVN客户端搭建及SVN代码提交、更新、解决冲突的基本操作。给力!2、使用maven仓库开发系统,阿里云私服下载jar包失败,可以到 MVNRepository 查找自己需要的jar包,放到相应目录下即可。其实阿里云的私服最终也是到该网站去下载jar包,我们这样操作相当于不用阿里云给我们下载...原创 2018-08-04 21:08:23 · 422 阅读 · 0 评论 -
ArrayList和LinkedList各自实现和区别
之前做项目经常会用到集合,对于ArrayList和LinkedList的使用,也没有做过多的思考,现在开始看java集合的源码,发现ArrayList和LinkedList两者之间的区别还是很大的。这里根据自己看的集合源码和大神的博客分享对两者的实现和区别进行总结:1、java集合源码分析(推荐给看源码很吃力的朋友们): https://www.cnblogs.com/skywang12345...转载 2018-09-05 10:21:53 · 521 阅读 · 0 评论 -
笔试题:写出 字符abc 的全排列(不重复)和所有组合
1、问题一:给定一个字符串,满足正则表达式[a-zA-Z]+,打印 这个字符串的全排列,结果顺序不限。例如,输入为abc,输出为:abc acb bac bca cba cab递归解法一:import java.util.ArrayList;import java.util.List; public class LetterCombination { public s...原创 2018-08-29 16:25:22 · 5284 阅读 · 0 评论 -
前台js传入map类型的json数据,后台java接收详解
今天项目中遇到一个问题:前台采用ajax的post提交方式将 Map<String,List<Map<String,String>>> 类型的数据传入后台,后台进行接受,然后解析。我的json结构是这样的:{ "templateName": "我成功了", "radios": "weight", "locPro&qu原创 2018-08-31 12:58:50 · 7538 阅读 · 0 评论 -
JVM的内存区域划分
本文转自:https://www.cnblogs.com/dolphin0520/p/3613043.html JVM的内存区域划分 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,...转载 2018-08-27 11:06:54 · 188 阅读 · 0 评论 -
LeetCode之 16.最接近的三数之和 (3Sum Closest )总结
生命不止,刷题不息~~~~~~1、题目:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = ...原创 2018-07-30 22:11:35 · 347 阅读 · 0 评论 -
笔试题之——栈问题(列车车厢编组问题)
滴!又是一个笔试题总结!1、题目说明:铁路货车编组站如图显示,A点有K节车厢,所有车厢都须从A点进入,经C点道岔后,重新编组到B点。如:A点有车厢1-2-3(左—右),经C编组,到B点后,可以被编组成1-2-3,1-3-2,2-1-3,2-3-1,3-2-1等几种可能的编组。问:A有车厢编组(左—右)1-2-3-4,列车在经过编组后,能否在B点编组成4-1-3-2的顺序,请给...原创 2018-10-11 09:00:56 · 3605 阅读 · 0 评论 -
java 新生代Eden与两个Survivor区的解释
原文链接:聊聊JVM的年轻代最近在学习《深入理解java虚拟机》,在垃圾收集器这一部分对于Eden和Surviror不太清晰,发现一篇讲的很棒的博客,分享给大家,一起学习一下! 1.为什么会有年轻代我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找...转载 2018-10-12 11:22:51 · 2507 阅读 · 0 评论 -
动态代理两种实现方式:jdk动态代理和cglib动态代理
废话不多说,直接上代码!1、首先是接口及其实现方法:package proxy.test;public interface UserService { public String getName(int id); public Integer getAge(int id);}package proxy.test;public class UserServiceImpl...原创 2018-10-31 14:36:59 · 375 阅读 · 0 评论 -
微信支付接口对接模式一和模式二的区别及选择
模式一和模式二提供了两种不同的能力,适用于不同的场景,看商户具体的需求。1、两种模式,在支付的流程中,有一定的共同的流程: 1)生成订单。 2)用户支付。2、差别在于: 模式一,先扫码,再生成订单。 模式二,先生成订单,再扫码。3、而 生成订单,代表着 本次支付给商户的金额是否是已经确定了。 在模式一中,用户扫描的二维码,此时可以还没有确定实际要...转载 2018-10-20 11:27:51 · 2277 阅读 · 0 评论 -
某找房网 笔试题(二)
一、题目说明:傻傻的搏斗小智和小春两个游戏菜鸟要进行电竞搏斗,小智有X点HP,每次攻击便使对方丢失A点生命值,每次攻击完后需要冷却C秒,小春有Y点HP,每次攻击会使对方丢失B点生命值,每次攻击完后需要冷却D秒。玩家HP小于等于0时便死亡,若小智最终存活,则输出XIAOZHI,若小春最终存活,则输出XIAOCHUN。若两者一起死亡,则输出TIE。二、样例输入 41 2 3 ...原创 2018-10-17 20:04:57 · 308 阅读 · 0 评论 -
某找房网 笔试题(一)
一、题目描述: 给你一个合法的算术表达式,只包含整数和加号,减号。但整数不一定都是十进制的数,可能是八进制,十六进制,规定包含前缀0x的是十六进制,包含前缀0的是八进制,其他情况是十进制。现在你能计算出这个式子的最终的值吗?说明:输入的表达式式子只会是整数+(-) 整数 +(-) 整数...... + (-)整数 保证给定的整数不会超过16位(保罗前缀0或者前...原创 2018-10-17 17:32:19 · 250 阅读 · 0 评论 -
贪心算法典型应用之——以最小前进次数到达数组最后一个位置
1、题目说明:输入一个所有元素都是自然数的数组,初始状态你的位置位于第1个元素,每个元素的位置表示1步,当前所在位置的元素数值表示你下一次前进能够移动的最大步数,你的目标是以最小的前进次数从数组的第一个元素移动到数组的最后一个元素位置,你需要输出每次前进的步数。2、举例:输入 : 2 3 1 1 4输出 : 1 3 3、思路分析:首先,我们通过分析题意,可以看出该...原创 2018-10-10 15:29:58 · 1913 阅读 · 2 评论 -
leetcode 70. 爬楼梯问题(多种方法总结)
爬楼梯问题有多种出现形式,有不固定最多可跨阶数(即最多可跨阶数为M,M作为方法参数)的,有固定每次最多可跨2阶的。接下来,我就对以上两种出线形势分别进行分析。(一)固定每次最多跨越2阶,使用非递归方式实现:1、问题描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。...原创 2018-10-08 21:14:25 · 4664 阅读 · 0 评论 -
动态规划解最长上升子序列(全)
1、动态规划问题导览:最长上升子序列(longest increasing subsequence)问题,也可以叫最长非降序子序列,简称LIS。是动态规划算法的一个经典应用。 我们都知道,动态规划的一个特点就是当前解可以由上一个阶段的解推出, 由此,把我们要求的问题简化成一个更小的子问题。子问题具有相同的求解方式,只不过是规模小了而已。最长上升子序列就符合这一特性。我们要求n个数的最长上...原创 2018-10-08 18:31:25 · 5428 阅读 · 0 评论 -
【转载】堆和栈的区别,很全的总结
本文转载自:https://blog.csdn.net/pt666/article/details/70876410/在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分: Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一...转载 2018-09-28 17:10:53 · 4897 阅读 · 1 评论