知识总结2

来源:互联网 发布:qq播放器官方下载 mac 编辑:程序博客网 时间:2024/05/16 16:33
  1. 进程间通信的方式:socket、管道、消息队列、共享内存(最快的方式)、信号量
    • 父子进程通信的方式:进程之间的8种通信方式
    • 应用系统之间共享数据用什么:文件、数据库、消息队列kafka等;
  2. 同一个进程中的线程不共享的的部分是:
    • 线程的ID、栈空间、信号屏蔽码(eg,nohup)、错误返回码;
    • 参考链接:同一进程的线程共享的资源和独有的资源
  3. 哪种方式在读取磁盘上多个顺序数据块时的效率最高?
    • 选择题:选项:中断、DMA、通道、程序直接访问、循环检查io、以上方式都一样;
  4. 零拷贝:参考链接:linux中的零拷贝技术
  5. int i=0; i=i++;System.out.println(i)输出结果为?i++的优先级高,i为1正确答案是0;
    • 参考:i = i++;
    • java中i++的优先级更高,先自增,之后赋值,只是自增前先把i未增加的原始值入栈保存了,增加后将栈内的原始值弹出赋值给i;
  6. 手写快速排序;
  7. 15*4=112;几进制的时候成立:六进制
  8. 手写翻转链表;递归和迭代两种
  9. 数据库:id、姓名、分数,找出排名第三的学生姓名:
    • 参考:SQL语句查询排名第10的学生姓名
    • 参考:SQL TOP, LIMIT或ROWNUM
    • 如果该表的数据量特别大, 怎么优化:建立索引
    • 数据库的优化技术:拆分表:存在多台服务器上;参考:数据库做拆分的几种方式 数据库优化-水平拆分 垂直拆分  数据库SQL优化大总结之 百万级数据库优化方案
    • 索引使用什么数据结构:B树、B+树,不太了解,主动说到了BST树,为什么用树:操作的时间复杂度低,与树的高度成正比,那么多叉树理论上应该比二叉树的高度低;
  10. java中,List类的sublist,得到某个范围的子list,那么原始list的值改变,他会改变吗?理解sublist方法的内部实现原理;
  11. 简单介绍kafka:从为什么使用消息队列开始,讲解其特性,及它的设计机制
  12. 海量数据问题:大量数中(内存装不下),寻找一个指定值是否在其中:
    • 将大文件利用hash分解成小文件,每个小文件内的数在一定范围内,之后将小文件中的数进行排序,查找target;
    • 更好的方案,用位图bitmap;
    • 要了解位图和布隆过滤器;
    • 这些数中找Top100,使用最小堆;
  13. buffer和cache的区别:
    • 宏观上的比较,buffer:输入输出的缓冲区,累积到一定数量,才flush写磁盘,或者read返回给应用程序;
    • cache:缓存,容量有限,需考虑命中率和缓存替换算法,以及一致性等额外因素;
  14. 最近看什么书、技术博客,学到什么、来源
  15. 本科的课程中哪一门学的最好,怎样做到的?
    • 引出了J2EE课程设计实现的公交管理系统:
    • 类之间的关系,怎么设计,以及数据库表的设计:一个类中存在另一个类的对象,组合,存在多个,则用list等数据结构合理组织,考虑扩展性;数据库表,存在一个关联两个实体表的关系表;
  16. java语言的特性,可否接受工作中使用一门新的语言?
    • 面向对象VS面向过程;
    • 垃圾回收机制,减少代码层面的内存泄漏;
    • 很多封装的类,eg容器类、线程池;
  17. 程序开发完成,即源码到可执行文件之间的过程:
    • 预处理、编译、连接等;
    • 编译执行、解释执行,java属于哪一种;
    • java编译成为字节码,class文件,之后类加载器加载,加载之后会再次编译吗?
    • 调研、理解java代码的编译执行过程;
  18. TCP三次握手、四次挥手,为什么?
    • 参考链接:为什么TCP连接需要三次握手分开需要四次握手?
    • 因为关闭时,需要全双工、两端都关闭,不能只是单向关闭;
  19. 评价自己;
  20. 如何看待加班,当家人不支持的时候;
  21. 设计一个系统;注意考虑哪些???
  22. 举例子说明自己的学习能力强;
  23. 项目中遇到的难题,封装一下,有一个优化的思路;
1
0 0