待学习

训练营第一天 1、synchronized关键字的字节码原语 2、volatile关键字的字节码原语 3、synchronized与volatile的硬件级实现 4、无锁、偏向锁、轻量级锁、重量级锁的升级过程 5、内存屏障的基本概念 6、JVM规范如何要求内存屏障 7、硬件层级内存屏障如何帮助java实现高并发 8、面试第4题(线程间通讯)的8种解法 9、作业

训练营第二天 1、线程池的学与思 2、使用线程池的好与不好 3、为什么阿里开发手册建议自定义线程池 4、自定义线程池的最佳实践 5、常见线程池类型与应用场景 1)CachedPool 2)FixedThreadPool 3)ScheduledPool 4)WorkStealingPool 5)ForkJoinPool 6、比线程更牛X的线程,压测结果展现纤程的威力 7、总结

一个小伙伴最近参加某个一线互联网公司的面试,被问了以下问题,看看大家能否答出来: (1)synchronized的CPU原语级别是如何实现的? (2)一千万个数,如何高效求和。 (3)不用数学库,求2开平方的值,精确到小数点儿后10位。 (4)线程A不断打印1-10的数字,打印到第5个数字时通知线程B,请完成编码。 (5)下列三种业务,应该如何使用线程池: 高并发、任务执行时间短的业务 并发不高、任务执行时间长的业务 并发高、业务执行时间长的业务 (6)你如何来设计12306网站,能够撑住最高百万级别TPS(淘宝最高54万TPS)?

微软 Microsoft Azure 谷歌云平台 Google Cloud Platform (GCP) 亚马逊Amazon Web Services (AWS) 阿里云 Google Kubernetes Engine(GKE)

加解密、填充对齐等,证书等,参考网上在线加解密参数 算法 设计模式 操作系统 linux、shell、go、c++、python

Ruby on Rails(官方简称为 Rails,亦简称为 RoR),是一个使用 Ruby 语言写的开源 Web 应用框架,严格按照 MVC 结构开发。 https://rubyonrails.org/

狼人杀 麻将、 健身常识 医学常识 看手机上的待办事项 德州扑克

IPU网址 http://www.aiipu.com/doc

Jupyter Notebook

有个 斯蒂芬周都博客,里面全是mac主流软件都破解版 京东的网关

Java面试视频链接:https://pan.baidu.com/s/1OTzaoG456DtwqB-dGPZmMg 提取码:8nm1 这是我们的免费直播每天晚上八点到十点都有直播课程https://ke.qq.com/course/384333?tuin=2f51f3e9 点击一下即可报名,报名成功截图给我下哦

工作流 https://www.flowable.org/ https://github.com/flowable/flowable-engine

好文章 https://github.com/doocs https://github.com/apachecn/awesome-algorithm

Spring Cloud第一代和第二代的组件组合汇总,如下表所示。 Spring Cloud第一代 Spring Cloud第二代 网关 Spring Cloud Zuul Spring Cloud Gateway 注册中心 eureka(不再更新),Consul,ZK 阿里Nacos,拍拍贷radar等可选 配置中心 spring cloud config 阿里Nacos,携程Apollo,随行付Config Keeper 客户端软负载均衡 Ribbon spring-cloud-loadbalancer 熔断器 Hystrix spring-cloud-r4j(Resilience4J),阿里Sentinel


【【【每天学习的知识点】】】

Tomcat生产部署:配置详解、启动参数调优及JVM参数优化 缓存热点Key、大Value 数据库分页重复和分页实现 数据库深度分页优化 Java泛型的类型擦除和Java语法糖(12个) 多线程,到底该设置多少个线程?参考Redis、Nginx;为什么他们会那么快呢 jetty的使用

各种编码ASCII、GB2312、GBK、unicode、utf-8 ASCII流程图

Linux命令:du、df、tar、awk等 SSH、SCP、sftp等 动态代理和静态代理 热部署和热加载 SSO实现OpenID和OAuth

1、SSO实现OPenID和OAuth 2、各种编码详解-ASCII、GB2312、UTF-8 3、ASCII流程图 四种授权类型(authorization grant),即四种颁发令牌的方式:1、授权码(authorization code)方式、2、隐藏式(implicit)、3、密码式(password)、4、客户端凭证(client credentials)

G1和CMS区别对比 逃逸分析与TLAB、内存泄漏 AQS(AbstractQueuedSynchronizer):一个int状态位和一个有序队列来配合完成 直接内存详解:分配和回收 Linux探秘之用户态与内核态

数据库:范式、索引、优化、锁、oracle、mysql、mybatis 设计模式quickstart-design-pattern 数据结构和算法:树的类型、复杂度、排序算法、查找算法 分布式:分布式事务与一致性算法.md、分布式锁,分布式缓存、分布式主键、分布式事务、对CAP理论、Paxos/Raft算法、高可用架构 HTTP:OSI七层、TCP、http连接、Https

限流:高并发流量限制(计数器、漏桶、令牌桶):限流(过载保护) BloomFilter布隆过滤器(是BitMap位图的变形)(变形CountingBloomFilter )CuckooFilter布谷鸟哈希 缓存算法(页面置换算法)-FIFO、LFU、LRU

3672234979杨子付

5、常用框架 消息:消息:Activemq、Rocketmq、kafka、MQTT 缓存:Redis、memcached、什么是缓存击穿 如何避免, 注册中心的:zookeeper、consul、etcd 容器相关:docker、kubernetes、istio 通讯:netty rpc微服务框架:Dubbo、SpringCloud Spring:Springframe、Springboot、SpringCloud 数据库:mybatis、hibernate 分布式:分布式事务与一致性算法.md、分布式锁,分布式缓存、分布式主键 惊群问题:定义,解决:计算机常见专业名词.md linux熟悉:进程、线程和轻量级进程:计算机常见专业名词.md 线程切换、内核线程和用户线程、零拷贝等解释:https://blog.csdn.net/tianyue168/article/details/7403693

6、开发项目: 自己做过的项目:网关gateway、消息组件、配置中心amber、缓存aicahe,查看示例代码

7、加解密 单向加密和双向加密(对称加密和非对称加密) 单向加密(信息摘要):MD5、SHA 对称加密:DES、3DES、AES 非对称加密:RSA、DSA、ECDSA 查看项目quickstart-crypto

10、WebSocket和WebService

17、SSO实现OpenID和OAuth.md

其他框架: 字节码框架asm、设计模式、disruptor、fastdfs、guava、jvm序列化框架、yaml框架、xml框架、web String字符串压缩、reflect反射、reactivex、quartz、proxy代理、logging框架、linux相关、json、jfinal、 javase、uuid、文档、

消息特性 jmx 锁 负载均衡

1.TCP/IP 三次握手 四次挥手 2.Http的格式说明 3.状态码说明 4.进程间通讯方式(IPC) 5.数据库隔离级别,索引类别,oracle的SID 实例 6.启动一个包含main方法的类时,输出字符,整个启动到输出的详细流程 首先java.exe 会帮助我们找到 JRE ,接着找到位于 JRE 内部的 jvm.dll ,这才是真正的 Java 虚拟机器 , 最后加载动态库,激活 Java 虚拟机器。虚拟机器激活以后,会先做一些初始化的动作,比如说读取系统参数等。一旦初始化动作完成之后,就会产生第一个类加载器―― Bootstrap Loader 1.加载字节码(启动类加载器,扩展类,应用程序类,自定义加载器) 2.验证格式 3.准备(分配内存) 4.解析(解析阶段是虚拟机将常量池中的符号引用转化为直接引用的过程) 5.初始化 整个类加载过程中,除了在加载阶段用户应用程序可以自定义类加载器参与之外,其余所有的动作完全由虚拟机主导和控制。到了初始化才开始执行类中定义的Java程序代码(亦及字节码),但这里的执行代码只是个开端,它仅限于()方法。类加载过程中主要是将Class文件(准确地讲,应该是类的二进制字节流)加载到虚拟机内存中,真正执行字节码的操作,在加载完成后才真正开始。

7.双亲委派

8.classloader的功能和工作模式

9.synchronized和lock的用法区别 各自底层原理 synchronized: 对象级别的同步块,底层包含monitorenter和monitorexit指令 方法级别同步,底层是 ACC_SYNCHRONIZED 标识来判断 Java虚拟机对synchronized的优化 锁的状态总共有四种,无锁状态、偏向锁、轻量级锁和重量级锁。随着锁的竞争,锁可以从偏向锁升级到轻量级锁,再升级的重量级锁,但是锁的升级是单向的,也就是说只能从低到高升级,不会出现锁的降级,关于重量级锁,前面我们已详细分析过,下面我们将介绍偏向锁和轻量级锁以及JVM的其他优化手段,这里并不打算深入到每个锁的实现和转换过程更多地是阐述Java虚拟机所提供的每个锁的核心优化思想,毕竟涉及到具体过程比较繁琐,如需了解详细过程可以查阅《深入理解Java虚拟机原理》。 lock:

10.分布式锁 11.如何设计线程池 需要什么特性 怎么扩容 缩容 如何去取资源 分配资源 12.spring中的transactional注解,requestMapping注解的实现原理 13.springMvc原理 如何集成web 14.什么是缓存击穿 如何避免 15.自己做的项目对自己帮助很大的方面 成长的方面 16.如何排查oom

问题: Redis Bitmap是什么? HikariCP连接池(号称性能最好的JDBC连接池:HikariCP)? springboot自动启动类? spring常用的接口和类,实现原理(在什么时候初始化,什么时候注入,什么时候调用)? GC,问怎么标记回收对象的,从GCROOT不可达的对象(根据四种引用关系,强软弱虚),GCROOT哪里来的(哪些可以是GCROOT)? java提供finalize()方法?GC和finalize()方法都是不可靠的

什么时候一个对象会被GC? 为什么要在这个时候对象才会被GC? GC策略都有哪些分类? 这些策略分别都有什么优劣势?都适用于什么场景? 给你举个实际的场景,让你选择一个GC的策略?为什么要选择这个策略? 什么是gc,什么是cms算法? cms算法实现原理?整个过程是怎么样的? 怎么避免full gc? java g1垃圾收集器?

类加载机制的相关问题: java的类加载器都有哪些? 每个类加载器都加载哪些类? 这些类加载器之间的父子关系是怎么样的? 回答的时候可能会提到双亲委派模型,双亲委派模型是什么? java的类加载器为什么要使用双亲委派模型? 如何自定义自己的类加载器?自己的类加载器和java自带的类加载器关系如何处理? bootstrap Extend app self defined

内存的相关问题: 内存分为哪几部分?这些部分分别都存储哪些数据? 一个对象从创建到销毁都是怎么在这些部分里存活和转移的? 内存的哪些部分会参与GC的回收? java的内存模型是怎么设计的?为什么这么设计?

java线程、java线程池、java集合、java队列、java正则表达式、java native方法、JAVA泛型 jdk和jre的区别 java、Spring中的ServletContext相关 Spring的DispacherServlet和ContextLoaderListener中的WebApplicationContext的关系 获取spring的ApplicationContext几种方式:直接创建(2种),工具类WebApplicationContextUtils,extends或者implements(ApplicationObjectSupport就是实现ApplicationContextAware) java nio的selector 和linux的epoll select,类似与epoll或者java里面的selector ZeroCopy和mmap思想 集合重写写equals,就必须重写hashCode?使用hash表的时候需要重写

Java基础:概述、语言基础、OO、Exceptio处理、Array、常用Class、集合、IO与文件、多线程、反射

1.项目介绍,从业务出发,自顶向下,模块职责清晰,确保面试官能听懂,反映出对业务的抽象总结 2.项目亮点,体现业务价值,解决方法包括但不限于抽象建模、方法论、工具等,如果涉及技术要展示出你对这项技术的理解,反应你的学习热情与计算机基础,如多线程、缓存、索引、事务等 3.基础知识,通用的东西要掌握好,如java集合、多线程、jvm几乎是必考,如果简历重点提了某项组件最好了解下原理,比如mysql,把索引、事务、锁的原理了解好 4.工程实践,缓存、可用性、微服务、高并发、扩展性、性能优化、幂等、质量保证等问题,如果没有思路可以从自己系统出发 5.系统设计,让你设计一种常见的系统,其实也是反映了你在1、2的能力,leetcode上有一道系统设计题可以搜下它的结题思路,总结好思路自己尝试设计微信抢红包、电商秒杀、餐厅点餐、直播等系统,这种问题大概率会问道 6.算法,刷题练手,注意代码风格、边界条件的判断 7.二三面大概率会问到,你对什么感兴趣、最近在学习什么,然后让你介绍

面试题: 1、nio、Bio,aio的区别,大概机制,接口 2、数据库,innobd,隔离级别,行级锁 3、分布式 4、类加载器和双亲委派机制,何时破坏双亲委派机制 5、几种垃圾回收器 6、java8新特性,lamda,函数接口 7、多线程:创建线程池,两个线程一个初始化,一个循环,改变一个值,并发包下接口类 8、java虚拟机的内存模型,内存工作方式 9、spring 、aop、ioc 10、二叉树算法 11、MySQL的事务级别,mybatis一个mapper实现两个sql 12、多线程,100个子线程,执行完成,将结果返回主线程 13、如何在大量数据中查找某一段的数据,不用limit 14、dubbo的原理,结构 15、整体介绍负载均衡架构 16、多线程的好处?一定能加快运行速度么?因为线程切换也是需要时间的,就跟自旋锁和互斥锁的效率一样,线程睡眠和唤醒也是需要时间和消耗资源的。 17、Integer和int类型,哪个放在堆内存?哪个在栈内存? 18、堆里面和栈内存,分别是什么时候回收? 19、outofmemory的问题,怎么定位? 20、常用有哪些设计模式? 21、一致性hash的实现原理 22、数据库索引和主键的区别:

对MySQL的了解,和oracle的区别 对设计模式的看法和认知 有哪些设计模式 如何实现分布式缓存 多线程如何避免死锁 关于树的算法题-二叉树的锯齿形层次遍历:二叉树的锯齿形层次遍历http://www.lintcode.com/zh-cn/problem/binary-tree-zigzag-level-order-traversal/ Java的垃圾回收机制 对Runtime的了解

如何进行自学 阅读过那些书籍

第一个项目: 项目最终实现效果 项目具体部分使用的设计模式并简述选择理由 项目有何需改进之处并初拟改进方案 第二个项目: 项目运行过程中成员是否曾就某一点发生争执?作为Leader你是如何解决的?具体事例?

数据库的范式 JVM内存模型及调优 浏览器的缓存机制 如何解决高并发问题?是否进行过相应程序的编写? LintCode 算法题 - 最小子串覆盖。原题链接:最小子串覆盖http://www.lintcode.com/zh-cn/problem/minimum-window-substring/ 想问的问题

应用容器:Spring-Boot、Docker方向,自诊断、开发效率、模块化 · RPC链路:链路跟踪、服务治理、动态流量管理、分布式调度 · 高可用方向:异地容灾、环境隔离/切换

hql学习 Zuul代码 netty使用:常用的编解码 RXjava学习,RxJava是基于响应式编程思想,实现并扩展了观察者模式,可以进行异步操作的库 completablefuture原理解析,异步编程类 Lambda表达式和函数式接口,Lambda表达式3种,函数式接口JDK8内置4类 StreamsAPI,创建、转换、聚合Reduce RP、FP、FRP区别,反应式编程、函数式编程、函数反应式编程 Fork/Join框架 restful接口是什么 边缘计算 guice,DI注入管理 lettuce,Redis客户端异步反应式编程 caffeine,本地JVM缓存 guava,本地JVM缓存 android的webview


免费的程序书籍https://github.com/EbookFoundation/free-programming-books Head First」编程系列丛书

有赞 https://tech.youzan.com/youzan-service-regression-test-platform/

https://www.guru99.com/java-tutorial.html https://howtodoinjava.com/security/aes-256-encryption-decryption/

Github装逼指南——Travis CI 和 Codecov https://segmentfault.com/a/1190000004415437


Last updated

Was this helpful?