Fork me on GitHub
To the moon

A Coder,a Programmer,a Developer


  • Home

  • Tags

  • Categories

  • Archives

  • Search

vue 入门一

Posted on 2018-12-17 | Edited on 2023-05-09 | In java

vue 最简用法: <!-- jsp文件 --><div id="app"> <h2>{{product}} is in stock</h2></div><script sr ...

Read more »

SocketDemo学习笔记

Posted on 2018-12-16 | Edited on 2023-05-09 | In java

一个简易的实现全双工通信的 Socket Demo 程序。

推荐阅读:
ServerSocket connection
Java 网络编程精解之 ServerSocket 用法详解一

Read more »

面经整理(好友投稿)

Posted on 2018-12-14 | Edited on 2023-05-09 | In interview

天猫Java一面

1. 常见集合类的区别和适用场景

List集合

ArrayList:

  • 基于数组来实现集合的功能,内部维护了一个可变长的对象数组,集合扩容时会创建更大的数组空间,把原有数据复制到新的数组中。随机访问快,插入和删除的效率低。

LinkedList:

  • 基于链表实现,数据的删除和插入快,随机访问的速度很慢。

####Map集合

HashMap:

  • 线程不安全,存储键值对,允许 key 和 value 为 null

ConcurrentHashMap:

  • 线程安全,不允许 key 和 value 为 null,使用的锁机制实现线程安全

TreeMap:

  • 线程不安全,依靠comparator或comparable实现key的去重,TreaMap是有序的
Read more »

面经整理3

Posted on 2018-12-14 | Edited on 2023-05-09 | In interview

部分题目来源:美团 java 后台 哈尔滨现场面试面经

1. 数据库主从同步、读写分离

主要用来提升数据库的并发负载能力。

  • 数据的热备;
  • 架构的扩展;
  • 支持更大的并发;

主从复制的步骤:

  1. 从库生成两个线程,一个 IO 线程,一个 SQL 线程;
  2. IO 线程去请求主库的 binlog,并将得到的 binlog 日志写入 relay log 文件中。主库会生成一个 binlog dump 线程,用来给从库的 IO 线程传 binlog;
    • binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息(查询不会有记录,只记录增删改)。在 my.cnf 中增加log_bin参数即可开启。
  3. SQL 线程,会读取 relay log 文件中的日志(从 Exec_Master_Log_Pos 位置开始执行),并解析成具体操作,来实现主从的操作一致,而最终数据一致。

缺点:

  1. 数据的实时性较差;
  2. 数据量大时,同步效率差;
  3. 同时连接多个数据库,容易引起混乱;
  4. 读具有高性能高可靠性和可伸缩。只读服务器因为没有写操作,大大减轻磁盘 IO 等性能问题;多个只读服务器可以采用负载均衡的方式实现可伸缩性。
  5. 写数据的分配一般采用哈希映射。
Read more »

面经整理2

Posted on 2018-12-13 | Edited on 2023-05-09 | In interview

美团一面

1. 判断回文

  1. 字符串转置,然后逐位比较;
  2. 字符串转置,直接 equals 比较;
  3. for 循环 length/2 次,首位和末尾逐次比较;

2. jvm,讲讲gc

jvm 将内存划分为:方法区、堆区、虚拟机栈、本地方法栈、程序计数器。

Read more »

高并发笔记(1)

Posted on 2018-12-10 | Edited on 2023-05-09 | In notes

多线程还是多看多理解,就不做笔记了吧,以下是重点的截图。

Read more »

interview(1)

Posted on 2018-12-07 | Edited on 2023-05-09 | In interview

网易考拉 java 凉面面经

1. 同步 异步 非阻塞 阻塞 bio nio aio

这题问的是网络 IO 模型。

以 IO 的读数据(read)举例,会经历两个阶段:
1)等待数据准备。
2)将数据从内核拷贝到进程中。

IO 模型主要分为五种:

Read more »

负载均衡(1)

Posted on 2018-11-28 | Edited on 2023-05-09 | In notes

1. 负载均衡技术介绍

  1. HTTP 重定向负载均衡
  2. DNS 域名解析负载均衡
  3. 反向代理负载均衡
  4. IP 负载均衡
  5. 数据链路层负载均衡
Read more »

大型网站技术架构——读书笔记(1)

Posted on 2018-11-25 | Edited on 2023-05-09 | In notes

《大型网站技术架构——核心原理与案例分析》 李智慧

读书笔记(1)

1. 技术演化

  1. 最初是应用程序、文件、数据库都在同一台服务器上完成最简单的网站结构。
  2. 为解决存储空间不足的问题,出现应用服务器、文件服务器、数据库服务器职责分开的情况。
    • 应用服务器主要处理业务逻辑,需要更快更强的 CPU;
    • 文件服务器需要存储用户上传的文件,需要更大的硬盘;
    • 数据库服务器需要快速磁盘检索和数据缓存,所以需要更快的硬盘和更大的内存。
      • 网站使用的缓存分为两种:应用服务器上的本地缓存(特点:响应快,但数据量小,可能跟程序争用内存资源)、缓存在分布式缓存服务器上的远程缓存(可采用集群的方式,不受内存容量限制)。
Read more »

tinySpring-Aop-分析笔记(2)

Posted on 2018-11-17 | Edited on 2023-05-09 | In spring

tinySpring Aop 分析笔记(2)

项目学习地址:code4craft/tiny-spring

step-8-invite-pointcut-and-aspectj

  • step-8 新增了对AspectJExpressionPointcut这个类。
    • 它使用 AspectJ 表达式进行匹配。
    • 实现了Pointcut, ClassFilter, MethodMatcher三个接口。
    • 首先拿到一个PointcutParser,是用来解析 expression 的。
    • 解析传入的expression,拿到一个PointcutExpression的实现类。
    • ClassFilter 表示与表达式匹配的类;
    • MethodMatcher 查找与表达式匹配的方法;
    • Pointcut 表示获取的是方法还是类。
Read more »
1…8910…15

Harrison Lee / Email (harrisonli60@163.com)

It is never too late to learn a new skill, even a challenging one.

150 posts
21 categories
32 tags
© 2025 Harrison Lee / Email (harrisonli60@163.com)
Powered by Hexo v6.3.0
|
Theme – NexT.Mist v7.0.0
|