Waylan Punch

WP


  • Home

  • Categories

  • Tags

  • Archives

  • About

  • Commonweal 404

  • Search

为 `waylanpunch.github.io` 仓库配置个人域名

Posted on 2019-07-28 | In Tool | | Visitors:

1.购买域名

登录 阿里云万网域名 购买域名:waylanpunch.online

预览

Read more »

MongoDB作为静态文件服务器使用

Posted on 2019-07-27 | In Java | | Visitors:

1.创建mongodb数据库

1
2
3
4
5
docker exec -it mymongodb mongo
show dbs
use filedb;// 创建一个名为"filedb"的数据库
db.createUser({ user: 'root', pwd: '123456', roles: [ { role: "root", db: "admin" } ] });
db.createCollection("Collection1"); // 在"filedb"中创建一个名为"Images"的Collection
Read more »

docker-mongodb

Posted on 2019-07-27 | In Java | | Visitors:

1.Docker命令拉取MongoDB镜像

1
docker pull mongo:4.0
Read more »

MongoDB Atlas平台使用教程

Posted on 2019-06-22 | In Java | | Visitors:

MongoDB Atlas是MongoDB的云平台。

Read more »

69个经典Spring面试题和答案

Posted on 2018-12-17 | In Java | | Visitors:

69个经典Spring面试题和答案


Java后端技术

1. 什么是spring?

Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。

2. 使用Spring框架的好处是什么?

  • 轻量:Spring 是轻量的,基本的版本大约2MB

  • 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们

  • 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开

  • 容器:Spring 包含并管理应用中对象的生命周期和配置

  • MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品

  • 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)

  • 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常

Read more »

Java面试题84题系列全集

Posted on 2018-12-16 | In Java | | Visitors:

Java面试题84题系列全集


Java后端技术

目录

01.面试的整体流程

02.java的垮平台原理

03.搭建一个java的开发环境

04.java中int占几个字节

05.java面向对象的特征

06.装箱和拆箱

07.==和equals的区别

08.String

09.讲一下java中的集合

10.ArrayList 和LinkedList的区别

11.HashMap和HashTable的区别

Read more »

2018年Java面试题汇总 - 5

Posted on 2018-12-15 | In Java | | Visitors:

2018年Java面试题汇总 - 5


Java后端技术

一、Java相关

  • 乐观悲观锁的设计,如何保证原子性,解决的问题;

  • char和double的字节,以及在内存的分布是怎样;

  • 对象内存布局,然后讲下对象的死亡过程?

  • 对象头,详细讲下;

  • sync原理详细,sync内抛异常会怎样,死锁吗?还是释放掉?怎么排查死锁?死锁会怎样?有没有什么更好的替代方案?

  • 详细讲一下集合,HashSet源码,HashMap源码,如果要线程安全需要怎么做?

  • 多线程是解决什么问题的?线程池解决什么问题?

  • 线程池,如何设计的,里面的参数有多少种,里面的工作队列和线程队列是怎样的结构,如果给你,怎样设计线程池?

  • AQS原理,ReentranLock源码,设计原理,整体过程。

  • 继续聊多线程源码,sync原理,然后一个场景设计题;

  • float f = 1.4f;double d = 1.4d; 与 float f = 1.5f;double d = 1.5d; 是否为true,内存是怎样的;

  • split的源码,split(“a|b|c”);得出多少个数组;

  • 把所有认识熟用的JUC( java.util.concurrent(简称JUC)包)下的类写出来,讲下使用,然后讲下原生的线程操作;

  • 开闭原则,解析工厂方法模式,建造者模式,区别。手撸出来。

  • 讲下JVM的大页模式,JVM内存模型;

  • 什么是敏捷开发,防御性编程,并行编程。Team Leader的思考;

  • 逃逸分析是什么,作用是什么,用途是什么;

  • 怎么认为一个类是线程安全?线程安全的定义是什么?Java有多少个关键字进行同步?为什么这样设计?(聊了一大堆,一堆为什么);

  • 两个线程设计题。记得一个是:t1,t2,t3,让t1,t2执行完才执行t3,原生实现。

  • 写个后缀表达式,为什么要设计后缀表达式,有什么好处?然后写下中缀。

  • 我看你做过性能优化,比如你怎么分析项目里面的OOM的,内存泄露呢?详细说思路;

  • 说下多线程,我们什么时候需要分析线程数,怎么分析,分析什么因素;

  • 抽象方法和类方法的区别,static的抽象方法可以吗?

  • 说下Java的克隆体系;

  • 涉及OOM、JVM优化、源码问题、数据库优化、多线程等问题;

  • CPU高?什么情况CPU高?解决什么问题?

  • 你有遇到过临界区问题吗?有遇到过吗?你在项目遇到这个问题是怎样解决的?

  • volatile关键字作用;

  • Java的多态怎么实现;

  • 解释一下自旋;

  • 解释一下信号量;

  • 什么情况下会触发类加载;

  • Java内存抖动严重,优化的思路;

Read more »

2018年Java面试题汇总 - 4

Posted on 2018-12-14 | In Java | | Visitors:

2018年Java面试题汇总 - 4


Java后端技术

一、Java基础

  • 为什么JVM调优经常会将-Xms和-Xmx参数设置成一样;

  • Java线程池的核心属性以及处理流程;

  • Java内存模型,方法区存什么;

  • CMS垃圾回收过程;

  • Full GC次数太多了,如何优化;

  • 直接内存如何管理的;

  • Java线程池的几个参数的意义和实现机制;

  • Java线程池使用无界任务队列和有界任务队列的优劣对比;

  • CountDownLatch和CyclicBarrier的区别;

  • Java中有哪些同步方案(重量级锁、显式锁、并发容器、并发同步器、CAS、volatile、AQS等)

  • 如果你的项目出现了内存泄露,怎么监控这个问题呢;

  • 标记清除和标记整理的区别和优缺点,为何标记整理会发生stop the world;

  • 线程池,如何根据CPU的核数来设计线程大小,如果是计算机密集型的呢,如果是IO密集型的呢?

  • 让你设计一个cache如何设计;

  • String中hashcode是怎么实现的;

  • JDK中哪些实现了单例模式?

  • 多个线程同时读写,读线程的数量远远⼤于写线程,你认为应该如何解决并发的问题?你会选择加什么样的锁?

  • 线程池内的线程如果全部忙,提交⼀个新的任务,会发⽣什么?队列全部塞满了之后,还是忙,再提交会发⽣什么?

  • synchronized关键字锁住的是什么东西?在字节码中是怎么表示的?在内存中的对象上表现为什么?

  • wait/notify/notifyAll⽅法需不需要被包含在synchronized块中?这是为什么?

  • ExecutorService你一般是怎么⽤的?是每个Service放一个还是个项目放一个?有什么好处?

Read more »

2018年Java面试题汇总 - 3

Posted on 2018-12-13 | In Java | | Visitors:

2018年Java面试题汇总 - 3


Java后端技术

一、基础题

  • 怎么解决Hash冲突;(开放地址法、链地址法、再哈希法、建立公共溢出区等)

  • 写出一个必然会产生死锁的伪代码;

  • Spring IoC涉及到的设计模式;(工厂模式、单利模式。。)

  • toString()方法什么情况下需要重写;

  • 判断对象相等时,什么情况下只需要重写 equals(),什么情况下需要重写 equals(),hashcode()?

  • Set内存放的元素为什么不可以重复,内部是如何保证和实现的?

  • 如何保证分布式缓存的一致性(分布式缓存一致性hash算法?)?分布式session实现?

  • Java 8流式迭代的好处?

  • 项目中用到的JDK的哪些特性?

  • 说一下TreeMap的实现原理?红黑树的性质?红黑树遍历方式有哪些?如果key冲突如何解决?setColor()方法在什么时候用?什么时候会进行旋转和颜色转换?

  • Spring的bean的创建时机?依赖注入的时机?

  • ArrayList和LinkList的删除一个元素的时间复杂度;(ArrayList是O(N),LinkList是O(1));

  • CopyOnWriteArrayList是什么;

  • 序列化和反序列化底层如何实现的(ObjectOutputStream 、ObjectInputStream、 readObject writeObject);

  • 如何调试多线程的程序;

  • 一个线程连着调用start两次会出现什么情况?(由于状态只有就绪、阻塞、执行,状态是无法由执行转化为执行的,所以会报不合法的状态!)

  • HashMap在什么时候时间复杂度是O(1),什么时候是O(n),什么时候又是O(logn);

  • wait方法能不能被重写?(wait是final类型的,不可以被重写,不仅如此,notify和notifyall都是final类型的),wait能不能被中断;

  • 一个Controller调用两个Service,这两Service又都分别调用两个Dao,问其中用到了几个数据库连接池的连接?

Read more »

2018年Java面试题汇总 - 2

Posted on 2018-12-12 | In Java | | Visitors:

2018年Java面试题汇总 - 2


Java后端技术

一、Java相关

  • Arraylist与LinkedList默认空间是多少;

  • Arraylist与LinkedList区别与各自的优势List 和 Map 区别;

  • 谈谈HashMap,哈希表解决hash冲突的方法;

  • 为什么要重写hashcode()和equals()以及他们之间的区别与关系;

  • Object的hashcode()是怎么计算的?

  • 若hashcode方法永远返回1或者一个常量会产生什么结果?

  • Java Collections和Arrays的sort方法默认的排序方法是什么;

  • 引用计数法与GC Root可达性分析法区别;

  • 浅拷贝和深拷贝的区别;

  • String s=”abc”和String s=new String(“abc”)区别;

  • HashSet方法里面的hashcode存在哪,如果重写equals不重写hashcode会怎么样?

  • 反射的作用与实现原理;

  • Java中的回调机制;

  • 模板方法模式;

  • 开闭原则说一下;

  • 发布/订阅使用场景;

  • KMP算法(一种改进的字符串匹配算法);

  • JMM里边的原子性、可见性、有序性是如何体现出来的,JMM中内存屏障是什么意思,

Read more »
12…7
Waylan Punch

Waylan Punch

Keep Calm And Code On.

66 posts
2 categories
66 tags
RSS
GitHub E-Mail Weibo StackOverflow
Links
  • StackOverflow
  • LeanCloud
  • 云栖社区
  • GitHub
  • 掘金网
  • 知乎
© 2014 — 2019 Waylan Punch
Powered by Hexo
|
Theme — NexT.Mist v5.1.4