程序员
文章平均质量分 76
m0_60848502
这个作者很懒,什么都没留下…
展开
-
你知道如何用面向对象思想写好并发编程吗?(1),mysql面试笔试题
}// 设置库存下限void setLower(long v){ lower.set(v);}// 省略其他业务代码}虽说上面的代码是没有问题的,但是忽视了一个约束条件,就是**库存下限要小于库存上限**,这个约束条件能够直接加到上面的 `set` 方法上吗?我们先直接加一下看看效果(如下面代码所示)。我们在 `setUpper()` 和 `setLower()` 中增加了参数校验,这乍看上去好像是对的,但其实存在并发问题,问题在于存在竞态条件。这里我顺便插一句,其实当你看到代码里出现 if原创 2021-09-09 23:34:51 · 120 阅读 · 0 评论 -
KubeVela 1,docker面试题汇总
咦,于是乎大家兜兜绕绕,又回到了故事的原点。唯一的变化是,咱们今天这个 PaaS 是基于 K8s 实现的,确实轻松了不少。但实际情况呢?这个基于 Kubernetes 构建 PaaS 的故事,看似美好,其实整个过程却难免有些“心酸”。说的好听点是开发 PaaS,其实 80% 的工作是在设计和开发 UI,剩下的工作则是安装和运维 K8s 插件。而更令人遗憾的是,我们这样构建出来的 PaaS,其实跟以前的 PaaS 没有本质不同,任何时候用户诉求改变,我们都需要花大量时间重新设计、修改前端、排期上线。结果就原创 2021-09-09 16:12:48 · 201 阅读 · 0 评论 -
Kotlin学习笔记(一)—基础语法与Java全面PK,当上项目经理才知道
fun sum(a:Int,b:Int) = a + b1对应Java代码:```javaint sum(int a,int b){ return a+b;}123 3.函数无返回值或者说返回值无意义:fun sum(a:Int,b:Int):Unit{ println("sum of $a and $b is ${a+b}")}123orfun sum(a:Int,b:Int){ println("sum of $a and $b is ${a+原创 2021-09-09 16:10:59 · 163 阅读 · 0 评论 -
Kotlin只是一个“网红,【面试必备】
fun doSth(text: String) {val f: String = Utils.format(text) // compiles but assignment can throw NPE at runtimeprintln ("f.len : " + f.length)}那你就需要用 Elvis 来解决这个问题:fun doSth(text: String) {val f: String = Utils.format(text) ?: “” // safe wi原创 2021-09-09 16:09:25 · 205 阅读 · 0 评论 -
Kotlin之DSL,GC+堆排+Tomcat+算法题
DSL构建布局前言一、What’s the DSL?二、初探1.DSL常见的应用三.koltin中的DSL1.扩展函数2.带接收者的 Lambda 表达式3.用DSL构建布局总结一.对于DSL构建的布局二. Compose[]()前言=================================================================入职新公司后发现kotlin的语法知识跟...原创 2021-09-09 16:07:37 · 280 阅读 · 0 评论 -
Kafka集群管理,2021年百度Java面试真题
每个 Broker 即一个 Kafka 服务实例,多个 Broker 构成一个 Kafka 集群,生产者发布的消息将保存在 Broker 中,消费者将从 Broker 中拉取消息进行消费。Kafka集群架构图从图中可以看出 Kafka 强依赖于 ZooKeeper ,通过 ZooKeeper 管理自身集群,如:Broker 列表管理、Partition 与 Broker 的关系、Partition 与 Consumer 的关系、Producer 与 Consumer 负载均衡、消费进度 Offset原创 2021-09-09 16:06:08 · 98 阅读 · 0 评论 -
JVM知识梳理,腾讯、网易必问的20道题Java面试题
* 方法区中,常量引用的对象 * 本地方法栈中Native引用的对象 * java 虚拟机内部的引用…(具体详见P70)。 算法思路:以GC ROOT 的对象作为起始点,从这些节点开始向下搜索,走过的路径称为引用链( Reference Chain ) 当一个对象到GC ROOT 时没有任何引用链就会被判”缓刑“,要想真正死亡需要经历两次标记,刚才所说的只是暂时标记了一次,第二次标记的时候系统需要判断该对象是否有必要执行一次finaliz原创 2021-09-09 16:04:25 · 71 阅读 · 0 评论 -
【线程,2021最新阿里Java高级面试题总结
那么这种情况如何解决呢?那就是该线程发现条件还没有成熟(也就是发现ATM机没钱的时候),就应该释放锁,并且等待,知道其他线程通知说条件已经成熟了,然后把该线程唤醒(也就是运钞扯来了,并且把钱放进ATM机了,或者是后面的人进去存钱,存好了之后跟他说我刚刚存钱了,你可以进去取钱了)关键在于需要根据实际情况来手动控制线程之间的先后顺序。(虽然线程的执行顺序是由调度器实现的,但是有时候要控制先后顺序的hi后就需要手动实现)——这就引出了等待集等待集的核心操作主要有两个1.等待(wait方法)2.通知(no原创 2021-09-08 15:56:05 · 52 阅读 · 0 评论 -
【线程(1),一文详解
代码实现 import java.util.concurrent.TimeUnit;//使用循环数组实现生产者消费者模型public class ThreadDemo18 { //Java里面的数组需要初始化容量,因为目前不知道,使用根据用户输入来决定 int[] items = null; int first;//队首元素下标——出列的时候会用到 int last;//队尾元素下标——入队的时候会用到 int size;//实际存储容量原创 2021-09-08 15:54:27 · 56 阅读 · 0 评论 -
【程序猿历程,阿里,腾讯,PDD等大厂Java面试真题
总结本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】MySQL50道高频面试题整理:试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_609...原创 2021-09-08 15:52:53 · 92 阅读 · 0 评论 -
【程序人生,三面蚂蚁核心金融部
前言哈喽,大家好,我是一条。2021-04-24,我发布了这篇《是的,我离职了!》大家可以看到,阅读量并不高,因为那时我还只有不到100个粉丝,三年陆陆续续也发布不到100篇文章。从离职这篇文章以后,开始高效率,高质量的更文,我告诉自己:不为别的,就为自己能干成一件事!上天总是会眷顾努力的人,恰好这时CSDN推出「新星计划」,我就上了这趟顺风车。从「新星计划」的java赛道胜出之后,我又加入「原力计划」。直到今天,共发布文章52篇,资源5个。粉丝数量6k+,阅读量27w+。同时获得了「后原创 2021-09-08 15:51:16 · 65 阅读 · 0 评论 -
【白话设计模式,半路出家Java程序员看我轻松逆袭
文章目录定义问题解决方案结构代码实现通用产品接口具体产品基础创建者具体创建者客户端Java中应用应用场景实现方式优缺点定义工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。问题假设你正在开发一款物流管理应用。 最初版本只能处理卡车运输, 因此大部分代码都在位于名为 卡车的类中。一段时间后, 这款应用变得极受欢迎。 你每天都能收到十几次来自原创 2021-09-08 15:49:27 · 132 阅读 · 0 评论 -
【漫画,百度网盘Java项目
然而饿汉模式在类成员变量比较多,或变量比较大的情况下,可能会在没有使用类对象的情况下,一直占用堆内存。试想下,如果一个开源框架中的所有类都是基于饿汉模式实现的单例,这将会初始化所有单例类。将会占据堆中很大一部分空间,对系统性能来说无疑是灾难性的。懒汉模式//懒汉模式public final class Singleton { private static Singleton instance= null;//不实例化 private Singleton(){}//构造函数 .原创 2021-09-08 15:47:40 · 272 阅读 · 0 评论 -
Tomcat内存释放不了,鸟哥的linux私房菜
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "JAVA_OPTS="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m"CATALINA_OPTS原创 2021-09-06 16:48:08 · 1290 阅读 · 0 评论 -
ThreadLocal到底是什么,程序员必看
} public static void set(String words) { StringBuilderUtil.stringBuilderThreadLocal.set(new StringBuilder(words)); System.out.printf("Set, Thread name:%s , ThreadLocal hashcode:%s, Instance hashcode:%s, Value:%s\n", ...原创 2021-09-06 16:46:19 · 130 阅读 · 0 评论 -
TCP为何要进行“三次握手,2021大厂Java开发面试总结+解答
**程序员:**那您且细听分说三次握手**程序员:**这个“三次握手”就是通信建立链接的一个过程,看下图通俗点讲就是:客户端:你好,我是客户端服务端:你好,客户端,我是服务端客户端:你好,服务端也经常把这个过程叫做“请求->响应->响应的响应”**面试官:**打断一下,问个问题,为什么不是两次或者四次,非得是三次呢?**程序员:**嗯,不错,是个称职的面试官!试想一下,客户端发送一个连接,由于丢包、超时,或是服务端根本就不想建立连接,那这个时候客户端怎么办?客户端.原创 2021-09-06 16:44:45 · 127 阅读 · 0 评论 -
System,什么是微服务扩展性和高可用、可扩展性
//获取Object数组中的字符串类型数据private static void getStringArrayFromObjectArray1() { Object[] obj3 = { 1, 2, 3, "4", "5" }; String[] obj4 = new String[5]; try { System.arraycopy(obj3, 2, obj4, 2, 3); } catch (Exception e) { //transfer exception:jav原创 2021-09-06 16:43:10 · 51 阅读 · 0 评论 -
System,Java全套资料百度云
System.out.println(Arrays.toString(obj4));}//获取Object数组中的字符串类型数据private static void getStringArrayFromObjectArray2() { Object[] obj3 = { 1, 2, 3, "4", "5" }; String[] obj4 = new String[5]; try { System.arraycopy(obj3, 3, obj4, 3, 2); }.原创 2021-09-06 16:41:26 · 73 阅读 · 0 评论 -
Swagger 3,中软国际Java面试题
SpringBoot项目整合swagger2需要用到两个依赖:springfox-swagger2和springfox-swagger-ui,用于自动生成swagger文档。springfox-swagger2:这个组件的功能用于帮助我们自动生成描述API的json文件springfox-swagger-ui:就是将描述API的json文件解析出来,用一种更友好的方式呈现出来。SpringFox 3.0.0 发布此版本的亮点:Spring5,Webflux支持(仅支持请求映射,原创 2021-09-06 16:39:46 · 1272 阅读 · 1 评论 -
Redis 低成本、高可用设计,花费近一年时间整理的Java核心知识清单
本文主要介绍下使用官方sentinel做redis高可用方案的设计。Redis SentinelSentinel介绍Sentinel是Redis官方为集群提供的高可用解决方案。在实际项目中可以使用sentinel去做redis自动故障转移,减少人工介入的工作量。另外sentinel也给客户端提供了监控消息的通知,这样客户端就可根据消息类型去判断服务器的状态,去做对应的适配操作。下面是Sentinel主要功能列表:Monitoring:Sentinel持续检查集群中的master、slave原创 2021-09-05 18:40:35 · 87 阅读 · 0 评论 -
RabbitMQ的高级特性和消息补偿机制,刚面试了阿里,滴滴,网易
自动确认: acknowledge=“none” 当消息一旦被Consumer接收到,则自动确认收到,并将相应 message 从 RabbitMQ 的消息缓存中移除。手动确认: acknowledge=“manual” 如果出现异常,则调用channel.basicNack()方法,让其自动重新发送消息。根据异常情况确认:acknowledge=“auto”。3. 消息过期(TTL)TTL 全称 Time To Live(存活时间/过期时间)。当消息到达存活时间后,还没有被消费,会被自动清除。R原创 2021-09-05 18:39:02 · 166 阅读 · 0 评论 -
PyCharm常用配置和常用插件,Java面试题汇总
修改主题修改字体快捷键风格显示行数和方法线代码自动提示快捷键移除占用Alt+斜杠的快捷键设置Basic快捷键为Alt+斜杠鼠标悬停显示文档说明关闭自动更新安装 autopep8 工具PEP8是 Python Enhancement Proposal 8的缩写,翻译过来就是 Python增强建议书,也就是Python编码规范。Mac安装方式命令行输入pip install autopep8,如果执行autopep8 --version命令,输出类似autopep8 1.原创 2021-09-05 18:35:54 · 102 阅读 · 0 评论 -
PyCharm2020,Java高级程序员面试宝典
如果有特殊需要,请按如下描述确定是否勾选设置:创建快捷方式:默认根据你当前系统进行选择;将 pycharm 的启动目录添加到环境变量(需要重启),如果需要使用命令行操作 pycharm,则勾选该选项;添加鼠标右键菜单,使用打开项目的方式打开文件夹。如果你经常需要下载一些别人的代码查看,可以勾选此选项,这会增加鼠标右键菜单的选项;将所有 py 文件关联到 pycharm,也就是你双击你电脑上的 py 文件,会默认使用 pycharm 打开。不建议勾选,pycharm 每次.原创 2021-09-05 18:34:17 · 199 阅读 · 0 评论 -
pulsar java IO生产消费消息,Java组件化开发教程
<groupId>org.example</groupId><artifactId>Pulsar_moudle</artifactId><version>1.0-SNAPSHOT</version><build> <plugins> <plugin> <groupId>org.apache.maven.plugins<原创 2021-09-05 18:32:43 · 145 阅读 · 0 评论 -
【BAT面试题系列,网易Java社招面试题
如果外包员工把需求做完了,它经过一段(keepAliveTime)空闲时间,就离开公司了。好的,到这里。面试问题1->Java的线程池说一下,各个参数的作用,如何进行的? 是否已经迎刃而解啦, 我觉得这个问题,回答:线程池构造函数的corePoolSize,maximumPoolSize等参数,并且能描述清楚线程池的执行流程 就差不多啦。线程池异常处理在使用线程池处理任务的时候,任务代码可能抛出RuntimeException,抛出异常后,线程池可能捕获它,也可能创建一个新的线程来代替异常.原创 2021-09-03 17:47:24 · 100 阅读 · 0 评论 -
「架构师必备,Java中级面试题及答案
基于SpringCloud(Hoxton.SR1) + SpringBoot(2.2.4.RELEASE) 的 SaaS型微服务脚手架,具备用户管理、资源权限管理、网关统一鉴权、Xss防跨站攻击、自动代码生成、多存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,非常适合学习使用。核心技术采用Nacos、Fegin、Ribbon、Zuul、Hystrix、JWT Token、M原创 2021-09-03 17:45:34 · 214 阅读 · 0 评论 -
「JVM,springmvc源码分析图
目前该方法使用的越来越少了,除非是与硬件有关的应用,比如通过Java程序驱动打印机,或者Java系统管理生产设备,在企业级应用中已经比较少见。因为现在的异构领域间的通信很发达,比如可以使用Socket通信,也可以使用Web Service等。(3) Execution Engine 执行引擎:执行包在装载类的方法中的指令,也就是方法。(4) Runtime data area 运行数据区:虚拟机内存或者Jvm内存,冲整个计算机内存中开辟一块内存存储Jvm需要用到的对象,变量等,运行区数据有分很多小区原创 2021-09-03 17:44:01 · 162 阅读 · 1 评论 -
《零基础,linux系统使用入门
mysqladmin -uroot shutdown### Linux 系统下首先,我们需要通过以下命令来检查MySQL服务器是否启动:ps -ef | grep mysqld如果MySql已经启动,以上命令将输出mysql进程列表, 如果mysql未启动,你可以使用以下命令来启动mysql服务器:root@host# cd /usr/bin./mysqld_safe &如果你想关闭目前运行的 MySQL 服务器, 你可以执行以下命令:原创 2021-09-03 17:42:32 · 61 阅读 · 0 评论 -
Java数组,这一篇文章就真够了!,作为一个程序员,你觉得最大的悲哀是什么
其中后一种格式符合C和C++程序员的习惯,如果你是Java开发人员,建议统一使用前一种。为什么呢?因为前一种从语义上来说更合理,它表示“一个int型数组”。拓展一下:如果你懂一些其他编程语言,比如C语言,你会看到类似如下的声明。int A[10]; Java中却不能如此声明。思考一下为什么?这个要回到Java的“引用”问题上。我们在上述代码中声明的只是数组的一个引用,JVM会为该引用分配存储空间。但是,这个引用并没有指向任何对象,也就是说没有给数组对象本身分配任何空间。只有在数组真正创建时才会原创 2021-08-19 23:31:45 · 89 阅读 · 0 评论 -
Java数据结构与算法-算法概述(补充),Java学习笔记在互联网上火了
* 数据结构往往表示的是处理的对象* 算法是计算和处理的核心方法* 程序设计语言是算法的实现方法。1.3:算法的表示算法描述的方式大致采用自然语言、流程图、N-S图、伪代码等表示。自然语言通俗来说,自然语言就是平时口头描述的语言。对于一些很简单的算法,可以采用自然语言来口头描述算法的执行过程。在古代的早期算法也可以看做自然语言表示。但是自然语言比较复杂,很大程度上阻碍了中国古代算法(如割圆术秦九韶算法等)的发展。这也是我国古代算法起源早,但后期落后于西方国家的原创 2021-08-19 23:29:30 · 104 阅读 · 0 评论 -
Java数据结构与算法-算法概述(补充)(1),这些细节在Java面试上要注意了
1.2:算法相关概念数据结构+算法+程序设计语言=算法数据结构往往表示的是处理的对象算法是计算和处理的核心方法程序设计语言是算法的实现方法。1.3:算法的表示算法描述的方式大致采用自然语言、流程图、N-S图、伪代码等表示。自然语言通俗来说,自然语言就是平时口头描述的语言。对于一些很简单的算法,可以采用自然语言来口头描述算法的执行过程。在古代的早期算法也可以看做自然语言表示。但是自然语言比较复杂,很大程度上阻碍了中国古代算法(如割圆术秦九韶算法等)的发原创 2021-08-19 23:27:12 · 119 阅读 · 0 评论 -
Java数值型和字符串互转锦集【收藏备用】,JVM面试题附答案
2、数值型转字符串Hello!大家好,我是灰小猿,今天来和大家分享一下Java中常用的数值型和字符串数据的相互转换。注意:字符型指的是char型,而string为字符串,两者是不同的,所以在这里是数值型和字符串之间的相互转换!先将常用的数值型数据类型列出:数据类型内存空间(8位等于1字节)取值范围byte8位-128~127short16位-32768~32767int32位-2147483648~2147483647long64位-9223372036854775808~922337203685原创 2021-08-19 23:25:16 · 84 阅读 · 0 评论 -
Java应用开发的颠覆者:Spring Boot,Java自学宝典下载
开发完成之后,我们还要考虑部署的问题,且不说部署到非常笨重的应用服务器,比如WebSphere, Weblogic或者JBoss,即使部署到Tomcat或者Jetty这种轻量级容器上面,我们要知道如何配置容器,如何修改配置文件等等。而且在多应用部署到同一个Tomcat的时候,经常会出现冲突。就算我们花了很大力气解决了这些问题,程序部署成功之后,我们很难去了解这个程序的运行状态。有可能我们要配置很多第三方工具来去知道这个应用程序运行状态如何,有哪些参数,环境变量是什么。尽管Spring帮我们解决了依赖注入的.原创 2021-08-19 23:23:00 · 114 阅读 · 0 评论 -
Java并行程序基础,linux学习资料
1. 函数式接口:任何接口,如果**只包含一个抽象方法,那么它就是一个函数式接口** 2. 例如Runnable接口 1. ``` public interface Runnable { public abstract void run(); } ``` 2. 对于**函数式接口,**可以通过lambda表达式来**创建该接口的对象**...原创 2021-08-19 23:20:37 · 59 阅读 · 0 评论 -
Alibaba后台4年,kafka面试常见问题
String 和 StringBuffer、StringBuilder 的区别是什么?String 为什么是不可变的?自动装箱与拆箱== 与 equalsfinal 关键字Object类的常见方法Java 中的异常处理获取用键盘输入常用的的两种方法接口和抽象类的区别是什么集合框架Arraylist 与 LinkedList 异同ArrayList 与 Vector 区别HashMap的底层实现HashMap 和 Hashtable ..原创 2021-08-18 23:37:45 · 91 阅读 · 0 评论 -
AcWing 831,springcloud面试题2020
数据范围1≤N≤1051≤M≤106输入样例:3aba5ababa输出样例:0 22.提示在这里解释一下下标从1开始的好处,首先KMP算法的核心就是要理解next数组的含义。当下标从0开始时,next[i]表示子串s[0,i]的最长相等前后缀的前缀最后一位的下标,如果我们要求出这个子串的最长相等前后缀的长度时,需要next[i]+1;当下标从1开始时,next[i]依然表示子串s[1,i]的最长相等前后缀的前缀最后一位的下标,而且next[i]就是这个子串的最长相等前后缀的长度(这原创 2021-08-18 23:35:36 · 74 阅读 · 0 评论 -
AcWing 1532,做了6年Java开发
第二行包含 N 个整数,表示每个硬币的面额。输出格式输出一行,包含两个整数 V1,V2,表示所选的两个硬币的面额,使得 V1≤V2 并且 V1+V2=M。如果答案不唯一,则输出 V1 最小的解。如果无解,则输出 No Solution。数据范围1≤N≤105,1≤M≤1000输入样例1:8 151 2 8 7 2 4 11 15输出样例1:4 11输入样例2:7 141 8 7 2 4 11 15输出样例2:No Solution什么是双指针算法?简介双指针算法应用非原创 2021-08-18 23:33:17 · 77 阅读 · 0 评论 -
AcWing 1113,为什么StringBuilder是线程不安全的
有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 W 和 H,分别表示 x 方向和 y 方向瓷砖的数量。在接下来的 H 行中,每行包括 W 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:白色的瓷砖;3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合原创 2021-08-18 23:31:01 · 61 阅读 · 0 评论 -
AcWing 1049,别再说自己不会JVM虚拟机了
1≤N≤105输入样例:231 8 2410 7 6 14输出样例:824样例解释对于第一组样例,阿福选择第2家店铺行窃,获得的现金数量为8。对于第二组样例,阿福选择第1和4家店铺行窃,获得的现金数量为10+14=24。2.思路状态表示:我们设f[i][1]表示选择当前商铺i的最优值,同理f[i][0]表示不选择当前商铺i的最优值。对于f[i][0]:不抢第 i 个店铺可以由不抢第i-1个商店,或者抢第i-1个商店转移过来。转移方程为:f[i][0]=max(f[i原创 2021-08-18 23:28:44 · 51 阅读 · 0 评论 -
985研究生入职电网6个月,晒出收入,还以为看错了,kafka实战pdf
这位员工说自己从985大学毕业后,通过招聘进入了一家电网公司,可是进入半年之后,发现每天的工作内容太简单了,每天就是做一些基本的活,没有什么技术含量。该员工还认为自己读了这么多年书,却要做一个大专生也能干的活,有点大材小用了。当然还有一点,那就是以他目前的收入,想要买房还是很难的。而且还有一点,那就是收入也不是很高,从他晒出的收入来看,年收入也不过15万,当时还以为看错了,要知道和自己同水平的同学,如果在互联网的话,年薪都是20万以上。综合对比之下,该员工说自己想辞职了。但是又不知道目前找工作的行情怎.原创 2021-08-18 23:26:48 · 1342 阅读 · 0 评论