基础 1.为什么要使用消息队列呢? 消息队列主要有三大用途,我们拿一个电商系统的下单举例: 解耦:引入消息队列之前,下单完成之后,需要订单服务去调用库存服务减库存,调用营销服务加营销数据--引入消息队列之后,可以把订单完成的消息丢进队列里,下游服务自己去调用就行了,这样就完成了订单服务和其它服务的解…
大家好,我是老三, 面渣逆袭 系列继续.这节我们回到梦开始的地方--Java基础,其实过了萌新阶段,面试问基础就问的不多,但是保不齐突然问一下.想一下,总不能张口高并发.闭口分布式,结果什么是面向对象,说不清,那多少有点魔幻.所以赶紧来看看,这些基础有没有你不会的! Java概述 1.什么是Java? PS:碎怂Java,有啥好介绍的.哦,面试啊. Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易…
大家好,我是老三啊,面渣逆袭 继续,这节我们来搞定另一个面试必问知识点--Spring. 有人说,"Java程序员都是Spring程序员",老三不太赞成这个观点,但是这也可以看出Spring在Java世界里举足轻重的作用. 基础 1.Spring是什么?特性?有哪些模块? 一句话概括:Spring 是一个轻量级.非入侵式的控制反转 (IoC) 和面向切面 (AOP) 的框架. 2003年,一个音乐家Rod Johnson决定发展一个轻量级的Java开发框架,Spring作为Java战场…
大家好,我是老三,面渣逆袭系列继续,这节我们来搞定Redis--不会有人假期玩去了吧?不会吧? 基础 1.说说什么是Redis? Redis是一种基于键值对(key-value)的NoSQL数据库. 比一般键值对数据库强大的地方,Redis中的value支持string(字符串).hash(哈希). list(列表).set(集合).zset(有序集合).Bitmaps(位图). HyperLogLog.GEO(地理信息定位)等多种数据结构,因此 Redis可以满足很多的应用场景. 而且因为Re…
大家好,我是老三.上期发布了一篇:面渣逆袭:HashMap追魂二十三问,反响很好! 围观群众纷纷表示 不写,是不可能不写的,只有卷才能维持了生活这样子. 当然,我写的这一系列,不是背诵版,是理解版,很多地方都是在讲原理,内容也比较充足,死记硬背很难,大家一定要去理解性地去记忆. 这一篇,除了把之前的HashMap一些小错误进行修正,我还把相对"比较"简单的List也给请了进来,帮大家降降曲线,找找信心--用谢,留下赞就行. 引言 1.说说有哪些常见集合? 集合相关类和接口都在java.…
大家好,我是老三,面渣逆袭 继续,这节我们来盘一盘另一个面试必问知识点--Java并发. 这篇文章有点长,四万字,图文详解六十道Java并发面试题.人已经肝麻了,大家可以点赞.收藏慢慢看!扶我起来,我还能肝! 基础 1.并行跟并发有什么区别? 从操作系统的角度来看,线程是CPU分配的最小单位. 并行就是同一时刻,两个线程都在执行.这就要求有两个CPU去分别执行两个线程. 并发就是同一时刻,只有一个执行,但是一个时间段内,两个线程都执行了.并发的实现依赖于CPU切换线程,因为切换的时间特别短,所以…
大家好,我是老三,"面渣逆袭"系列继续,这节我们来搞定JVM.说真的,JVM调优什么的一个程序员可能整个职业生涯都碰不到两次,但是,一旦用到的时候,那就是救命了,而且最重要的是--面试必问,所以,还能怎么办?整! 引言 1.什么是JVM? JVM--Java虚拟机,它是Java实现平台无关性的基石. Java程序运行的时候,编译器将Java文件编译成平台无关的Java字节码文件(.class),接下来对应平台JVM对字节码文件进行解释,翻译成对应平台匹配的机器指令并运行. 同时JVM也…
大家好,我是老三,面渣逆袭系列继续,这节我们的主角是MyBatis,作为当前国内最流行的ORM框架,是我们这些crud选手最趁手的工具,赶紧来看看面试都会问哪些问题吧. 基础 1.说说什么是MyBatis? 先吹一下: Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动.创建连接.创建statement 等繁杂的过程.程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高. MyBatis…
大家好,我是老三. HashMap作为我们熟悉的一种集合,可以说是面试必考题.简单的使用,再到原理.数据结构,还可以延伸到并发,可以说,就一个HashMap,能聊半个小时. 1.能说一下HashMap的数据结构吗? JDK1.7的数据结构是数组+链表,JDK1.7还有人在用?不会吧-- 说一下JDK1.8的数据结构吧: JDK1.8的数据结构是数组+链表+红黑树. 数据结构示意图如下: 其中,桶数组是用来存储数据元素,链表是用来解决冲突,红黑树是为了提高查询的效率. 数据元素通过映射关系,也就是…
今日内容介绍1.方法基础知识2.方法高级内容3.方法案例 ###01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. ###02方法的定义格式 * A: 方法的格式 * 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法体语句; return 返回值; } * B: 方法的格式说明 * 修饰符:目前就用 public static.后面我们再详细的讲解其他的修饰符. * 返回值类型:就是功能结果的数据类…
前面在讲解String时提到了final关键字,本文将对final关键字进行解析. static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final关键字及其用法. final从总体上来说是"不可变的",可用于修改类.方法.变量. 一. final类 final修饰的类,该类不能被继承.当你确认一个类永远不会被继承或不想被继承,那么就可以用final修饰. 同样,对于接口(…
.output_wrapper pre code { font-family: Consolas, Inconsolata, Courier, monospace; display: block !important; white-space: pre !important; overflow: auto !important } .task-list-list { list-style-type: none } .task-list-list.checked { color: rgb(62,…
在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块. Static变量 在类中用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时初始化,对于该类的所有对象来说,static成员变量只有一份. 可以通过引用或者类名访问静态成员 在类中,用static声明的成员变量为静态变量,或者叫:类属性.类变量. (注意:静态变量是从属于类…
引言   本文将讲解String的几个性质. 一.String的不可变性   对于初学者来说,很容易误认为String对象是可以改变的,特别是+链接时,对象似乎真的改变了.然而,String对象一经创建就不可以修改.接下来,我们一步步 分析String是怎么维护其不可改变的性质: 1. 手段一:final类 和 final的私有成员 我们先看一下String的部分源码: public final class String implements java.io.Serializable, Comp…
本章主要讲了静态变量.静态方法,final关键词.以及介绍了怎么对数字和日期进行格式化输出.这里对这些内容进行了整理.本章还介绍了java.util.Date和java.util.Calendar来操作日期,但是这个直接看API就比较清楚,这里就不写了.   static   static标记过的,与类的实例对象无关   静态方法: 使用static关键词来标记静态方法.有些方法不需要用到类的实例变量,静态变量的代表“一种不依靠实例变量也就不需要对象的行为”.Math就是一个静态方法   调用静…
一:java有三大注释: 1:当行注释: 使用://开始进行注释. 2:多行注释: /**/  在/*和*/之间的内容 会被编译器忽略. 3:文档注释: /***/  /**注释信息*/和多行注释是一样的,除此之外还能生成文档信息api. 注意多行和文档注释不能交叉嵌套. 二:java的关键字和保留字: 关键字:在编程语言中有一些事先定义好的,有特殊含义和用途的单词. 保留字:和关键字一样都是是实现定义好的,只是现在暂时没有特殊意义的和用途,但是说不准那天会突然赋予特殊意义的. 注意关键字和保留…
1.封装 import java.util.Date; public class Human { protected String name; protected BirthDay birthDay; protected String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return…
内部类简单来说就是把一个类的定义放到另一个类的定义内部 内部类分为:成员内部类.局部内部类.匿名内部类.静态内部类 成员内部类:最常见的内部类 public class Outter { private int i = 0; public static String name = "sam"; public Outter(int i) { this.i = i; } class Inner{ public Inner() { System.out.println("Inner…
static关键词的作用 1.静态成员变量的语法特定2.静态函数的语法特定3.静态代码块的语法特定 定义静态成员变量 Person.java class Person{ static int a; } 按照以前可以这么调用 public class Test1{ public static void main(String[] args){ Person person = new Person(); person.a = 10; System.out.println(person.a); } }…
一.Java基本数据类型 基本数据类型有8种:byte.short.int.long.float.double.boolean.char 分为4类:整数型.浮点型.布尔型.字符型. 整数型:byte.short.int.long 浮点型:float.double 布尔型:boolean 字符型:char   二.各数据类型所占字节大小 计算机的基本单位:bit . 一个bit代表一个0或1 byte:1byte = 8bit 1个字节是8个bit short:2byte int:4byte lo…
一.        调试 步骤1:设置断点(不能在空白处设置断点) 步骤2:启动调试 步骤3:调试代码(F6单步跳过)笔记本Fn+F6(F5) 步骤4:结束调试 掌握调试的好处? l  很清晰的看到,代码执行的顺序 l  快速定位到异常代码出现的位置,并帮助修改或改进代码 二.     while循环 1.循环的优点? 减少重复代码的编写:程序会更加的简洁 2.语法 while(表达式){ // 1.表达式是[循环条件],结果必须是boolean类型 //2.{}中的代码,即[循环操作(体)]…
定义:是类和类之间的关系"is a" 弗父类(基类)->子类(派生类) 是一直单继承的关系 好处:子类拥有父类的属性方法(private除外) 语法 class Son extends Father{ ... } 方法的重写 WHAT? 子类对继承的父类法方法不满意,重写此方法,当调用会优先调用子类的方法 语法规则:返回值类型 方法名以及参数等都相同才是方法的重写 初始化过程 父类对象-父属性初始化-构造方法-子类对象-属性初始化-构造方法 super 关键字 在对象的内部使用,…
方法概述 方法的定义格式 什么是方法?方法就好像是一个工厂. 如奶牛场 原料:奶牛,饲料 产出物:牛奶,各种奶制品 程序当中的方法 参数(原料):进入方法的数据 返回值(产出物):从方法中出来的数据 如何定义一个方法?格式:              修饰符返回值类型方法名称(参数类型参数名称){                            方法体                            return 返回值:              } 解释: 修饰符:目前的固定写法…
将之前的所有关于Java基础知识的随笔,整理成质量较高的十几篇随笔,几乎是好几篇比较零散的随笔合成现在的一篇,自认为还不错. java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规则 java基础(三) 加强型for循环与Iterator java基础(四) java运算顺序的深入解析 java基础(五) String性质深入解析 java基础(六) switch语句的深入解析 java基础(七) java四种访问权限 java基础(八) 深入解析常量池与装拆箱机制 java…
身边的师弟师妹经常问到:非计算机专业出身,你是在2年内如何逆袭成BAT年薪40W的资深开发工程师的.其实很简单——努力! 我16年毕业于普通的二本学校,非计算机专业出身,只因为对软件开发感兴趣,所以找工作的时候就一直投IT行业的职位.刚踏入这个行业时,以为突击一下东拼西凑的面试材料,就能有个很好的收获.结果却是,别说大公司了,就是很多看不上的小公司的笔试题都过不去. 焦躁阶段 后来我去了本地的一个小公司去做服务端的开发.虽然叫服务端开发,但其实就是做系统指标监控功能,从DB中读取一些指标数据,通…
(1)80% Java工程师都有的迷茫 这篇文章,跟大家聊一聊很多很多很多人问我的一个问题:中小公司的Java工程师应该如何规划准备,才能跳槽进入BAT这类一线互联网公司? 之所以我用了三个 “很多” 来形容这个问题,是因为实在这个问题太普遍了,因为国内Java工程师至少好几十万,但是在国内互联网大厂里干过的码农可能也就十分之一,或者五分之一的比例. 所以,其实这个也是符合28法则的,少部分人在大厂里干过,发展的很好.但是大部分人还是在中小型公司,或者外包类传统IT公司里工作. 这些同学可能对自…
1275: 男神的逆袭 题目   计算两个日期相差的天数.更多内容点击标题. 分析   下面说一下我的思路(自己写的,无扩展性): 给定一个日期,首先计算这个日期是这一年的第多少天. 给定两个日期,直接比较年份即可,闰年相差366天,平年相差365天,计算出相差的天数. 然后将两个日期在第一步中算的天数相减. 将2中和3中得到的天数相加即为结果.   CSDN上计算日期差的博客有很多,我试了几个都没成功(可能是我写错了,大家可以尝试一下).个人觉得我的方法比较笨,EMMM,就当练练基础吧(自我安…
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String s2 = “hello”:结论:s1 == s2. 字符串常量放在data区. 3. String s3 = new String("hello"); String s4 = new String("hello");结论:s3 != s4.但s3.equals(s4).…
小猪猪逆袭成博士之C++基础篇(一) 关键词: 数据精度.强制类型转换.变量命名规则 综述: 1.大多数编程语言通过两种方式来进一步补充其特征:一是赋予程序员自定义数据类型的权利(C++中的类):二是讲一些有用的功能封装成库函数提供给程序员使用(C++提供的函数和标准库). 2.C++是一种静态数据类型语言,他的类型检查发生在编译时,而另外一些语言例如Python是在运行时检查数据类型的. 基础篇主要分为六个部分,通过这六个部分我们将了解C++的基本知识.通过这些基本语法知识就足够在OJ平台上A…
小猪猪逆袭成博士之C++基础篇(三)字符串 String 写在题外的话: 非常感谢在我发了第一篇随笔以后有很多人看还评论了,这大概就是一种笔记性质的,也不一定全对,如果不对的地方请指出来让我加以改正.有时候自己心里明白在写的时候说不清楚,有时候不明白的写的时候慢慢就清楚了,还有的是不太明白写也没有写清楚.非常感谢各位能够抽时间看文章并且写评论,有什么理解不对的地方请指出来,喷的有道理我一定会虚心接受的! 字符串类型是我们经常用到的,下面介绍一些平时常用的功能. String需要包含的头文件:#i…