
技术
文章平均质量分 73
weixin_tt
我博客所发的东西是提供自己学习的,也方便大家来学习,有自己学的东西又从别地方看到的东西做了个总结
展开
-
Arrays.asList 的使用
一、错误用法如果你这样使用过,那你可要注意了。1、错误一将基本类型数组作为asList的参数猜一下输出结果?2、错误二将数组作为asList参数后,修改数组或List3、错误三数组转换为集合后,进行增删元素二、深入探究我们通过asList()源码可发现其原因,但为了更直观,我们先通过IDEA debug来看看结果。其实它返回的是 jav...转载 2019-06-21 19:15:59 · 186 阅读 · 0 评论 -
字符编码ASCII,Unicode 和 UTF-8
一、ASCII 码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,...原创 2018-11-23 13:39:10 · 125 阅读 · 0 评论 -
Java 多线程问题及答案
1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然”,只有达到”知其然知其所以然”的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少...原创 2018-11-20 13:34:36 · 252 阅读 · 0 评论 -
必须掌握的30种SQL语句优化
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is ...原创 2018-11-20 13:31:50 · 119 阅读 · 0 评论 -
Http、TCP/IP、Socket的区别
网络由下往上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,三者从本质上来说没有可比性,socket则是对TCP/IP协议的封装和应用(程序员层面上)。也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。...原创 2018-11-20 09:24:41 · 171 阅读 · 0 评论 -
Java核心-深入理解BIO、NIO、AIO
一、IO 介绍我们通常所说的 BIO 是相对于 NIO 来说的,BIO 也就是 Java 开始之初推出的 IO 操作模块,BIO 是 BlockingIO 的缩写,顾名思义就是阻塞 IO 的意思。1.1 BIO、NIO、AIO的区别BIO 就是传统的 java.io 包,它是基于流模型实现的,交互的方式是同步、阻塞方式,也就是说在读入输入流或者输出流时,在读写动作完成之前,线程会一直阻...原创 2018-11-20 09:20:09 · 198 阅读 · 0 评论 -
高级 Java 面试题
hashcode相等两个类一定相等吗?equals呢?相反呢? 介绍一下集合框架? hashmap hastable 底层实现什么区别?hashtable和concurrenthashtable呢? hashmap和treemap什么区别?低层数据结构是什么? 线程池用过吗都有什么参数?底层如何实现的? sychnized和Lock什么区别?sychnize 什么情况情况是对象锁? 什么...原创 2018-11-22 13:36:25 · 207 阅读 · 0 评论 -
java经典面试题
1、面向对象的特征有哪些方面?2、访问修饰符public,private,protected,以及不写(默认)时的区别?3、String 是最基本的数据类型吗?4、float f=3.4;是否正确?5、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?6、Java有没有goto?7、int和Integer有什么区...原创 2018-11-15 11:07:15 · 137 阅读 · 0 评论 -
美团3面(Java后台):NIO+BIO+Zookeeper+线程池+Redis+kafka
一面线程池用过哪些,线程池有哪些参数,然后问我几个常用线程池的用法和实际场景问题。 集合框架的知识,hashmap,ArrayList,LinkedList源码相关知识,基本整个介绍了一遍,与hastable,concurrenthashmap相互的关联和区别 说几个垃圾回收器,cms回收器有哪几个过程,停顿几次,会不会产生内存碎片。老年代产生内存碎片会有什么问题。 讲讲快速排序,分析一...原创 2018-11-19 10:02:06 · 851 阅读 · 1 评论 -
并发编程44题(含答案)
1、并发编程三要素?1)原子性原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。2)可见性可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其他线程可以立即看到修改的结果。实现可见性的方法:synchronized或者Lock:保证同一个时刻只有一个线程获取锁执行代码,锁释放之前把最新的值刷新到主内存,实现可见...原创 2018-11-21 09:24:26 · 2939 阅读 · 0 评论 -
20个Spring MVC访谈问题
1. MVC是设计模式的缩写。它代表什么,它背后的想法是什么?答案:MVC是Model-View-Controller设计模式的缩写。该模式基于关注点分离设计原理,该原理促进处理不同层的不同功能以及层之间的松散耦合。在MVC模式中,模型包含由View和Controler帮助在请求处理和路由中呈现的数据。两个模型都不知道View,或View不依赖于Model,这意味着相同的模型可以由不同...原创 2018-12-04 13:19:13 · 199 阅读 · 0 评论 -
深入研究java.lang.ThreadLocal类
一、概述ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程...原创 2018-11-27 09:34:25 · 118 阅读 · 0 评论 -
悲观锁+G1收集器+幻读+连接池+分布式架构 面试题
一面线程池有哪些参数?分别有什么用?如果任务数超过的核心线程数,会发生什么?阻塞队列大小是多少? 数据库连接池介绍下,底层实现说下 hashset底层实现,hashmap的put操作过程 说说HaspMap底层原理?再说说它跟HaspTable和ConcurrentHashMap他们之间的相同点和不同点? 说说B+树和B树的区别,优缺点等? 算法题,对一个链表进行归并排序,链表可能有...原创 2018-11-27 09:37:28 · 478 阅读 · 1 评论 -
常见的Web安全问题
XSS漏洞1.XSS简介跨站脚本(cross site script)简称为XSS,是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式。XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码。2.XSS攻击的危害1、盗取用户资料,比如:登录帐号、网银帐号等...原创 2019-01-22 17:00:24 · 242 阅读 · 0 评论 -
Mybatis初始化原理
简介 MyBatis 是 Java 开发中非常流行的 ORM 框架,其封装了 JDBC 并且解决了 Java 对象与输入参数和结果集的映射,同时又能够让用户方便地手写 SQL 语句。MyBatis 的行为类似于以下几行代码: Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConne...原创 2019-01-22 14:59:49 · 307 阅读 · 0 评论 -
git学习
前言最近想把代码传到GitHub上,结果我发现的demo的npm全是本地安装,上穿到GitHub要死要死,几百M,然后我就搜了下怎么不上传node_modules弄了半天也没成功,于是准备静下心学一下git,也当一个笔记日后好翻阅.研究前我的只会5个命令$ git init $ git add .$ git commit -m "提交的xxxxx"$ git pull$ gi...原创 2018-12-25 10:33:36 · 170 阅读 · 0 评论 -
加密算法比较和项目应用
加密技术通常分为两大类:"对称式"和"非对称式"。对称性加密算法:对称式加密就是加密和解密使用同一个密钥。信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行加解密了。对称加密算法用来对敏感数据等信息进行加密。非对称算法:非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为"公钥"和"私钥",它们两个必需配对使用,否则不能打开加密文件。发送双方A,...原创 2018-12-10 16:51:41 · 202 阅读 · 0 评论 -
最常用的正则表达式
一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^d{n}$3 至少n位的数字:^d{n,}$4 m-n位的数字:^d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小数的正数或负数:^(-)?d+(.d{1,2})?$8...原创 2018-12-10 11:08:39 · 126 阅读 · 0 评论 -
Java 5~11各个版本新特性
Java 5 Java5开发代号为Tiger(老虎),于2004-09-30发行特性列表泛型 枚举 自动装箱拆箱 可变参数 注解 foreach循环(增强for、for/in) 静态导入 格式化(System.out.println 支持%s %d等格式化输出) 线程框架/数据结构 JUC Arrays工具类/StringBuilder/instrument ...原创 2018-12-13 09:23:29 · 451 阅读 · 0 评论 -
HTTP和HTTPS的介绍
一、HTTP和HTTPS的基本概念1、HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。2、HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。...原创 2018-12-03 09:25:00 · 392 阅读 · 0 评论 -
zookeeper
前言相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 是个什么东西吗?如果别人/面试官让你给他讲讲 ZooKeeper 是个什么东西,你能回答到什么地步呢?我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 solr 集群的时候,我使用到了 ZooKeeper 作为 solr 集群的管理工具。前几天,总结项目经验的时候,我突然问自...原创 2018-12-03 09:20:58 · 155 阅读 · 0 评论 -
kafka使用
1.maven依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> &am原创 2018-11-28 14:44:45 · 264 阅读 · 0 评论 -
JVM相关笔试面试题目
1. 类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,他们的执行顺序先静态、先父后子。先静态:父静态 > 子静态优先级:父类 > 子类 静态代码块 > 非静态代码块 > 构造函数一个类的实例化过程:父类中的static代码块,当前类的static顺序执行父类的普通代码块父类的构造函数子类普通代码块子类(当前...原创 2018-11-21 09:21:33 · 345 阅读 · 0 评论 -
2018整理最全的50道Redis面试题
1、什么是Redis?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结...原创 2018-11-16 09:46:49 · 209 阅读 · 0 评论 -
数据库定时任务测试
#查看当前是否已开启事件调度器SHOW VARIABLES LIKE 'event_scheduler';#要想保证能够执行event事件,就必须保证定时器是开启状态,默认为关闭状态SET GLOBAL event_scheduler =1;#或者set GLOBAL event_scheduler = ON;# 选择库USE TRAVEL_CARD_UAT;# 如果原来存在该...原创 2018-10-08 15:43:27 · 1283 阅读 · 0 评论 -
精选Spring Boot三十五道必知必会知识点
问题一Spring Boot、Spring MVC 和 Spring 有什么区别?1、SpringSpring最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。2、Spring MVCSpring MVC 提供了一种分离式...转载 2018-10-08 15:33:42 · 180 阅读 · 0 评论 -
虚拟机知识点
1.java程序运行的一个全过程: java编译环境 java源代码(.class文件) 通过 java编译器 java字节码(.class文件)通过 字节码本地或网络 java平台运行期环境 类装载器字节码的验证 (解释 编译 运行期系统)(java虚拟机) 开始试图执行类HelloApp...原创 2018-10-08 15:31:32 · 448 阅读 · 0 评论 -
mossrose(分布式调度)
依赖引入 <dependency> <groupId>com.jiuxian</groupId> <artifactId>mossrose-spring-boot-starter</artifactId> <version>1.1.1-RELEASE</version><原创 2018-07-03 16:27:13 · 481 阅读 · 0 评论 -
队列潜入了解
RocketMQ 术语Producer 消息生产者,负责产生消息,一般由业务系统负责产生消息。Consumer 消息消费者,负责消费消息,一般是后台系统负责异步消费。NameServer 无状态节点,用来保存活跃的 broker 列表,和topic列表。Broker 消息中转角色,负责存储消息,转发消息。RocketMQ 流程: 1:搭建NameServer节点(produc...原创 2018-07-03 16:26:57 · 248 阅读 · 0 评论 -
jdk里的设计模式
结构型模式:适配器模式:用来把一个接口转化成另一个接口。java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) javax.xml.bind.annotation...转载 2018-11-07 17:25:11 · 142 阅读 · 0 评论 -
Elasticsearch 后台开发
1.jar包compile group: 'org.elasticsearch.client', name: 'transport', version: '5.1.1'compile group: 'io.searchbox', name: 'jest', version: '5.3.3'2.基本介绍 1.index 为库名称(相当于数据库库名) 2.type ...原创 2018-11-07 17:37:40 · 227 阅读 · 0 评论 -
蚂蚁中间件团队面试题:Netty+Redis+Kafka+MongoDB+分布式
一面:自我介绍 JVM垃圾回收算法和垃圾回收器有哪些,最新的JDK采用什么算法。 新生代和老年代的回收机制。 讲一下ArrayList和linkedlist的区别,ArrayList与HashMap的扩容方式。 Concurrenthashmap1.8后的改动。 Java中的多线程,以及线程池的增长策略和拒绝策略了解么。 Tomcat的类加载器了解么 Spring的ioc和aop...原创 2018-11-13 15:07:51 · 1505 阅读 · 1 评论 -
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化
Mysql中有哪几种锁?MyISAM支持表锁,InnoDB支持表锁和行锁,默认为行锁表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高Mysql中有哪些不同的表格?共有5种类型的表格:MyISAM Heap Merge INNODB ISAMMyISAM是M...原创 2018-11-16 09:16:04 · 1928 阅读 · 2 评论 -
最新天猫面试题(含总结):线程池+并发编程+分布式设计+中间件
一面:HashMap实现原理,ConcurrentHashMap实现原理 红黑树,为什么允许局部不平衡 TCP,UDP区别,为什么可靠和不可靠 一次HTTP请求的全过程,包括域名解析、定位主机等 TCP三次握手 MySQL事务是什么?四大特性,四大隔离级别 ConcurrentHashMap和Hashtable区别 spring IOC和AOP,以及各有什么优点 有哪几种常用的...转载 2018-11-14 09:24:54 · 199 阅读 · 0 评论 -
最全BAT架构师130面试题:微服务、高并发、大数据、缓存等中间件
一、数据结构与算法基础· 说一下几种常见的排序算法和分别的复杂度。 · 用Java写一个冒泡排序算法 · 描述一下链式存储结构。 · 如何遍历一棵二叉树? · 倒排一个LinkedList。 · 用Java写一个递归遍历目录下面的所有文件。二、Java基础· 接口与抽象类的区别? · Java中的异常有哪几类?分别怎么使用? · 常用的集合类有哪些?比如List如何排序?...转载 2018-11-14 09:23:47 · 283 阅读 · 0 评论 -
最全BAT数据库面试89题:mysql、大数据、redis
数据库 mysql面试题目:MySQL InnoDB、Mysaim的特点? 乐观锁和悲观锁的区别?? 行锁和表锁的区别? 数据库隔离级别是什么?有什么作用? MySQL主备同步的基本原理。 如何优化数据库性能(索引、分库分表、批量操作、分页算法、升级硬盘SSD、业务优化、主从部署) SQL什么情况下不会使用索引(不包含,不等于,函数) 一般在什么字段上建索引(过滤数据最多的字段)...转载 2018-11-14 09:21:29 · 477 阅读 · 0 评论 -
工作10年,面试超过300人想进阿里的同学,总结出的java面试69题
基础题目Java线程的状态 进程和线程的区别,进程间如何通讯,线程间如何通讯 HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别 Cookie和Session的区别 索引有什么用?如何建索引? ArrayList是如何实现的,ArrayList和LinkedList的区别?ArrayList如何实现扩容。 equals方法实现...原创 2018-11-14 09:18:57 · 689 阅读 · 0 评论 -
rocketMQ使用
1.maven依赖<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.3.0</version> </dependen原创 2018-11-08 16:02:27 · 456 阅读 · 0 评论 -
乐观锁
原文出处: hollischuang (@Hollis_Chuang)乐观锁乐观锁( Optimistic Locking)其实是一种思想。相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。上面提到的乐观锁的概念中其实已经阐述了他的具体实现细节:主要就是两...转载 2018-11-08 09:38:57 · 224 阅读 · 0 评论 -
mongoDB使用demo
1.简介 MongoDB 是一个基于分布式文件存储的数据库。 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系型数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,...原创 2018-11-08 09:29:13 · 743 阅读 · 1 评论