ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

关于学习Java的一些索引

2020-04-22 18:06:03  阅读:119  来源: 互联网

标签:缓存 Java Spring 学习 索引 算法 线程 内存


Java基础知识

1.String、Integer、Long、Enum、BigDecimal、ThreadLocal、ClassLoader、URLClassLoader、ArrayList、 LinkedList。
2.HashMap、LinkedHashMap、TreeMap、CouncurrentHashMap、HashSet、LinkedHashSet、TreeSet。
3.Java String的使用,熟悉String的各种函数。replaceFirst、replaceAll、replace区别,String对“+”的重载,String.valueOf和Integer.toString的区别。字符串的不可变性。
4.JDK 6和JDK 7中substring的原理及区别。
5.自动拆装箱:Integer的缓存机制。
6.熟悉Java中各种关键字:transient、instanceof、volatile、synchronized、final、static、const 原理及用法。
7.ArrayList和LinkedList和Vector的区别。
8.List和Vector的区别。
9.HashMap、HashTable、ConcurrentHashMap区别。
10.Java 8中stream相关用法。
11.apache集合处理工具类的使用。
12.不同版本的JDK中HashMap的实现的区别以及原因。
13.枚举:枚举的用法、枚举与单例、Enum类。
14.Java IO,Java NIO,bio、nio和aio的区别、三种IO的用法与原理、netty并学会使用。
15.Java反射与javassist。反射与工厂模式、 java.lang.reflect.*。
16.Java序列化:什么是序列化与反序列化、为什么序列化。序列化底层原理。序列化与单例模式。protobuf。为什么说序列化并不安全。
17.注解:元注解、自定义注解、Java中常用注解使用、注解与反射的结合。
18.JMS:什么是Java消息服务、JMS消息传送模型。
19.JMX:java.lang.management.*、 javax.management.*
20.泛型。泛型与继承。类型擦除。泛型中K T V E。
21.object等的含义、泛型各种用法。
22.单元测试:junit、mock、mockito、内存数据库(h2)。
23.正则表达式:java.lang.util.regex.*
24.常用的Java工具库:commons.lang, commons.*... guava-libraries netty
25.什么是API&SPI。
26.异常:异常类型、正确处理异常、自定义异常。
27.时间处理:时区、时令、Java中时间API。
28.编码方式:解决乱码问题、常用编码方式。
29.语法糖:Java中语法糖原理、解语法糖。

Java并发编程

1.什么是线程,与进程的区别。
2.Thread、Runnable、Callable、ReentrantLock、ReentrantReadWriteLock、Atomic*、Semaphore、CountDownLatch、、ConcurrentHashMap、Executors。
3.线程池:自己设计线程池、submit() 和 execute()。
4.线程安全:死锁、死锁如何排查、Java线程调度、线程安全和内存模型的关系。
5.锁:CAS、乐观锁与悲观锁、数据库相关锁机制、分布式锁、偏向锁、轻量级锁、重量级锁、monitor、锁优化、锁消除、锁粗化、自旋锁、可重入锁、阻塞锁、死锁。
6.volatile。happens-before、编译器指令重排和CPU指令重。
7.synchronized:synchronized是如何实现的?synchronized和lock之间关系。不使用synchronized如何实现一个线程安全的单例。
8.sleep 和 wait。wait 和 notify。notify 和 notifyAll。ThreadLocal。
10.写一个死锁的程序。写代码来解决生产者消费者问题。守护线程:守护线程和非守护线程的区别以及用法。
11.线程基础;
12.原子操作类和CAS;
13.Lock,Condition和显示锁;
14.AbstractQueuedSynchronizer分析;
15.并发工具类和并发容器;
16.线程池和Executor框架;
17.实现原理和Java内存模型;
18.线程安全;

Java并发编程

1.JVM内存结构:堆、栈、方法区、直接内存、堆和栈区别。
2.Java内存模型:内存可见性、重排序、顺序一致性、volatile、锁、final。
3.垃圾回收:内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定。
4.JVM参数及调优。
5.Java对象模型:oop-klass、对象头。
6.HotSpot:即时编译器、编译优化。
7.类加载机制:classLoader、类加载过程、双亲委派(破坏双亲委派)、模块化(jboss modules、osgi、jigsaw)。
8.虚拟机性能监控与故障处理工具:jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、Tprofiler。
9.编译与反编译:javac 、javap 、jad 、CRF。
10.使用工具:VisualVM。
11.JVM的内存模型分析?
12.jvm运行时数据区?
13.jvm性能监控工具?
14.jvm的堆和栈是如何工作的?
15.JVM内存管理机制:内存区域与内存溢出异常:运行时数据区域:程序计数器,虚拟机栈,本地方法栈,虚拟机对象;
16.垃圾收集器与内存分配策略:垃圾回收算法与基础,窜行收集器,并行收集器,内存分配与回收策略;
17.JVM执行子系统:类文件结构,类加载机制,字节码执行引擎
18.程序编译与代码优化:编译期优化,运行期优化

其他

1.字节码、class文件格式
2.CPU缓存,L1,L2,L3和伪共享
3.尾递归。位运算。用位运算实现加、减、乘、除、取余。
4.设计模式:了解23种设计模式。
5.实现AOP,实现IOC。不用synchronized和lock,实现线程安全的单例模式。nio和reactor设计模式。
6.网络编程。tcp、udp、http、https等常用协议。三次握手与四次关闭、流量控制和拥塞控制、OSI七层模型、tcp粘包与拆包。
7.http/1.0 http/1.1 http/2之前的区别。Java RMI,Socket,HttpClient。
8.cookie 与 session。cookie被禁用,如何实现session。
9.了解nginx和apache服务器的特性并搭建一个对应的服务器。
10.用Java实现FTP、SMTP协议。
11.进程间通讯的方式。
12.什么是CDN?如果实现?什么是DNS?反向代理。
13.Servlet线程安全问题。Servlet中的filter和listener。
14.Hibernate的缓存机制。Hiberate的懒加载。
15.Spring Bean的初始化。Spring的AOP原理。自己实现Spring的IOC。
16.Spring MVC。Spring Boot2.0。
17.Spring Boot的starter原理,自己实现一个starter。
18.Spring Security
19.应用服务器:JBoss,tomcat,jetty,Weblogic,Undertow。
20.工具:git & svn,maven & gradle。
21.Java 8:lambda表达式、Stream API。
22.Java 9:Jigsaw、Jshell、Reactive Streams。
23.Java 10:局部变量类型推断、G1的并行Full GC、ThreadLocal握手机制。
24.Spring 5:响应式编程。
25.Spring Boot 2.0:性能优化
26.使用单例、使用Future模式、使用线程池、选择就绪、减少上下文切换、减少锁粒度、数据压缩、结果缓存
27.线上问题分析:dump获取:线程Dump、内存Dump、gc情况。dump分析:分析死锁、分析内存泄露。
28.自己编写各种outofmemory,stackoverflow程序:
29.HeapOutOfMemory、 Young OutOfMemory、MethodArea OutOfMemory、ConstantPool OutOfMemory、DirectMemory OutOfMemory、Stack OutOfMemory Stack OverFlow。
30.常见问题解决思路:内存溢出、线程死锁、类加载冲突。
31.使用工具尝试解决以下问题,并写下总结:当一个Java程序响应很慢时如何查找问题、当一个Java程序频繁FullGC时如何解决问题、
32.如何查看垃圾回收日志、当一个Java应用发生OutOfMemory时该如何解决、如何判断是否出现死锁、如何判断是否存在内存泄露
33.用Java写一个简单的静态文件的HTTP服务器。实现客户端缓存功能,支持返回304 实现可并发下载一个文件 使用线程池处理客户端请求,使用nio处理客户端请求 支持简单的rewrite规则 上述功能在实现的时候需要满足“开闭原则”。
34.编译与反编译;Java代码的编译与反编译;Java的反编译工具;词法分析,语法分析(LL算法,递归下降算法,LR算法),语义分析,运行时环境,中间代码,代码生成,代码优化。
35.Linux的常用命令;进程同步;缓冲区溢出;分段和分页;虚拟内存与主存;
36.MySql 执行引擎;MySQL 执行计划;如何查看执行计划,如何根据执行计划进行SQL优化。
37.事务事务的隔离级别、事务能不能实现锁的功能。
38.数据库锁:行锁、表锁、使用数据库锁实现乐观锁。
39.数据库主备搭建,binlog,内存数据库,h2。
40.常用的nosql数据库:redis、memcached。
41.分别使用数据库锁、NoSql实现分布式锁。性能调优。
42.简单的数据结构:栈、队列、链表、数组、哈希表、
43.树:二叉树、字典树、平衡树、排序树、B树、B+树、R树、多路树、红黑树。
44.排序算法:各种排序算法和时间复杂度 深度优先和广度优先搜索 全排列、贪心算法、KMP算法、hash算法、海量数据处理。
45.Zookeeper:基本概念、常见用法。
46.Solr,Lucene,ElasticSearch。
47.在linux上部署solr,solrcloud,,新增、删除、查询索引。
48.Storm,流式计算,了解Spark,S4。
49.在linux上部署storm,用zookeeper做协调,运行storm hello world,local和remote模式运行调试storm topology。
50.Hadoop,离线计算HDFS、MapReduce。
51.分布式日志收集flume,kafka,logstash。
52.数据挖掘,mahout。
53.网络安全知识。
54.什么是XSS:XSS的防御。
55.什么是CSRF。什么是注入攻击。SQL注入、XML注入、CRLF注入。
56.什么是文件上传漏洞。
57.加密与解密。MD5,SHA1、DES、AES、RSA、DSA。
58.什么是DOS攻击和DDOS攻击。
59.memcached为什么可以导致DDos攻击、什么是反射型DDoS。
60.SSL、TLS,HTTPS。
61.如何通过Hash碰撞进行DOS攻击。
62.用openssl签一个证书部署到apache或nginx。
63.数据一致性、服务治理、服务降级。
64.分布式事务:2PC、3PC、CAP、BASE、 可靠消息最终一致性、最大努力通知、TCC。
65.Dubbo:服务注册、服务发现,服务治理。
66.分布式数据库:怎样打造一个分布式数据库、什么时候需要分布式数据库、mycat、otter、HBase。
67.分布式文件系统:mfs、fastdfs。
68.分布式缓存:缓存一致性、缓存命中率、缓存冗余。
69.SOA、康威定律。
70.ServiceMesh。
71.Docker & Kubernets
72.CDN技术
73.监控什么:CPU、内存、磁盘I/O、网络I/O等。
74.监控手段:进程监控、语义监控、机器资源监控、数据波动。监控数据采集。日志、埋点。
75.Dapper。
76.负载均衡。tomcat负载均衡、Nginx负载均衡。
77.DNS:DNS原理、DNS的设计。
78.扩展篇云计算:IaaS、SaaS、PaaS、虚拟化技术、openstack、Serverlsess。
79.搜索引擎:Solr、Lucene、Nutch、Elasticsearch。
80.权限管理:Shiro。
81.哈希算法、Merkle树、公钥密码算法、共识算法、Raft协议、Paxos 算法与 Raft 算法、拜占庭问题与算法、消息认证码与数字签名。    
82.比特币:挖矿、共识机制、闪电网络、侧链、热点问题、分叉。
83.以太坊,超级账本,人工智能。
84.数学基础、机器学习、人工神经网络、深度学习、应用场景。
85.常用框架:TensorFlow、DeepLearning4J
86.其他语言:Groovy、Python、Go、NodeJs、Swift、Rust,groovy,cassandra,Protobuf,WebWork
87.了解Hadoop+Zookeeper+Flume+Hive+HDFS大数据离线数据分析,能够实现网站的pv,uv,vv,br等数据监控分析,并且也了解Storm+Kafka的实时数据分析。
88.Spark MLlib
89.SonarQube
90.DCDB技术;
91.任务调度技术;
92.elog技术;
93.eMonitor技术;(监控系统)
94.epaas技术;(容器云)
95.MySQL延迟问题和数据刷盘策略
96.CQRS
97.docker与k8s

 

标签:缓存,Java,Spring,学习,索引,算法,线程,内存
来源: https://www.cnblogs.com/ZJOE80/p/12753792.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有