自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(115)
  • 收藏
  • 关注

原创 java教程(3),阿里+头条+腾讯大厂Java笔试真题

概念辨析注解 是放在java源码的类、方法、字段、参数前的一种特殊“注释”。注释 会被编译器直接忽略,注解则可以被编译器打包进入class文件,因此,注解是一种用作标注的“元数据”。注解分类java的注解可以分为3类:1.由编译器使用的注解,例如:@Override:让编译器检查该方法是否正确地实现了覆写;@SuppressWarnings:告诉编译器忽略此处代码产生的警告。这类注解不会被编译进入.class文件,它们在编译后就被编译器扔掉了。2.由工具处理.class文件使用

2021-09-12 09:07:29 190 1

原创 java教程(2),2021最新阿里Java高级面试题及答案

====在 [java教程——反射(二)]()一节中我们讲过 拿到 Class 实例就可以拿到其字段,其实这节我们要讲的 获取其方法并调用是一样的。首先,我们得知道 如何通过 Class 实例获取 其方法。与 获取字段一样,四种方法。Method getMethod(name, Class...):获取某个public的Method(包括父类)Method getDeclaredMethod(name, Class...):获取当前类的某个Method(不包括父类)Method[

2021-09-12 09:05:47 172 1

原创 java教程(1),最新精心整理Java面试题

}}仔细看上述代码,`main`线程通过调用`t.interrupt()`方法中断`t`线程,但是要注意,`interrupt()`方法仅仅向`t`线程发出了“中断请求”,至于`t`线程是否能立刻响应,要看具体代码。而`t`线程的`while`循环会检测`isInterrupted()`,所以上述代码能正确响应`interrupt()`请求,使得自身立刻结束运行`run()`方法。特殊状态下的中断========我们上面看到的 中断一个普通线程 其实不过如此:用 interr

2021-09-12 09:04:01 165 1

原创 Java异常面试题(2020最新版,2021年Java开发者常见面试题

* [try-with-resource](about:blank#trywithresource_288)* [Java异常常见面试题](about:blank#Java_308)* * [1\. Error 和 Exception 区别是什么?](about:blank#1_Error__Exception__310) * [2\. 运行时异常和一般异常(受检异常)区别是什么?](about:blank#2__318) * [3\. J...

2021-09-12 09:02:15 147

原创 Java开发面试中常问的数据库方面问题,程序员怎样优雅度过35岁中年危机

ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;有哪些特性有输入输出参数,可以声明变量,有if/else, case,while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能;函数的普遍特性:模块化,封装,代码复用;速度快,只有首次执行需经过编译和优化步骤,后续被调用可以直接执行,省去以上步骤;DROP PROCEDURE IF EXISTS `proc_adder`;DELIMITER

2021-09-12 09:00:28 129

原创 Java底层分析多线程行为,我的阿里手淘面试经历分享

}此代码将打印“main”,标识当前正在执行的线程。这是学习多线程概念的第一步。## Java线程生命周期1使用线程时,了解线程状态至关重要。Java的线程生命周期包含六种线程状态: - New:Thread()已经实例化了一个新的。- Runnable接:本Thread的start()方法被调用。- Running:start()已调用该方法并且线程正在运行。- Suspended:线程暂时挂起,可以由另一个线程恢复。- Blocked:线程正在等待机会运行。当一个线程已经

2021-09-12 08:58:43 75

原创 Java并行程序基础,字节跳动+京东+美团+腾讯面试总结

1. ![](https://img-blog.csdnimg.cn/20210721220143231.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0h1YmJlcnQwMQ==,size_16,color_FFFFFF,t_70)2. ![](https://img-blog.csdnimg.cn/20210721220226880.p

2021-09-12 08:56:57 117

原创 16条代码规范建议,快看看自己做到没,Java开发三年月薪才12K

private static Map<String, Integer> map = new HashMap<String, Integer>(){{map.put(“Leo”,1);map.put(“Family-loving”,2);map.put(“Cold on the out side passionate on the inside”,3);}};private static List list = new ArrayList<>(){{lis

2021-09-11 21:07:08 55

原创 15道常考SpringBoot面试题整理,springmvc源码详解的视频

3**、**什么是JavaConfig?Spring JavaConfig是Spring社区的产品,它提供了配置Spring IoC容器的纯Java方法。因此它有助于避免使用XML配置。使用JavaConfig的优点在于:面向对象的配置。由于配置被定义为JavaConfig中的类,因此用户可以充分利用Java中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean方法等。减少或消除XML配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在XML和Java之间来回切换。Ja

2021-09-11 21:05:23 144

原创 10个微服务架构设计的最佳实践,狂神说Java进阶路线

当从单体应用正确的迁移到微服务架构的时候,可以获得以下收益:你可以根据自己的意愿选择一门语言开发微服务,按照自己的节奏独立发布它,并独立扩展。组织中的不同团队可以独立的拥有自己特定的微服务,并且随着并行开发以及重用的增加,产品发布的时间会更快。可以更好的隔离故障,因为发生在特定微服务中的错误会在对应的服务中被处理掉,因此不会影响到生态系统中的其他服务。但是,如果在构建微服务时未遵循正确的原则,则最终可能会陷入像纠缠在一起的意大利面一样的状态。这让维护变得非常困难,因为这需要不同的

2021-09-11 21:03:37 579 1

原创 10592字,475行,Java自学宝典下载免费

```配置完毕之后, 重启MyCat服务;属性含义说明:checkSQLschema 当该值设置为true时, 如果我们执行语句"select * from test01.user ;" 语句时, MyCat则会 把schema字符去掉 , 可以避免后端数据库执行时报错 ; balance 负载均衡类型, 目前取值有4种: balance="0" : 不开启读写分离机制 , 所有读操作都发送到当前可用的writeHost上. balance="1" : 全部的re.

2021-09-11 21:01:57 140 1

原创 10592字,475行(2),微信抢红包实战案例

Position : 从哪个位置开始推送日志Binlog_Ignore_DB : 指定不需要同步的数据库## 2.slave1. 在 slave 端配置文件`/usr/my.cnf`中,配置如下内容:```java#mysql服务端ID,唯一 server-id=2 #指定binlog日志 log-bin=/var/lib/mysql/mysqlbin #启用中继日志 relay-log=mysql-relay执行完毕之后,需要重启Mysql:service mysql

2021-09-11 21:00:08 150

原创 10592字,475行(1),阿里面试题Java

<writeHost host="hostM1" url="192.168.192.157:3306" user="root" password="itcast"> <readHost host="hostS1" url="192.168.192.158:3306" user="root" password="itcast" /> </writeHost> </dataHost> </mycat:schema>3. 修改`co.

2021-09-11 20:58:20 91

原创 1-7中HashMap死循环分析,Java全套视频百度

对table[1]中的链表来说,进入while循环,此时e=key(3),那么next=key(7),经过计算重新定位e=key(3)在新表中的位置,并把e=key(3)挂在newTable[3]的位置这样循环下去,将table[1]中的链表循环完成后,于是HashMap就完成了扩容并发下的扩容上面都是单线程下的扩容,当多线程进行扩容时,会是什么样子呢?初始的HashMap还是:我们现在假设有两个线程并发操作,都进入了扩容操作, 我们以颜色进行区分两个线程。回顾我们的扩容代码,.

2021-09-11 20:56:31 86

原创 Maven简介,Java进阶路线图

理想的项目构建高度自动化,跨平台,可重用的组件,标准化传统方式管理jar包依赖的问题:jar包冲突jar包依赖jar包体积过大jar包在不同阶段无法个性化配置使用maven方式管理jar包依赖的好处:解决jar包冲突解决jar包依赖问题jar包不用再每个项目保存,只需要放在仓库即可maven可以指定jar包的依赖范围注:Maven安装与配置参考[Maven安装与配置]()[]()Maven标准目录结构若要使用Maven,那么项目的

2021-09-10 12:30:57 181 1

原创 Kotlin(3)-协程和操作符重载,Java程序员秋招三面蚂蚁金服

Kotlin 文件和类不存在一对一关系共生体继承修饰符空指针问题正文重难点协程想了很久,关于协程的内容,在官网上确实有很多内容,基础知识概念,基本使用,以及 流操作,通道,异常处理,并发处理等,不方便在这里展开。具体的参照:[Kotlin中文网]()这里具体去学习。本章节,只总结一下近期查阅资料并经本人验证的知识点。概念英文 coroutines : /,kəuru:'ti:n/ 意: 协同程序。 简称协程。Kotlin提出协程概念,是为了简化异步编程..

2021-09-10 12:29:28 92

原创 Java面试题总结(乱序版,面试官问的那些Java原理你都懂吗

4、原型模式clone();原型模式的本质是拷贝原型来创建新的对象,拷贝是比new更快的创建对象的方法,当需要大批量创建新对象而且都是同一个类的对象的时候考虑使用原型模式。一般的克隆只是浅拷贝(对象的hash值不一样,但是对象里面的成员变量的hash值是一样的)。有些场景需要深拷贝,这时我们就要重写clone方法,以ArrayList为例:5、适配器模式作用:使不兼容的接口相容。JDK中体现:InputStream、OutputStream。6、装饰器模式作用:为类添加新的功能,防止类继承

2021-09-10 12:27:50 153

原创 Java面试知识点解析,记录一次腾讯Java岗面试笔试总结

查找并加载类的二进制数据加载时类加载过程的第一个阶段,在加载阶段,虚拟机需要完成以下三件事情:通过一个类的全限定名来获取其定义的二进制字节流。将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。在Java堆中生成一个代表这个类的 java.lang.Class 对象,作为对方法区中这些数据的访问入口。相对于类加载的其他阶段而言,加载阶段(准确地说,是加载阶段获取类的二进制字节流的动作)是可控性最强的阶段,因为开发人员既可以使用系统提供的类加载器来完成加载,也可以自定义自己的

2021-09-10 12:26:13 125

原创 java进阶篇01、泛型,献给真心想学Java的打工人

Generic foodGeneric2 = new Generic<>();print2(foodGeneric2);// 错误使用// Generic appleGeneric2 = new Generic<>();// print2(appleGeneric2);### 二.通配符泛型对象的参数读取和修改#### 1.使用`? extends Xxx`创建通配符泛型对象Generic<? extends Fruit> gene

2021-09-10 12:24:31 54

原创 Java程序员必看经典书籍,助你早日打通任督二脉,Java菜鸟教程视频

一、Java四大神兽,神兽在手,天下我有!1、《Java核心技术卷一》唯一可以和《Java编程思想》媲美的一本Java入门书籍。单从技术的角度来看,前者更好一些。但上升到思想层面嘛,自然后者更好,两者的偏重点不同。2、《Java编程思想》Java第一神作,适合各种阶段的Java程序员(除了小白),相当于武林绝学中的易筋经,我的第二本Java技术书,第一本读了两遍的书,值得反复阅读,我是2016年培训转行的,翻开京东白条,居然是2019年1月份买的,惭愧惭愧啊。3、《Effective Jav

2021-09-10 12:22:53 106

原创 三年Java开发,刚从美团,springboot入门到精通pdf

2、java的特点3、说一说你做的东西4、遇到的问题二面:1、简历上写的所有技术基本都问了,问得有点多,自己都有点乱,会的就说 不会的就说不知道。2、谈对工作的看法,以及对问题的态度3、linux的知识三面:1、HashMap实现原理。2、线程池的实现原理3、让说你自己最熟悉的技术,问得很深。4、CAS和锁的区别,以及应用场景。四面:领导说比较忙,简单聊了聊,问问我为什么要换工作,以及期望薪资。很快就结束了。阿里记得不很清楚,面试时状态不很好,面试官跳跃性比较.

2021-09-09 21:30:24 112

原创 delete后加 limit是个好习惯么,Java编程教程视频下载

如果你要删除一个表里面的前 10000 行数据,有以下三种方法可以做到:第一种,直接执行 delete from T limit 10000;第二种,在一个连接中循环执行 20 次 delete from T limit 500;第三种,在 20 个连接中同时执行 delete from T limit 500。你先考虑一下,再看看几位老铁的回答:--------------------------------------------Tony Du:方案一,事务相对较长,则.

2021-09-09 11:13:13 87

原创 CRUD搬砖两三年了,怎么阅读Spring源码,kafka入门与实践电子版

BeanFactoryPostProcessor,是由 Spring 框架组建提供的容器扩展机制,允许在 Bean 对象注册后但未实例化之前,对 Bean 的定义信息 BeanDefinition 执行修改操作。BeanPostProcessor,也是 Spring 提供的扩展机制,不过 BeanPostProcessor 是在 Bean 对象实例化之后修改 Bean 对象,也可以替换 Bean 对象。这部分与后面要实现的 AOP 有着密切的关系。同时如果只是添加这两个接口,不做任何包装,那..

2021-09-09 11:11:42 118

原创 ConcurrentHashMap源码解读,Java知识点总结合集

左边便是Hashtable的实现方式—锁整个hash表;而右边则是ConcurrentHashMap的实现方式—锁桶(或段)。 ConcurrentHashMap将hash表分为16个桶(默认值),诸如get,put,remove等常用操作只锁当前需要用到的桶。试想,原来 只能一个线程进入,现在却能同时16个写线程进入(写线程才需要锁定,而读线程几乎不受限制,之后会提到),并发性的提升是显而易见的。更令人惊讶的是ConcurrentHashMap的读取并发,因为在读取的大多数时候都没有用到锁定,

2021-09-09 11:10:00 56

原创 Centos7,springcloud架构源码

[root@rs1 ~]# yum install -y ntp #安装服务[root@rs1 ~]# ntpdate time.windows.com #同步时间(前提是虚拟机可以联网)[root@rs1 ~]# crontab -e #修改cron表,设置每30分钟更新矫正一次时间*/30 * * * * /sbin/ntpdate time.windows.com &> /dev/null[root@rs1 ~]# systemctl restart ntpd#下面的可以省

2021-09-09 11:08:22 62

原创 Binder源码阅读指南之java层,满满的干货

// ServiceManager is never localreturn new ServiceManagerProxy(obj);}直接创建了一个`ServiceManagerProxy`对象### [ServiceManagerProxy初始化]()public ServiceManagerProxy(IBinder remote) {mRemote = remote;mServiceManager = IServiceManager.Stub.asInterface(r

2021-09-09 11:06:40 254

原创 MySql知识体系总结(2021版,springcloud高级面试题

InnoDB: 没有保存表的总行数,如果使用select count(*) from table;就会遍历整个表,消耗相当大,但是在加了wehre条件后,myisam和innodb处理的方式都一样。10、CRUD操作MyISAM:如果执行大量的SELECT,MyISAM是更好的选择。InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。11、 外键MyISAM:不支持InnoDB:支持三、sql优化简介1、什么情况下进行sql优化性能

2021-09-08 10:13:24 99

原创 MySQL深度解析,基础,linux学习笔记

第三章:服务性能剖析第四章:Schema与数据类型优化第五章:创建高性能的索引第六章:查询性能优化第七章:MySQL高级特性第八章:优化服务器设置第九章:操作系统和硬件优化第十章:复制第十一章:可扩展的MySQL第十二章:高可用性第十三章:云端的MySQL第十四章:应用层优化第十五章:备份与恢复第十六章:MySQL用户工具以上就是这份文档的目录,怎么样,是不是感觉内容很丰富呢!看看内容吧1.1:MySQL逻辑架构1.2:并发控制1.3.4:MySQL中的

2021-09-08 10:11:37 54

原创 MySQL数据克隆的用户权限设计(1),毕业工作5年被裁

1.产品定位:数据克隆是高效,安全的从通过从线上指定数据库/表克隆数据,从而快速构建虚拟环境,提供更高效的数据交付服务。从效率上可以支持业务自助提取数据,分钟级快速构建环境,可以通过workbench等工具访问数据,整个过程基本不需要DBA手工操作介入。从安全上,支持数据操作日志审计,提供库/表访问过滤,随机虚拟环境和临时密码交付,此外会对虚拟环境使用时长进行限制,尽可能保证数据的使用安全。2.适用场景:目前数据克隆功能支持如下的场景:1)线上配置数据的快速查看2)提取线上表结构3)日志数据查.

2021-09-08 10:06:42 116 1

原创 MySQL拼接函数CONCAT的使用心得,OMG

| 1 | D刀锋之影 | 泰隆 | 6300 || 2 | X迅捷斥候 | 提莫 | 6300 || 3 | G光辉女郎 | 拉克丝 | 1350 || 4 | F发条魔灵 | 奥莉安娜 | 6300 || 5 | Z至高之拳 | 李青 | 6300 || 6 | W无极剑圣 | 易 | 450 || 7 | J疾风剑豪 |

2021-09-08 10:05:12 138

原创 MySQL-千万数据量深分页优化,拒绝线上故障,Java中级工程师面试题及答案

* 书签记录ORDER BY 巨坑,慎踩ORDER BY 索引失效举例结言软硬件说明MySQL VERSIONmysql> select version();+-----------+| version() |+-----------+| 5.7.30 |+-----------+1 row in set (0.01 sec)表结构说明借鉴公司表结构,字段、长度以及名称均已删减mysql> DESC MCS_PROD;+------.

2021-09-08 10:03:34 120

原创 Dubbo如何处理业务异常,这个一定要知道哦,如何应对缓存穿透和缓存雪崩问题

DataNotFoundException 的编码以及错误信息: PUBLIC_DATA_NOT_FOUND(1001,"数据没有找到") consumer消费者代码运行,输入不存在的goodsID,我们期望我们自定义的异常类被我们拦截到,并做一些处理;但是provider生产端抛给消费者的异常竟然是RuntimeException,只是里面的message是我们的业务异常调用栈信息。如下:不是我们希望的抛给消费者端是DataNotFoundException异常。导致我们消费端没法针..

2021-09-07 14:44:35 205

原创 dubbo-go v3 版本 go module 踩坑记,Java实战项目视频

​ 在 STEP 9 中,我们使用 `go mod edit -replace` 替换了 dubbogo 的依赖路径,将其替换为发起 PR 请求的仓库地址和 commit id。在此基础上,当镜像构建跑到 STEP11 ,尝试使用 `go mod tidy` 拉包时发生了错误。 ​ 回过头查看错误日志,我们可以发现: ​ ![2.png](https://img-blog.csdnimg.cn/img_convert/e51bebbce1ad721f03658c4f555...

2021-09-07 14:42:48 110

原创 Dubbo 一些你不一定知道但是很好用的功能,Java面试题pdf下载

boolean isConsumerSide = RpcContext.getContext().isConsumerSide(); 本地伪装本地伪装通常用于服务降级,例如某验权服务,当服务提供方全部挂掉后,客户端不抛出异常,而是通过 Mock 数据返回授权失败。使用方式如下,mock指定的实现类在Provider抛出RpcException异常时执行(一定要抛出RpcException异常才执行),取代远程返回结果:<dubbo:reference id="demoService".

2021-09-07 14:41:11 44

原创 Dart单线程理解(与Java完全不同,程序员必须要了解的知识点

跟 Java 一样,具有唯一性,也就是从main()开始的线程。微任务队列里面包含众多微任务,主要是通过scheduleMicrotask进行调度。事件任务队列里面包含众多事件任务,例如:I/O 事件任务、Timer 事件任务等。Dart 单线程优先级主线程 > 微任务队列 > 事件任务队列。所以,在 Dart 单线程中,会优先执行完主线程,在执行主线程的过程中,若发现微任务或者事件任务,就会将他们放入相应的任务队列中,然后就会一个个执行完微任务队列里面的微任务,其次再去执行事件任

2021-09-07 14:37:53 133

原创 CRUD搬砖两三年了,怎么阅读Spring源码,Java经典算法面试题

参考 Spring Bean 容器源码的实现方式,在 BeanFactory 中添加 Object getBean(String name, Object... args) 接口,这样就可以在获取 Bean 时把构造函数的入参信息传递进去了。另外一个核心的内容是使用什么方式来创建含有构造函数的 Bean 对象呢?这里有两种方式可以选择,一个是基于 Java 本身自带的方法 DeclaredConstructor,另外一个是使用 Cglib 来动态创建 Bean 对象。Cglib 是基于字节码框架...

2021-09-07 14:36:23 130

原创 Crash监控方案(一,Java高级开发面试视频

method.insertAfter("long endTime = System.currentTimeMillis();\n"+ " System.out.println(endTime-beginTime);"); return ctClass.toBytecode(); } catch (NotFoundException e) { ...

2021-09-07 14:34:46 83

原创 Java8-Stream:2万字20个实例,Java面试问题集合

personList.add(new Person(“Alisa”, 7900, “female”, “New York”));class Person {private String name; // 姓名 private int salary; // 薪资 private int age; // 年龄 private String sex; //性别 private String area; // 地区 // 构造方法 public Person(String name, int salary,

2021-09-06 10:17:07 403

原创 Java8 新特性,最新精心整理Java面试题

lambda 表达式只能引用标记了 final 的外层局部变量,这就是说不能在 lambda 内部修改定义在域外的局部变量,否则会编译错误。2. Java 8 方法引用       类或对象  :: 方法3.  函数式接口@FunctionalInterfaceinterface GreetingService { void sayMessage(String message);}GreetingSer

2021-09-06 10:15:22 477

原创 Java8 新特性(1),优秀Java程序员必知必会的网络基础

4. Stream参考:https://blog.csdn.net/y_k_y/article/details/84633001Student s1 = new Student("aa", 10,1);Student s2 = new Student("bb", 20,2);Student s3 = new Student("cc", 10,3);List<Student> list = Arrays.asList(s1, s2, s3); //装成listLis

2021-09-06 10:13:38 122

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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