V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  woyixinyiyi  ›  全部回复第 6 页 / 共 6 页
回复总数  116
1  2  3  4  5  6  
2019-04-28 15:06:14 +08:00
回复了 woyixinyiyi 创建的主题 求职 北京 2 年 Java 求职。主要负责支付代付模块
@ft7138 请留下联系方式
2019-04-28 15:05:44 +08:00
回复了 woyixinyiyi 创建的主题 求职 北京 2 年 Java 求职。主要负责支付代付模块
@riverphoenix 你好 已经在简历上更新了电话,请在刷新下那个链接
2019-04-28 14:15:26 +08:00
回复了 woyixinyiyi 创建的主题 求职 北京 2 年 Java 求职。主要负责支付代付模块
@wplct 谢谢
2019-04-28 14:15:02 +08:00
回复了 woyixinyiyi 创建的主题 求职 北京 2 年 Java 求职。主要负责支付代付模块
谢谢大家。全真实经历,无任何包装。电话我私信给大家。
2019-04-25 20:01:20 +08:00
回复了 melonzzz 创建的主题 职场话题 [咱也不敢问系列]菜鸡的蚂蚁全挂面经
蚂蚁金服财富 第一次电面

1,解释下乐观锁悲观锁
乐观锁就是 我不相信你正在改数据,我先记录下 版本,我更新的时候,看看版本改了没,没改我就该,改了我再试下
悲观锁,世界上虽然好人多,虽然我不害人,人也别来烦我,先把门锁了,其他的给我门外候着
2,JVM 判断对象是否回收?
周志明深入 jvm 的书中谈到了两种,引用计数法,和可达分析法(判断对象是否还有引用)

3,反射能获得类里面方法的名称吗?参数名称呢?参数类型呢?
我这边有个 controller,打印请求参数,获取到当前的方法名称,然后是参数名称,类型参数没获取,应该是也能获取的。类
spring 中有现成的类库支持,获取参数名称,貌似 jdk8 我记得好像通过一个注解可以获取?
LocalVariableTableParameterNameDiscoverer localVariableTableParameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer();
return localVariableTableParameterNameDiscoverer.getParameterNames(method);




4, 动态代理的实现方式?CgLib 和 jdk 的代理有什么区别?
cglib 是基于 asm 实现的,是创建当前类的子类来实现的。
而 jdk 的是必须要实现固定的接口。
都是在对原有的对象进行了一层封装成一个代理对象,返回的是代理对象,执行目标方法前先执行代理方法。

5,分布式锁有哪些主流实现方式?redis 和 zk 锁有什么区别?
我工作中用不到。。。
但是私下了解过,redis 可以基于 setnx,redis 的 set 和设置过期时间可以封装在函数中是原子操作,
那么问题来了?如果设置的过期时间过长,应用挂了,锁释放不了咋弄呀,设置时间过短,没执行完咋办,求打醒。
问题有来了? 如果正好主节点 a 写入,这个时候挂了并且数据没有同步到从节点,那么其他也可以获取锁,求打醒。最好回答的时候能贴出比较好的 解决 blog,thank
zk 的锁的话,工作中也没用 zookeeper,之前搭建过 demo,影响某个客户端 去创建一个带有序号的节点,如果创建成功的话,那么把当前节点绑定到上一个节点(监控上个节点的删除,),
当前线程阻塞,上个节点释放的时候通知当前这个节点的 process 方法,解除阻塞。
感觉区别在于 zk 只有一台能接受写入和删除,可能并发有问题,redis 的并发回好点。

6,ThreadLocal 作用是什么?说下用法
目前用到的是减少参数的传递,或者有什么需要是使用当前线程的数据存储,
set,get,remove,不清楚有啥其他用法了,

7,设计秒杀系统要考虑哪些点? 数据预热,CDN 缓存,超卖问题,流量削峰从性能角度上如何保证秒杀系统稳定? 觉得应该是预热,削峰,库存扣减的操作放到缓存,减少数据库的访问
貌似都是我盲点,需要继续学习?

8,A,B 系统转账如何保证分布式数据一致性?
目前我这项目中用的时候中充值模块中 充值后 给账户模块加款,类似这个模型吧

首先更改本地状态表为处理中,然后 发一个 ons 消息自己收,
如果消息发出去了没收到?,几分钟后遍历处理中的状态,走 http 请求
发了也收到了,修改状态成功,请求账户报错,ons 有确认机制,回滚这条消息,然后继续收,印象中貌似可以是收 15 次吧。
一直失败咋办,凉拌 手动处理,没遇到过还。

基于消息的事务最终一直模型,ons 有相应的 api
先发一个 prepare 消息,然后执行本地业务逻辑,如果本地一直没提交,rocketmq 定时回查,

之前也看过其他的 tcc 的解决方案,只是了解过,大概是先掉接口 先 prepare 是否能提交,能提交的话 调用所有提交接口,如果中间有失败的话,那么调用相应的 cancel 接口
一个普通的接口 要拆成 prepare,commit,cacel,想想都麻烦。。。

9
你有什么想问的?
◊我肚子饿了有什么吃的 么。
2019-04-25 19:32:09 +08:00
回复了 melonzzz 创建的主题 职场话题 [咱也不敢问系列]菜鸡的蚂蚁全挂面经
@eamon666
7,select * from t where a=? and b>? order by c limit 0,100 如何加索引
如果是我建的话 index ( a,b,c )
根据 ab 查询到的数据,已经把 c 进行了排序了。。。

这个你理解有问题,他是考察你的最左匹配原则 正确答案应该是 acb 或者 cab.

对数据库这块不太熟悉,有相应解决这道题的 blog 的能发的看下吗,
acb 的话个人理解只会走 索引 a
如果是 cab 的话 应该就不会走索引了吧,求指点
2019-04-25 19:29:16 +08:00
回复了 melonzzz 创建的主题 职场话题 [咱也不敢问系列]菜鸡的蚂蚁全挂面经
@melonzzz 非常感谢 发出来 让大家一起成长,我没说用二分法查找,直接暴力循环
2019-04-25 18:46:13 +08:00
回复了 melonzzz 创建的主题 职场话题 [咱也不敢问系列]菜鸡的蚂蚁全挂面经
蚂蚁金服财富事业群一面,我当面试题做了很多不会的 求指点

1,TreeSet/HashSet 区别
TreeSet 使用的是 treeMap,看是传入了比较器 comportor,如果没传入,看 key 是否实现了 comparable 接口
区别在 treeset 是拍好按照 key 排序的,hashset 使用的是 hashmap 没有排序

2,HashMap 如何解决冲突,扩容机制
hashmap,是根据 hash 函数取模定位到一个数组索引,如果该地方有值,那么久以链表( 1.8 红黑树)的显示存放数据,
扩容设计到扩容因子,好像默认的是 0.75*当前数组的大小,大于这个值就需要扩容了。原数组长度乘 2

3,ConcurrentHashMap 如何做到高并发的
jdk1.7 好像是根据分 segment 来实现的,部分 key 归到一个 segment,没看 1.7 的源码
jdk1.8
在初始化 table 的时候,第一个进入的线程使用 cas 把 sizeCtl 设置为-1,其他线程发现 sizeCtl 的值小于 0,就放弃时间片,知道 table 初始化完成
存放值 put,当数组对于值为空,(n-1)&定位到数组下标,如果当前数组对于的值为 0 的时候 cas 放入即可,
不为空,使用 synchronize 锁头结点,也就是理论上吧 map 的同步锁最多有,扩容因子乘以数组大小了


4,线程池平常怎么用
new 线程池呗,还能怎么用,自己写?结合到自己项目就是
executorService = new ThreadPoolExecutor(4, 6, 10, TimeUnit.SECONDS,
new ArrayBlockingQueue<Runnable>(maxCheckNumber) ,new ThreadFactory() {
AtomicInteger atomicInteger = new AtomicInteger(0);
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r,"checker-thread-"+atomicInteger.incrementAndGet());
if (t.isDaemon())
t.setDaemon(false);
if (t.getPriority() != Thread.NORM_PRIORITY)
t.setPriority(Thread.NORM_PRIORITY);
return t;
}
},new ThreadPoolExecutor.DiscardPolicy());
背景,线上是 4 核心 8g 内存的机器,然后这个是定时查询第三方接口的线程池。
初始化 4 个核心线程,最大为 6,存活时间 10s,设置一个定长的队列,然后命名线程名称,由于是查询任务,任务多久扔掉。

5,多个线程等待到某一节点然后统一放行有几种实现方式?
项目中久使用到了基于 CountDownLatch 的闭锁,基于 aqs 实现,维护一个 state,new 的时候初始化好线程数量,
然后线程执行的时候执行到 await 的时候,就把这个线程塞到一个双向队列中就完了,countdown 的时候用 cas 吧 state 减掉 1,为 0 就让哥哥的双向队列中的线程开始执行

6,数据库索引结构
mysql 常用 b+

7,select * from t where a=? and b>? order by c limit 0,100 如何加索引
如果是我建的话 index ( a,b,c )
根据 ab 查询到的数据,已经把 c 进行了排序了。。。

8,什么是聚簇索引和非聚簇索引
聚簇索引,mysql 的 innodb 使用的主键是聚簇索引,数据放在叶节点,数据是按照索引顺序排列的,索引和数据在一起。
如果非主键索引查询,也就是辅助索引,根据索引里面的值满足的话,可以不用回表,如果不满足,需要取出主键,在来回表使用主键查询。

非聚簇索引 myisam 索引文件和数据分开

9,介绍下 Fescar/了解 CAP 吗?redis 里的 CAP 是怎样的?
fescar 什么鬼,原谅我没听过,面试官你帮忙普及普及呗,
redis 里的 CAP 是怎样的 你要为什么呀
10,如何理解幂等?项目中接口的幂等是如何做的?
就是多次调用方法或者接口,除第一次执行外正确返回外,其他调用不会影响结果,
支付中的回调,先判断订单状态,未处理,则该状态,其他就不就行处理

11,算法题:两个有序的 list,求交集
嗯我 两层 for 循环 o(m*n),就问你怕不怕。
怕?
listm,listn
两个集合各设置一个指针 依次移动,每次都移动最小集合那边的指针 ,的一个值和另外一个比较,相等保存
2019-03-13 10:53:07 +08:00
回复了 woyixinyiyi 创建的主题 Java Java 虚拟机的思维导图
@lskjdfgl
项目挂了,重启了可以访问了。
2019-02-26 12:25:25 +08:00
回复了 smeraldo 创建的主题 Java 一个 service 引用几十个 dao 如何优化?
同意 @zhix
我这边也有个类似的,部分 service 有自己的缓存配置,

在定时器类,如果每个都去调用每个 service 的清空缓存,调用 service 太多,定时器发布事件,各类自行清空呗。
2019-02-16 20:41:16 +08:00
回复了 woyixinyiyi 创建的主题 Java Java 虚拟机的思维导图
下载 xmind 吗
http://123.206.92.114:8080/tyml/image/java 虚拟机.xmind
java 虚拟机.xmind 有空格,java 后面有空格去掉就行
2019-02-16 00:31:02 +08:00
回复了 woyixinyiyi 创建的主题 Java Java 虚拟机的思维导图
java 虚拟机.xmind
v2ex 保存的时候 中间加了空格 去掉就好
2019-02-16 00:11:55 +08:00
回复了 woyixinyiyi 创建的主题 酷工作 Java jvm 虚拟机思维导图知识点,祝各位面试顺利
第一次发帖 不好意思,忘记发他 地址了
2019-02-16 00:11:08 +08:00
回复了 woyixinyiyi 创建的主题 酷工作 Java jvm 虚拟机思维导图知识点,祝各位面试顺利
2019-01-31 09:55:29 +08:00
回复了 via 创建的主题 生活 女朋友非要让在她们老家(四线)买房,求打醒
感觉似曾相识的经历,一把辛酸泪。
毕业的时候,老婆家里说孝感很好,我家人也说孝感很好,,然后就买了
,自己再一线工作,孝感的房子从来没住过,连装修的愿望都么有。
14 年买的 5000 现在 8500 (孝感)
16 年买的 12000 现在 18000 (已经涨了一波才买的,15 年也就是 8500 的价格,武汉)。
卖掉武汉的房子,轻轻松松以后可以回去养老,
卖掉老家房子,你就只能仰望大武汉了
周志明的深入理解 java 虚拟机第二版
看了两遍这本书,针对是醍醐灌顶,很多概念
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2651 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 02:49 · PVG 10:49 · LAX 18:49 · JFK 21:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.