java
文章平均质量分 53
阿舒带你学编程
这个作者很懒,什么都没留下…
展开
-
自学Java最起码要学到什么程度?
Java基础,又称JavaSE,如果有C语言基础,那么1个月就足够了,Java比C更多的是面向对象、接口、异常这些东西,而C++就是Java的超集,除了反射、注释不支持。因此对于学过C++的同学来说,学习Java就是换关键词,没有新的语言功能学习负担。2、假如你有其他语言基础,也学习过操作系统、计算机的一些必修课,那么只要强化刷题和系统化梳理下面试题+学习Java,这个过程4-6个月就足够了。首先,自学Java需要找到学习的节奏,今天学什么,明天学什么,具体内容如何判断是否掌握,把自己的目标一一整理。...原创 2022-07-20 18:42:15 · 1544 阅读 · 1 评论 -
自学Java很困难?那是你没找到方法
还有一些同学,在刚开始自学Java的时候拼命的学习,玩命的记住Java原理,天天早上五点起床背Java的一些英文词汇,然后遇见一些未知的困难,让自己达到癫狂状态,逐渐迷失自我放弃Java,黯然告别了码农的生涯。Java培训的老师,会由浅入深的带着你学习,在Java培训中接触到的项目实践都是跟市场需要比较匹配的,一般网上比较新的免费的项目库很不好找,对自学没有信心的小伙伴也可以通过这种方法学习Java,这也不失为一个技术提升的好方法!2、编译java源程序,语法javac源文件名.java。......原创 2022-07-20 18:41:03 · 1358 阅读 · 0 评论 -
Spring Boot源码学习:自动配置与自定义注解详解
文件,文件中定义了所有的Spring场景下的工厂,如各种xxxAutoConfiguration类、Listener、Filter等等,并缓存下来。HandlerAdapter因为需要封装各种请求信息到方法参数,因此SpringMVC设计了HandlerAdapter来处理一系列类似的方法,负责解析参数、参数上的注解、参数名字,并传入值。include包含,可以用于包含另一个资源,也会将请求转发到新资源,但是新资源的响应和旧响应会合并在一起响应到客户端。......原创 2022-07-19 20:14:41 · 1377 阅读 · 0 评论 -
同事跳槽阿里,临走甩给一份上千页的Linux源码笔记,真香
由于篇幅限制小编,小编只在这里给大家展示目录及部分内容,有需要完整文档的程序猿(媛)概述Linux内核,讲述了内核的总体图景,后续章节则根据总体结构对内核进行更详细的研究。原创 2022-07-19 20:13:50 · 182 阅读 · 0 评论 -
字节跳动八进八出,offer到手,发现项目不重要算法才最重要
略。。。原创 2022-07-18 18:35:00 · 3239 阅读 · 2 评论 -
直到前京东高级架构师来到我们单位,我才知道Java性能调优多重要
现代大规模关键性系统中的Java性能调优,是一项富有挑战的任务。你需要关注各种问题,包括算法结构、内存分配模式以及磁盘和文件I/O的使用方式。性能调优最困难的是找出问题,即便是经验丰富的人也会被他们的直觉所误导。性能杀手总是隐藏在最意想不到的地方。正如维基百科所言“科学(来自拉丁文scientia,意思是‘知识’)是以对世界可证实的解释和预见来构建和组织知识的系统。”性能调优正是这样-门实验科学,你需要构建和进行实验,然后根据实验结果建立理论假设。所幸实验所用的性能监控工具在Java世界里随处可见,既。..原创 2022-07-18 18:31:48 · 194 阅读 · 0 评论 -
清华架构大牛剖析高并发与多线程的关系、区别,带你击穿面试难题
第六Disruptor,不知道有多少同学听说过这个框架的,这个框架它也是一个MQ框架(MessageQueue)叫做消息队列,消息队列非常多,后面还会给大家讲Kafka、RabbitMQ,Redis等这些都是消息队列。,它更多的是解决CPU调度多个进程的问题,从而让这些进程看上去是同时执行(实际是交替运行的)。确实,在一开始接触的时候,不少人都会将二者混淆,误以为所谓的高并发的系统就是。相对于分布式来讲,高并发在解决的问题上会集中一些,其反应的是。高并发系统,多线程涉及到大量的概念和知识点,......原创 2022-07-16 19:31:56 · 130 阅读 · 0 评论 -
记一次蚂蚁金服四面遭虐,面试水太深,过河的渡船你造好了吗?
互联网Java工程师1000道面试。原创 2022-07-16 19:31:30 · 377 阅读 · 0 评论 -
编程老司机带你玩转 CompletableFuture 异步编程
一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。Java提供RunnableFuture两个接口用来实现异步任务逻辑。虽然Future可以获取任务执行结果,但是获取方式十方不变。我们不得不使用Future#get阻塞调用线程,或者使用轮询方式判断Future#isDone任务是否结束,再获取结果。这两种处理方式都不是很优雅,JDK8之前并发类库没有提供相关的异步回调实现方式。没办法,我们只好借助第三方类库,如Guava,扩展Future,增加支持回调功能。任务一。...原创 2022-07-15 21:36:34 · 304 阅读 · 0 评论 -
编程老司机带你玩转 CompletableFuture 异步编程
一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。Java提供RunnableFuture两个接口用来实现异步任务逻辑。虽然Future可以获取任务执行结果,但是获取方式十方不变。我们不得不使用Future#get阻塞调用线程,或者使用轮询方式判断Future#isDone任务是否结束,再获取结果。这两种处理方式都不是很优雅,JDK8之前并发类库没有提供相关的异步回调实现方式。没办法,我们只好借助第三方类库,如Guava,扩展Future,增加支持回调功能。任务一。...原创 2022-07-15 21:36:34 · 159 阅读 · 0 评论 -
我要彻底给你讲清楚,Java就是值传递,不接受争辩的那种!
我们知道,编程语言中需要进行方法间的参数传递,这个传递的策略叫做求值策略。在程序设计中,求值策略有很多种,比较常见的就是值传递和引用传递。还有一种值传递的特例——共享对象传递。值传递和引用传递最大的区别是传递的过程中有没有复制出一个副本来,如果是传递副本,那就是值传递,否则就是引用传递。在Java中,其实是通过值传递实现的参数传递,只不过对于Java对象的传递,传递的内容是对象的引用。我们可以总结说,Java中的求值策略是共享对象传递,这是完全正确的。但是,为了让大家都能理解你说的,https。...原创 2022-07-15 21:36:09 · 133 阅读 · 0 评论 -
Java开发----IOC之核心容器
3.1容器相关BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载ApplicationContext接口提供基础的bean操作相关方法,通过其他接口扩展其功能ApplicationContext接口常用初始化类ClassPathXmlApplicationContext(常用)3.2bean相关编辑httpshttpshttps。...原创 2022-07-14 20:15:43 · 258 阅读 · 0 评论 -
SpringBoot项目中实现MySQL读写分离
MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。这可能是由于linux是复制出来的,MySQL中还有一个是一样的,我们也需要修改。...原创 2022-07-14 20:14:24 · 2094 阅读 · 6 评论 -
大白话详解Spring Cloud服务降级与熔断
复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。这就造成有可能会发生 服务雪崩 。那么什么是服务雪崩呢?多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的“ 扇出 ”(像一把打开的折扇)。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,这就是所谓的” 雪崩效应# 1. Hystrix断路器概述...原创 2022-07-13 18:23:23 · 2088 阅读 · 0 评论 -
Spring Boot源码学习:自动配置与自定义注解详解
因为我们需要开发 web 应用测试,所有选择 starter-webspring-boot-starter-parent 工程设置了很多参数、插件、资源打包设置等修改 java 版本: 1.8 因为 父工程已经使用 ${java.version} 设置了 java 的编译版本目前测试无法使用 maven-compiler-3.8 编译 jdk 11 版本的项目,原因未知,切换为 jdk 8 即正常...原创 2022-07-13 18:19:55 · 527 阅读 · 0 评论 -
5年Java开发4面阿里挂在JVM,临走时面试官给了我一份JVM手册
Java是目前用户最多、使用范围最广的软件开发技术之一。Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java API、 Java编程语言及许多第三方Java框架(如Spring、Struts等 )构成。这里面有Java虚拟机的原因: 为了达到给所有硬件提供一致的虚拟平台的目的,牺牲了一些与硬件相关的性能特性。更重要的是人为原因:如果开发人员不了解虚拟机–些技术特性的运行原理,就无法写出最适合虚拟机运行和自优化的代码。.在国内,有关Java API、Java语 言语法及第三方原创 2022-07-12 19:38:11 · 121 阅读 · 0 评论 -
这是我金九银十收到的第五个Offer:字节跳动Java研发岗
面试,跳槽,每天都在发生,而对程序员来说"金九银十"更是面试和跳槽的高峰期,跳槽,更是很常见的,对于每个人来说,跳槽的意义也各不相同,可能是一个人更向往一个更大的平台,更好的地方,可以通过换一个环境改变自己的现状。而我正是其中一员,投了十多家互联网公司,目前 已收到五个Offer,其实跳槽是把双刃剑,有好也有坏,要看你是因为什么原因跳槽。如果说你即将准备跳槽,是否准备充足了呢?小编即将分享的正是这些面经分享和我的成长笔记。面试的时候99.99%的公司都会让你做一下自我介绍和最近做的一个项目,所以自我介绍和项原创 2022-07-12 19:35:21 · 120 阅读 · 0 评论 -
万字手撕Go http源码server.go
前言本文目标:从路由注册到监听本地端口后请求路由的一系列动作的分析,基本上仅限于net/http server.go这个包文件的路由相关部分解读写作目的:在使用原生库进行web开发的时候,很多初学者很容易被mux.Handle()/mux.HandleFunc()/mux.Handler()/Handlerfunc/Handler/Handle()/Handlefunc()/handler给唬住,本身几个名称就相近,首字母有时候大写有时候小写,有时候是handle,有时候是handler,看起来相似但是类原创 2022-07-11 19:32:37 · 307 阅读 · 0 评论 -
面试官:小伙子你来介绍一下MyBatis
虽然目前 Spring Security 一片火热,但是 Shiro 的市场依然存在,今天我就来稍微的说一说这两个框架的,方便大家在实际项目中选择适合自己的安全管理框架。首先我要声明一点,框架无所谓好坏,关键是适合当前项目场景,作为一个年轻的程序员更不应该厚此薄彼,或者拒绝学习某一个框架。小孩子才做选择题,成年人两个都要学!所以接下来主要结合我自己的经验来说一说这两个框架的优缺点,没有提到的地方也欢迎大家留言补充。Spring Security 并非一个新生的事物,它最早不叫 Spring Security原创 2022-07-11 19:30:12 · 617 阅读 · 2 评论 -
面试官:小伙子你来介绍一下MyBatis
什么是MyBatisMyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。Mybatis通过原创 2022-07-10 18:27:51 · 172 阅读 · 0 评论 -
JAVA面试基础经典百问,拿下大厂offer
前言网上的 Java 基础面试题文章有非常多,但是大部分都比较老了。很多题目早已不是当前的热门题目,没有必要在这些题目上花太多时间。很多答案放现在已经不准确,可能会误导新人。因此,我花了几天时间整理了一些时下高频的 Java 基础题目,并反复斟酌,给出符合当前版本的解析。Java 面试题(一)1、面向对象的特征有哪些方面?2、访问修饰符 public,private,protected,以及不写(默认)时的区别?3、String 是最基本的数据类型吗?4、float f=3.4;是否正确?5、short s原创 2022-07-10 18:25:50 · 89 阅读 · 0 评论 -
100+道Java经典面试题(面中率高)
Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点:代码开发模块化,更易维护和修改。代码复用。增强代码的可靠性和灵活性。增加代码的可理解性。面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。下面的章节我们会逐个分析这些特性。封装封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。在Java当中,有3种修饰符:public,private和protected。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不原创 2022-07-09 20:20:55 · 340 阅读 · 1 评论 -
Java基础面试题整理50题(附部分答案)
1、说说&和&&的区别答:&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现 NullPointerException如果将&&改为&,则会抛出NullPointerE原创 2022-07-09 20:20:02 · 2554 阅读 · 2 评论 -
2022最新版Java大厂面试题汇总(查缺补漏yyds)
本文是为了帮大家快速回顾了Java中知识点,这套面试手册涵盖了诸多Java技术栈的面试题和答案,相信可以帮助大家在最短的时间内用作面试复习,能达到事半功倍效果。本来想将文件上传到github上,但由于文件太大有的都无法显示所以直接整理成多个PDF,供大家学习主要是考虑到面试题的综合性,所以整理的顺序也是这样的,并且也作了相对应的注释。这套面试手册的组成内容有以下3大主题,5个主要模块,35个小板块:互联网一线大厂面试题库(2021年版)面试系列(2021年版):PDF学习文档系列(2021年版):1JAVA原创 2022-07-08 18:28:26 · 131 阅读 · 0 评论 -
java 三大框架教程,2022 最新 Java 算法相关面试大厂
前言难道程序员的职业生命线是青春饭?答案是的。35 岁考虑转行,然后 35 岁又成了一个新人,而外国可以做到 60 岁,啥也不说了,可能是觉得中年大叔油腻,不及小鲜肉便宜,唉,可叹市场更新换代太快,快到我们来不及改变,所以,只有让随时保鲜才最重要。我听到的一些发声你们赚的钱已经可以了:我一个发小是做土木工程的,上海大学博士,参与很多著名建筑的工程,但是从薪资上看,还不如一些稍微像样的公司的 6 年多的高级开发。为什么?这就是行业的红利,个体是享受了这个红利。所以说我们做 IT 的,应该感谢马云,雷军等等他们原创 2022-07-08 18:22:18 · 169 阅读 · 0 评论 -
5年Java开发4面阿里挂在JVM,临走时面试官给了我一份JVM手册
Java是目前用户最多、使用范围最广的软件开发技术之一。Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java API、 Java编程语言及许多第三方Java框架(如Spring、Struts等 )构成。这里面有Java虚拟机的原因: 为了达到给所有硬件提供一致的虚拟平台的目的,牺牲了一些与硬件相关的性能特性。更重要的是人为原因:如果开发人员不了解虚拟机–些技术特性的运行原理,就无法写出最适合虚拟机运行和自优化的代码。.在国内,有关Java API、Java语 言语法及第三方原创 2022-07-07 19:42:12 · 72 阅读 · 0 评论 -
去阿里面试Java岗位,一个Spring问题就给干趴下了
小编这里有一套Spring面试宝典,可助你拿到高薪**揭示内幕,深入浅出:**笔者对Spring的源码进行了彻底分析,深刻揭示了Spring框架的技术内幕,让读者知其然,更知其所以然。Spring 中的许多设计经验、技巧、模式具有很高的借鉴性,在透彻学习Spring 体系结构的同时,读者可以直接将这些方法借用到具体的应用开发中。**同步更新,与时俱进:**虽然在2013年12月就发布Spring 4.0的第一个候选版本,后来又发布了多个RC版本,并最终于2015年8月发布了Spring 4.2 的正式版本,原创 2022-07-07 19:39:07 · 75 阅读 · 0 评论 -
docker国内镜像源
Docker中国区官方镜像:https://registry.docker-cn.com网易:http://hub-mirror.c.163.comustc:https://docker.mirrors.ustc.edu.cn中国科技大学:https://docker.mirrors.ustc.edu.cn阿里云:https://cr.console.aliyun.com/配置docker为加快拉取镜像速度,建议设置docker国内镜像源# 创建或修改 /etc/docker/d原创 2022-05-01 13:05:24 · 737 阅读 · 0 评论 -
Delegate IDE buildrun actions to maven 配置的影响
背景IDEA 的 build/run 动作如果委托给了 maven 之后,会影响程序运行吗?本文来介绍一下这个问题。答案是,可能会,如果 pom.xml 中配置的 build 有额外的执行动作,就会影响程序运行,甚至会导致运行失败。看个配置上周研究项目打包时,根据网上一个说明将此选项勾选了,结果今天直接运行 SpringBoot 项目的 main 类时,竟然先执行了 maven install 命令。由于是一个我从来没有 install 过 Vue 项目的工程的后端模块,平时很快就能启动的项目,今原创 2022-04-30 13:50:26 · 193 阅读 · 0 评论 -
Docker logs 查看实时日志(日志最后的N行、某刻后日志)
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。docker logs :docker logs -f -t --since="2017-05-31" --tail=10 edu_web_1edu_web_1 为容器名,也可用容器 id 。参数说明docker logs [OPTIONS] CONTAINEROptions:--details 显示更多的信息-f, --follow 实时输出日志,最后一行为当前时间戳的日志--si原创 2022-04-29 22:31:05 · 1557 阅读 · 0 评论 -
centos7 安装hadoop 2.7.6
小伙伴们,你们好,我是老寇hadoop安装包:https://pan.baidu.com/s/1swrV9ffJnmz4S0mfkuBbIw提取码:1111目录一、前提条件二、创建hadoop用户三、免密登录四、安装hadoop五、伪分布式五、启动一、前提条件centos7 安装jdk 1.8二、创建hadoop用户useradd -m hadooppasswd hadoop #设置密码# %wheel ALL=(ALL) ALL 没有被注释就请执行如下命令vi /原创 2022-04-29 21:11:59 · 188 阅读 · 0 评论 -
Apache Shiro系列漏洞利用以及实战总结
前言:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件等。目录RememberMe RCE-550(CVE-2016-4437)远程安全限制绕过漏洞(CVE-2016-6802)Padding Oracle At原创 2022-04-29 19:52:45 · 1257 阅读 · 0 评论 -
14、python网络编程之Socket
14、python网络编程之Socket一、什么是socketSocket也叫套接字,Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。原创 2022-04-29 18:31:29 · 189 阅读 · 0 评论 -
设置mac上docker的registry-mirrors和insecure-registries
1.选择docker的dashboard2. 设置{ "debug": true, "experimental": false, "registry-mirrors": [ "https://registry.docker-cn.com" ], "insecure-registries": [ "xx.xx.com" ]}重启docker就可以了原创 2022-04-29 10:43:51 · 1909 阅读 · 0 评论 -
解决 docker 磁盘空间不足问题
解决docker磁盘空间不足问题docker所在服务器,运行了一段时间后,发现服务器磁盘目录快不够用了。通过du -h --max-depth=1 / 逐级目录排查,发现/var/lib/docker目录文件过大。通过以下方法,解决该问题。转移数据修改docker默认存储位置有多种方式修改docker默认存储位置。最好是在docker安装完后,第一时间修改docker默认存储位置为其他大目录或者磁盘中。规避迁移数据过程中造成的风险。- 停止docker服务systemctl stop d原创 2022-04-29 09:22:57 · 372 阅读 · 0 评论 -
大数据——Hadoop集群调优
注意:本文使用的Hadoop版本为3.2.1版本目录一、HDFS多目录存储1.1 生产环境服务器磁盘情况1.2 在hdfs-site.xml文件中配置多个目录,需要注意新挂载磁盘的访问权限问题。二、集群数据均衡2.1 节点间数据均衡1)开启数据均衡命令2)停止数据均衡命令2.2 磁盘间数据均衡1)生成均衡计划2)执行均衡计划3)查看当前均衡任务的执行情况4)取消均衡任务三、配置LZO压缩1)下载hadoop-lzo开源组件并编译2)将编译好的hadoop-lzo-0.4.20原创 2022-04-29 08:01:00 · 720 阅读 · 0 评论 -
结构体转map[string]interface{}的方法
结构体转map[string]interface{}在go语言中结构体转map[stirng]interface{}中有几种方法,但是也有一些小小的"坑",比如说我们在存储一些信息时有各种类型的,下面来看一个结构体:// UserInfo 用户信息type UserInfo struct { Name string `json:"name"` Age int `json:"age"`}u1 := UserInfo{Name: "奇奇", Age: 18}将此结构体转成map[原创 2022-04-28 20:04:28 · 389 阅读 · 0 评论 -
查看docker镜像的日志命令
需要查看镜像日志可使用 docker logs xx命令, 如:docker logs -f -t --since="2019-08-09" --tail=50 gitlab(容器名称,即NAMES)其中 -f 为查看实时日志, -t为时间 --since为从何时起原创 2022-04-28 18:46:14 · 1655 阅读 · 0 评论 -
常见的十几种编程语言介绍
作为一名小白,在刚接触编程的时候,常常不了解这些编程语言具体有什么用途,或者说不知道应该学习哪种语言能实现自己想要从事的IT领域方向,于是,结合自身学习经验以及资料查找,我整理了一些常见的编程语言的介绍,帮助大家认识了解编程语言的特点、用途,从而快速明确学习方向,制定学习计划。Python:图形处理、科学计算、未来大热方向机器学习和人工智能等。——(热度大、发展快、应用范围广 ) / (开发者:Guido van Rossum)C语言:底层开发。——(执行效率高) / (创始者:贝尔实.原创 2022-04-28 17:24:08 · 4623 阅读 · 0 评论 -
如何在Java中将Map转换为List?
这里的问题是它Map有两个值(一个键和一个值),而一个List只有一个值(一个元素)。因此,可以做的最好的事情是获得一个List键或值。(除非我们使用包装器来保持键/值对)。说我们有一个Map:Map m = new HashMap();m.put(“Hello”, “World”);m.put(“Apple”, “3.14”);m.put(“Another”, “Element”);作为a的键List可以通过ArrayList从方法Set返回的新建来获得Map.keySet:List li原创 2022-04-28 15:47:08 · 1170 阅读 · 0 评论