面试感悟------一名三年工作经验的程序员应该具备的经验

原文地址http://www.cnblogs.com/xrq730/p/5260294.html,转载请注明出处,谢谢! 前言因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章。这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发的,因此有一部分内...

2018-07-02 15:46:40

阅读数 378

评论数 0

深入分析ConcurrentHashMap的锁分段技术

术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称...

2018-06-26 16:15:04

阅读数 73

评论数 0

Java中对象都是分配在堆上吗?你错了!

们在学习使用Java的过程中,一般认为new出来的对象都是被分配在堆上,但是这个结论不是那么的绝对,通过对Java对象分配的过程分析,可以知道有两个地方会导致Java中new出来的对象并不一定分别在所认为的堆上。这两个点分别是Java中的逃逸分析和TLAB(Thread Local Allocat...

2018-06-26 15:34:09

阅读数 914

评论数 0

一次线上问题排查:java.lang.OutOfmemoryError: PermGen Space

背景用基于Spring Boot(环境是java7)的系统做了一个报表导出的功能,第一次部署的时候用的默认JVM参数,但是测试人员在点击了一次导出之后,其他功能就疑似挂掉了,过了一会后才能正常使用;再点击导出,又出现这个问题,对这个问题的排查如下。jmap -heap pid查看堆内存使用情况At...

2018-06-21 17:45:10

阅读数 75

评论数 0

深入剖析Spring(一)——IoC的基本概念(从面向对象角度介绍)

IoC与DIIoC和DI是Spring的两个核心概念,很多人都把它们视为相同的东西,但事实并非如此。 IoC(Inversion of Control):控制反转。 DI(Dependency Injection):依赖注入。为了方便理解,先给出结论:控制反转是目的,依赖注入是实现控制反转的手段。...

2018-06-21 16:55:11

阅读数 70

评论数 0

回溯法(一)——n皇后问题

回溯法(一)——n皇后问题问题描述 在一个n*n的棋盘上放置皇后,要求:一个皇后的同一行、同一列、同一条对角线上不允许出现其他皇后。请给出所有的放置方案。算法思路思路很简单,由于每行每列不能出现两个皇后,因此每行只能放一个皇后,那么第i行中皇后究竟应该放哪儿呢?我们可以从第i行第一列开始依次向后逐...

2018-06-21 15:44:35

阅读数 248

评论数 0

聊聊对称/非对称加密在HTTPS中的应用

聊聊对称/非对称加密在HTTPS中的应用目前常用的加密算法主要分成三类:对称加密算法非对称加密算法消息摘要算法在互联网中,信息防护主要涉及两个方面:信息窃取和信息篡改。对称/非对称加密算法能够避免信息窃取,而消息摘要算法能够避免信息篡改。对称加密算法发送方和接收方需要持有同一把密钥,发送消息和接收...

2018-06-21 15:35:32

阅读数 667

评论数 0

缓存世界中的三大问题及解决方案

缓存世界中的三大问题及解决方案 目前的IO设备远不能满足互联网应用海量的读写请求。于是便出现了缓存,利用内存的高速读写性能来应付海量的查询请求。然而内存资源非常宝贵,将全量数据存储在内存中显然是不切合实际的。因此目前采用内存和IO结合的方式,内存只存储热点数据,而IO设备存储全量数据。 缓存...

2018-06-21 15:22:35

阅读数 93

评论数 0

并发编程中的注意事项

程序员必知的并发编程注意事项 获取单例对象需要保证线程安全,其中的方法也要保证线程安全。单例对象会被多线程共享,因此要保证它是线程安全的,它其中的方法都要保证是线程安全的。工具类、资源驱动类、单例工厂类都要注意这个问题。 创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。 线程资源必须通过...

2018-06-21 15:13:04

阅读数 212

评论数 0

揭秘threadLocal

揭秘ThreadLocal ThreadLocal是开发中最常用的技术之一,也是面试重要的考点。本文将由浅入深,介绍ThreadLocal的使用方式、实现原理、内存泄漏问题以及使用场景。ThreadLocal作用在并发编程中时常有这样一种需求:每条线程都需要存取一个同名变量,但每条线程中该变量的值...

2018-06-21 14:59:34

阅读数 37

评论数 0

Java异常体系中的秘密

Java异常体系中的秘密 相信大家每天都在使用Java异常机制,也相信大家对try-catch-finally执行流程烂熟于胸。本文将介绍Java异常机制的一些细节问题,这些问题虽然很小,但对代码性能、可读性有着较为重要的作用。Java异常体系介绍 在学习一项技术前,一定要先站在制高点俯瞰技术全局...

2018-06-21 14:38:22

阅读数 52

评论数 0

常用的分布式事务解决方案

常用的分布式事务解决方案在这篇文章中:什么是事务?事务的四大特性 ACID事务的隔离级别事务并发执行会出现的问题数据库的四种隔离级别什么是分布式事务?CAP理论BASE理论酸碱平衡分布式事务协议两阶段提交协议 2PC三阶段提交协议 3PC分布式事务的解决方案方案1:全局事务(DTP模型)方案2:基...

2018-06-21 14:17:14

阅读数 50

评论数 0

HashMap源码和模型详解

HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机...

2018-06-19 17:00:15

阅读数 266

评论数 0

JVM内存结构解析

 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?  由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划...

2018-06-19 16:13:22

阅读数 89

评论数 0

java并发之阻塞队列

在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。  在前面我们接触的队列都是非阻塞队列,...

2018-06-19 16:00:19

阅读数 187

评论数 1

JAVA:Callable,Future和FutureTask

 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。  这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。  如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。  而自从Java...

2018-06-19 15:50:01

阅读数 57

评论数 0

藏在正则表达式里的陷阱

前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。我们可以看到所有的堆栈都指向了一个名为 validateUrl 的方法,这样的报错信息在堆栈中一共超过 100 处...

2018-06-19 15:36:45

阅读数 212

评论数 0

java线程面试题问答(二)

不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。  在典...

2018-06-15 11:15:19

阅读数 236

评论数 0

java并发面试题问答

java并发面试题问答多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立...

2018-06-15 11:09:14

阅读数 284

评论数 0

java的垃圾回收机制详解

Java垃圾回收机制  说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定...

2018-06-15 10:39:55

阅读数 91

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭