Java后台开发面经 楼主作为入职蚂蚁3年的码农,之前也在博客里分享了一些自己实习和秋招的经验~现在已经3月份,蚂蚁金服2021届春招和2022届暑期实习的招聘已经开始了,我们组今年的HC比往年要多很多,大家有兴趣可以试一试~...
使用maven完成slf4j的配置 使用log日志系统而不是使用System的意义:1,打印不可控制如果不需要日志,那么使用system需要删除或者删除所有的相关代码,而log可以通过配置文件控制开关.2,没有分级log至少有5级,可以分层显示日志,而system一股脑打印出来.slf4j介绍:slf4j不是一个真正的日志实现,而是一个抽象层,它允许你在后台使用任意一个日志类库。如果是在编写供内外部都
OAuth2的介绍 Oauth2 诞生背景在传统的客户端-服务端模型中,第三方应用如何查询和操作服务端的受保护的资源是一个问题 简单举几个例子,用户浏览一个网站,想要在其网站上留言,往往需要进行注册登录操作,由于流程过于复杂,提高了用户的操作成本.再比如说第三方机构想要在用户许可后获得其信用积分,或者在其社交平台上发布消息.显然用户不能直接在第三方机构上输入用户信息.Oauth的诞生可以解决上述两个问题.
使用maven完成spring aop的xml配置 首先确定本地maven环境配置ok,并与eclipse集成.NEW->Other->Maven->Maven Project接下来就是maven的groupid,artifact id,version的填写groupid:所在项目组的名字,一般是公司url倒置+项目组名artifactid:简单来说就是项目名version:版本号可以用默认的接下来一路按next
南邮大作业----文本处理与加密软件 (一)课题内容 文本处理与加密软件要求首先把一个文本中满足特定特征的文本提取出来,然后对提取出来的文本进行加密处理。(二)课题要求(1)设计满足特征的文本的文法;(2)词法分析模块结构清晰,可以借助Lex或JavaCC、Antlr等工具自动生成词法分析程序;(3)选择某种加密算法对所提取的文本进行加密;(4)界面美观。这里我们采用hanlp的汉语言处理包http:/
mybatis的简单实例 最近开始学习mybatis,感觉非常好用。首先创建Mybatis_test项目,在src下创建lib文件夹,将mybatis的jar包和mysql连接的jar包添加到项目路径随后使用mysql在mybatis的database下创建student表,具体内容如下: create table student( -> id int auto_increment, -> na
redis的消息队列和发布订阅demo 以前做online judge的时候用mysql+时间戳做消息队列,现在redis提供了一种现成的消息队列的模式,使用redis队列可以直接模拟消息通信的方式,在将并发转化为非并发时非常有用,同时通信的双方不需要关注彼此的信息,实现解耦合。比如用户提交了代码,我后台往消息队列压入题号,用户号,提交号,剩下的就交给判题脚本处理,判题脚本不需要了解其他信息,同时后台也不需要等待判题脚本执行结束,而是直
spring常见错误总结 spring常见错误总结 http://blog.csdn.net/sgx425021234/article/details/8979445spring缺少常见jar包错误总结 http://www.cnblogs.com/xiaota/p/3728821.html5
spring框架学习(一):设值注入和构造注入 之前一直都是用jsp+servlet+javabeans搭建网站应用,遂总结下今天学习的spring框架的内容相应的jar包:http://download.csdn.net/detail/fengsigaoju/9835903为了统一,在src下建立一个包命名为spring.firstdemo我们首先假设一个卖票的场景,有一个实体类ticket,其有3个属性,起点终点和票价。
阿里,华为,腾讯,小米2017实习面试经历 首先自我介绍,非985,非211学校,主要从事java后台开发,大一至现在做过两个项目(都不深),有一段去小公司的实习经历,今年刚到学校2月底才开始准备实习,陆续投了小米(我是米粉),阿里,华为,腾讯,京东,网易,今日头条等一系列互联网公司,小米,腾讯,今日头条挂一面,网易笔试过了和华为冲突了,去华为面试了,只拿到了阿里的java后台offer,华为应该算是口头offer吧(不过据说城里套路深,有
垃圾收集器和杂七杂八 由于jdk版本处在高速迭代中,java有多种版本的收集器,比如serial收集器,ParNew收集器,cms收集器,G1收集器.串行回收与并行回收: 串行回收就是同一时间只能有一个线程操作 并行回收就是同一时间有多个线程同时操作,但即使是并行回收,也仅是最大限度减少stop-the-world的时间.Serial收集器:单线程,分为Serial新生代收集器和Serial老年代,
java类加载过程 java---(编译)-->.class文件(字节码文件)--->(jvm处理)---->二进制机器码jvm加载过程为:1,装载,查找和导入Class文件.2,链接: 1,验证,确保Class文件中的二进制信息符合当前虚拟机的要求。 2,准备:为类变量分配内存并设置类变量初始值( 这时候分配内存和初始化的仅是static变量,实例变量需要在类加载时分配在java堆中
数组分割 我是不是写过的....记不清了,反正博客没找到,记录一下.dp[i][j]代表:用i个物品装空间为j能否装的下,状态转移方程:dp[i][j]=dp[i-1][j-w[k]](如果dp[i-1][j-w[k]]为真)import java.util.Scanner;public class 数组分割2 { public static void main(String[]
单链表的翻转 一次解决,还是蛮顺利的。大致思路就是用三个指针模拟。这篇博客已经通过画图讲的很清楚了http://blog.csdn.net/feliciafay/article/details/6841115import java.util.Scanner;class ListNode{ int data; ListNode next;}public class 单链表翻转 { pri
编程之美之寻找发帖水王 简单来说就是求一个数组中出现次数超过一半的次数的数(保证存在),最容易想到的就是先排序,再返回中间位置的值。优化方式就是每次删去两个不相等的数,最后找不到不相等的数,那么最后剩下的数就是这个出现次数超过一半的数。考虑到每次寻找两个不相等的数比较困难,我们可以借助种思想换种写法。用candidate代表当前候选的数,time次数,从头往后遍历,如果出现一次就time+1,不相等就time
java序列化分析 序列化的意义:序列化的作用就是将对象转化为字节流,反序列化就是将读取的字节流恢复为对象,序列化是传输对象的一种手段(比如socket通信)实现序列化有两种方式,一种是对象实现Serializable接口,另一种是实现externalizable接口.实现Serializable接口会自动将其所有成员序列化,实现externalizable需要程序员指定成员序列化.首先展示实现Serli
2017华为实习机试题(java) 题目1: 编写一个reverseadd函数,实现两个数倒置后再求和的功能,比如输入123,456就是求321+654,输出975 注意输入100,200输出3,(自动去除开头的0),超过范围输出-1 思路: 输入数据带空格,先切割出整数,然后用stringbuidler翻转,转成数字自动去除0,求和,全程自带的函数.import java.util.Scan