项目08-05

T1:

  1. ZooKeeper的应用:管理集群,实现分布式锁,其他没有深入了解,ok,看书;
  2. ZK选leader的过程,投票;如果选主的过程中有一台服务器宕掉了,会发生什么?过半数投票一致leader就产生了;
  3. flume接平台数据使用了socket编程:通信的过程:server端:socket-bind-listen-accept-read/write-close,更底层的实现原理,丢数据、丢包、包重传,怎么实现??
  4. Java容器有哪些?介绍常用的,区别,JUC包:ConcurrentHashMap、CopyOnArrayList、阻塞队列、线程池;
  5. java的反射机制,了解动态代理时了解了一点,java使用JDBC连接数据库,class.forName()。
  6. 怎么学习java:书、技术博客、源码:引出java String类所做的优化:编译时,对字符串常量进行处理,会存储在常量池中,String str = "abc"+"cde",编译时就会拼接为abccde;
  7. Java多线程,线程池的理解,巩固;多个线程间通信,就是wait、notify
  8. 算法题:走迷宫,有障碍物,输出从入口到出口的路径:如果,已知障碍物聚集在一起,有大致范围,怎么改进;
  9. Linux常用命令,为什么不自己写shell;
  10. OK,整个过程中说的每一句话,都会让别人改变对你的印象,so,注意力要集中,要集中;

B1:

  1. 设计问题:设计分布式系统,
    • 为什么使用分布式:单点故障、数据量太大;
    • 首先如何划分、分发数据:无状态的,按照业务逻辑分配,或者某个key范围的文件存储在一台机器上;有状态,用哈希,一致性哈希,迁移代价和负载均衡性都比较理想;
    • 单点故障,用集群,多台机器,机器之间角色?master-slave?如果选择master-slave,master存储元数据信息,master的容错性:用secondary master,他们之间数据怎么同步,我说借鉴zk的事务日志和全量内存数据的快照;
    • 那么,slave和master之间的通信,slave处理完一条消息之后给master发送ack,secondary要立即同步此ack吗/
    • 逻辑清晰,有条理,先是为什么这么做,有什么技术难点需要解决,然后才是怎么办;
  2. 写sql语句;
  3. 讲解布隆过滤器的原理,位数组+哈希;
  4. java容器:Arraylist实现扩容;hashmap当插入数据量太大时,频繁冲突,链表越来越长,检索性能差:怎么改进?选择好的哈希函数,数组容量大一点,其他?JUC里面的ConcurrentHashMap,了解,线程安全,锁分离,分段加锁,未使用过;
  5. 线程和进程的区别,通信方式有哪些?如果通过共享文件通信的话,怎么保证进程的互斥访问?参考:http://blog.chinaunix.net/uid-23381466-id-295750.html  http://www.cnblogs.com/applebunny/archive/2012/07/11/2586483.html
  6. Linux命令:查找当前文件夹下java文件的代码总行数 find . -name "*.java" | wc -l
  7. 设计模式,知道哪些,用过哪些?为什么会有设计模式,大型工程,类之间的关系复杂;什么情况下需要使用单例模式?http://blog.csdn.net/jason0539/article/details/23297037/  http://www.cnblogs.com/whgw/archive/2011/10/05/2199535.html
  8. TCP、UDP协议,DNS属于应用层协议,基于UDP;什么情况还可以使用UDP,视频传输,丢一帧没关系:
    • 两种协议都是传输层协议,为应用层提供信息载体。TCP协议是基于连接的可靠协议,有流量控制和差错控制,也正因为有可靠性的保证和控制手段,所以传输效率比UDP低;UDP协议是基于无连接的不可靠协议,没有控制手段,仅仅是将数据发送给对方,因此效率比TCP要高。
    • 基于上述特性,不难得到结论,TCP协议适用于对效率要求相对低,但对准确性要求相对高的场景下,或者是有一种连接概念的场景下;而UDP协议适用于对效率要求相对高,对准确性要求相对低的场景。
    • 举几个应用的例子。TCP一般用于文件传输(FTP HTTP 对数据准确性要求高,速度可以相对慢),发送或接收邮件(POP IMAP SMTP 对数据准确性要求高,非紧急应用),远程登录(TELNET SSH 对数据准确性有一定要求,有连接的概念)等等;UDP一般用于即时通信(QQ聊天 对数据准确性和丢包要求比较低,但速度必须快),在线视频(RTSP 速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还是能接受的),网络语音电话(VoIP 语音数据包一般比较小,需要高速发送,偶尔断音或串音也没有问题)等等。
    • 作为知识的扩展,可以再说一些其他应用。比如,TCP可以用于网络数据库,分布式高精度计算系统的数据传输;UDP可以用于服务系统内部之间的数据传输,因为数据可能比较多,内部系统局域网内的丢包错包率又很低,即便丢包,顶多是操作无效,这种情况下,UDP经常被使用。
  9. OK,开始代码题:
    • 说思路:两个栈实现一个队列,入队、出队的操作。如果栈满了怎么办,什么情况必须丢数据(stack2中有数据时,不能破坏顺序)?
    • 说思路:实现一个可以取最大值的栈,用辅助栈保存每个元素目前对应的最大值,出栈时同时出一个最大值,辅助栈栈顶始终是当前所有元素的最大值;入栈时,更新最大值;
    • 代码实现:二位数组,从左上角到右下角,总共多少种走法,如果中间有障碍物;leetcode中的unique path。注意起点的初始值:如果起点就是障碍点怎么办;http://blog.csdn.net/nutcc/article/details/10051851

B2:

  1. 严肃的面试官;
  2. 介绍项目,画架构图;socket未close的问题,程序的日志非常重要,可以调研java 日志
  3. 介绍CAP理论,举例子证明;介绍分布式协议,2PC;
  4. java中的Error、Exception、RuntimeException的关系,类之间的关系:举了常见的例子,但是关系自己不明确;所有的异常类均继承自Throwable,所以Error也是可以捕获的;进一步学习:http://blog.csdn.net/woshixuye/article/details/8230407   http://blog.csdn.net/maggiedorami/article/details/7936028
  5. Callable接口,有返回值,与Runnable的区别;
  6. 垃圾回收,什么时候进行回收,full gc、minor gc、major gc的对应关系,自己总结一下;
  7. G1 gc??
  8. LInux:软连接和硬链接的区别:ln -s;OK;
  9. inode,Linux中的文件系统的组织;
  10. 算法题:n个数组的笛卡尔积,递归;
  11. 积极思考,联系已知的知识,confidence;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我的电脑显卡是NVIDIA CUDA 11.6.114 driver,win10,64位的,在安装Anaconda时,有如下几个版本:Anaconda-1.4.0-Windows-x86_64.exe 241.4 MiB 2013-07-04 17:58 Anaconda-1.5.0-Linux-x86.sh 238.8 MiB 2013-07-04 18:10 Anaconda-1.5.0-Linux-x86_64.sh 306.7 MiB 2013-07-04 18:22 Anaconda-1.5.0-MacOSX-x86_64.sh 166.2 MiB 2013-07-04 18:37 Anaconda-1.5.0-Windows-x86.exe 236.0 MiB 2013-07-04 18:45 Anaconda-1.5.0-Windows-x86_64.exe 280.4 MiB 2013-07-04 18:57 Anaconda-1.5.1-MacOSX-x86_64.sh 166.2 MiB 2013-07-04 19:11 Anaconda-1.6.0-Linux-x86.sh 241.6 MiB 2013-07-04 19:19 Anaconda-1.6.0-Linux-x86_64.sh 309.5 MiB 2013-07-04 19:32 Anaconda-1.6.0-MacOSX-x86_64.sh 169.0 MiB 2013-07-04 19:47 Anaconda-1.6.0-Windows-x86.exe 244.9 MiB 2013-07-04 19:56 Anaconda-1.6.0-Windows-x86_64.exe 290.4 MiB 2013-07-04 20:09 Anaconda-1.6.1-Linux-x86.sh 247.1 MiB 2013-07-05 08:34 Anaconda-1.6.1-Linux-x86_64.sh 317.6 MiB 2013-07-05 09:20 Anaconda-1.6.1-MacOSX-x86_64.pkg 197.3 MiB 2013-07-05 10:05 Anaconda-1.6.1-MacOSX-x86_64.sh 170.0 MiB 2013-07-05 12:20 Anaconda-1.6.1-Windows-x86.exe 244.4 MiB 2013-07-05 12:29 Anaconda-1.6.1-Windows-x86_64.exe 289.9 MiB 2013-07-05 12:49 Anaconda-1.6.2-Windows-x86.exe 244.4 MiB 2013-07-10 06:19 Anaconda-1.6.2-Windows-x86_64.exe 289.9 MiB 2013-07-10 07:04 Anaconda-1.7.0-Linux-x86.sh 381.0 MiB 2013-09-20 01:04 Anaconda-1.7.0-Linux-x86_64.sh 452.6 MiB 2013-09-20 02:49 Anaconda-1.7.0-MacOSX-x86_64.pkg 256.7 MiB 2013-09-20 05:04 Anaconda-1.7.0-MacOSX-x86_64.sh 223.3 MiB 2013-09-20 11:00 Anaconda-1.7.0-Windows-x86.exe 280.6 MiB 2013-09-20 11:11 Anaconda-1.7.0-Windows-x86_64.exe,请问我应该安装哪一个?
07-24

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值