码农研习社

分享Java的点点滴滴!

  • 博客(57)
  • 收藏
  • 关注

原创 JAVA 基础编程练习500题

【程序 1】题目: 古典问题: 有一对兔子, 从出生后第 3 个月 起每个月 都生一对兔子, 小兔子长到第三个月 后每个月又生一对兔子, 假如兔子都不死, 问每个月 的兔子对数为多少?程序分析: 兔子的规律为数列1,1,2,3,5,8, 13, 21....做这种题目, 最好的做法就是找出规律, 跟高中的数列一样本题有: a[n]=a[n-1]+a[n-1],而第一第二项都知道了, 后面的值也可以求得public class Programme1 { public st...

2021-05-12 04:51:14 1525

原创 搭建百万连接服务,使用netty完成websocke的推送

一)使用websocket ① 介绍 webSocket协议是基于TCP的一种新的网络协议。他的出现实现了网络和浏览器全双工通信,允许服务器主动发送信息给客户端。客户端 给 服务器发消息是半双工,服务器给客户端也发送消息就是全双工。多客户端多语言多浏览器支持:浏览器,php,Java,ruby,nginx,python,Tomcat,erlang,.net等等。 ② websocket实现 服务端和客户端交流,通过的是websocket这种协议,内部传输的协议,通过w.

2021-05-28 02:35:28 1108 1

原创 重磅!全球Top 1000计算机科学家h指数公布:中国53位学者上榜

40名学者被纳入Top 1000 计算机科学家榜单。其次是加州大学伯克利分校(38名)、卡内基梅隆大学(37名)。去年,麻省理工学院(MIT)首次反超斯坦福大学跃居榜首,而在今年则位列第四,共有35位顶尖科学家,比去年少了5名。顶尖科学家人数最多的产业界机构依然...

2021-05-28 02:21:17 826

原创 谈谈双亲委派模型的第四次破坏-模块化

前言JDK9引入了Java模块化系统(Java Platform Moudle System)来实现可配置的封装隔离机制,同时JVM对类加载的架构也做出了调整,也就是双亲委派模型的第四次破坏。前三次破坏分别是:双亲委派模型推出之前,SPI机制,以及OSGI为代表的热替换机制,这里不细说。双亲委派模型 简介在JDK9引入之前,绝大多数Java程序会用下面三个类加载器进行加载启动类加载器(Bootstrap Class Loader):由C++编写,负责加载jrelib目录下的类,例如最基本的O

2021-05-21 02:27:00 304

原创 多图详解!10大高性能开发核心技术

程序员经常要面临的一个问题就是:如何提高程序性能?这篇文章,我们循序渐进,从内存、磁盘I/O、网络I/O、CPU、缓存、架构、算法等多层次递进,串联起高性能开发十大必须掌握的核心技术。- I/O优化:零拷贝技术- I/O优化:多路复用技术-线程池技术-无锁编程技术-进程间通信技术-RPC&&序列化技术-数据库索引技术-缓存技术&&布隆过滤器-全文搜索技术-负载均衡技术准备好了吗,坐稳了,发车!首先,我们从最...

2021-05-20 02:20:05 698

原创 由事务扩展开谈一谈

事务的四个特性ACID原子性:事务中的操作要么全部成功,要么全部失败。通过 undo log 实现 一致性:数据库在事务执行前后都处于一个正确的状态。 隔离性:事务执行过程中,不应该收到其他事务的打扰,并发的事务要隔离。通过锁、MVCC实现 持久性:事务执行完成之后,数据将永远保存在数据库中,即使出现意外宕机的情况,也不应该对这部分数据造成任何影响。通过 redo log 实现事务的四个隔离级别读取未提交:事务的修改,即使没有提交,对其他事务也都是可见的。这种现象叫脏读。 读取已提交:

2021-05-16 02:52:52 389

原创 干货,使用布隆过滤器实现高效缓存!

前言本文主要描述,使用布隆过滤实现高效缓存。文中采用数组做为缓存,如果需要高并发命中,则需将文中的数组换成Redis数据库。布隆过滤布隆缓存的创建过程如下:1,先定义缓存bit数组(BitArray),数组的长度就是缓存数据的最大数量。2,然后将字符串通过哈希运算,求出它的HashCode。3,然后将HashCode作为伪随机数生成器(Random)的种子,生成一个小于最大数量的正数x。4,然后将这x作为缓存数组的索引,将数组[x]的值设置为true。布隆过滤将获取到的字

2021-05-16 02:48:41 307

原创 百度网盘 TV 版官宣 5 月 18 号发布:大屏“看片”如临其境

IT之家 5 月 15 日消息 百度网盘官方宣布,5 月 18 日,百度网盘 TV 版将正式发布。百度网盘 TV 版来了,那些存在云端的文件,打开电视就能看到了。下面是百度网盘 TV 版特性打通电视、移动端之间的端口壁垒百度网盘用户可以从电视端提取云盘文件,在电视端就可以使用云盘的文件。大屏“看片”,如临其境手机屏幕再大,也远没有电视视听那样的视听体验。尤其是在影音娱乐、多人会议等场合下,大屏演示、大空间沉浸式互动才能带来更好的体验。文件传输,一步到位百度网盘 TV 版.

2021-05-15 17:40:03 866 3

原创 JAVA核心面试知识整理

1. 目录1. 目录.........................................................................................................................................................12. JVM....................................................................................

2021-05-15 08:11:24 348

原创 java 编程题 9 道

1、 为了节约用水,某收费站根据有关规定,按如下算法收取水费:用水每月在 15 吨以下按每吨3 元计算,在 15 吨到 30 吨之间,则超过 15 吨的部分要按每吨 6 元技术,如果每月水超过 30 吨, 则一律按每吨按8元技术.工业用水一律按每吨7元计算,现要求设计一个程序,输入用水吨数,并按用水类型计算出水费.其如图所示操作界面: 用水吨数 34 家庭用水 工业用水 所交水费 272.0 计算 退出import java.awt.*;import jav...

2021-05-12 06:08:01 418

原创 年终总结:2021年最全java经典面试真题解析100道,请查收!

2021年,给大家整理了今年来最经典的面试真题100道,每个题目都有详细的解答,收集了java基础,容器,多线程,反射,对象拷贝,Java Web,异常,网络,设计模式,Spring / Spring MVC,等专题的经典面试真题,和详细分析。没道题目都详细讲解,文章过长,大家一定要耐心的看完哦。一、Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Ru

2021-05-12 05:49:10 375

原创 java 编程题 90 道

1.完成数组 int[] a = {100,40, 60, 87, 34, 11, 56, 0}的快速排序、 冒泡排序;2.采用折半查找的算法, 在数组中查询到某个数;3.在中文环境下, 有字符串, 将其每个字节的数据相加求和。4.将一个数组中值=0 的项去掉,将不为 0 的值存入一个新的数组,比如:int a[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};生成的新数组为:int b[]={1,3,4,5,6,6,5,4,7,6,7,5}5.定义 10 个长度的 Stude

2021-05-12 05:47:16 975

原创 Java 编程题 12道

1、 编写一个 Java 程序在屏幕上输出“你好!”。//programme name Helloworld.java public class Helloworld { public static void main(String args[]) { System.out.print ("你好! " ); } } 2. 编写一个 Java 程序, 用 if-else 语句判断某年份是否为闰年。 // P.

2021-05-12 05:37:35 620

原创 2020 java 并发编程面试题及答案(最全版本持续更新)

前言涵盖各大公司会问到的面试点,同时随着版本的升级,可能也会有一些面试题更新,也会同步保持更新,因为篇幅原因(其实是我懒,哈哈)所以列了一部分答案,所有的答案见下文,总共485页合计20个技术点,文末自取pdf.1、在 java 中守护线程和本地线程区别?java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。任何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护线程,反之则为用户..

2021-05-12 01:46:38 305

原创 什么是MongoDB?为什么要使用MongoDB?

什么是NoSQL?NoSQL是一种非关系型DMS,不需要固定的架构,可以避免joins链接,并且易于扩展。NoSQL数据库用于具有庞大数据存储需求的分布式数据存储。NoSQL用于大数据和实时Web应用程序。例如,像Twitter,Facebook,Google这样的大型公司,每天可能产生TB级的用户数据。NoSQL数据库代表“不仅仅是SQL”或“不是SQL”。虽然NoRELNoSQL会是一个更好的名词。Carl Strozz在1998年引入了NoSQL概念。传统的RDBMS使用SQL语法来存储和

2021-04-30 18:14:19 981 1

原创 idea添加中文插件

在idea插件下载中,Plugis中搜索chinese安装汉图标的插件重启idea。即可汉化。

2021-04-29 18:51:51 711 2

原创 IntelliJ Idea 常用快捷键

Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+Shift+N,可以快速打开文件Alt+Q,可以看到当前方法的声明Ctrl+P,可以显示参数信息C

2021-04-27 21:56:31 206

原创 调查:86% 的 Java 开发人员依赖 Spring 框架

Diffblue 与 Vanson Bourne 合作,面向 450 位 Java 开发人员进行了一项 15 个问题的调查。本次调查的目标受访者是使用 Spring 和其他框架的 Java 开发人员。受访者中,81% 为男性,19% 为女性;大多数(53%)年龄在 35-44 岁之间。结果表明,86% 的 Java 软件工程师都依赖 Spring 框架;96% 的 Spring 用户表示,这种工具可以帮助他们成为更好的 Java 开发人员。报告还指出,Spring/Spring Boot 的开发者,往往

2021-04-27 15:48:32 208

原创 JVM - 指令集大全

JVM基本指令iconst_1 int型常量值1进栈 bipush 将一个byte型常量值推送至栈顶 iload_1 第二个int型局部变量进栈,从0开始计数 istore_1 将栈顶int型数值存入第二个局部变量,从0开始计数 iadd 栈顶两int型数值相加,并且结果进栈 return 当前方法返回void getstatic 获取指定类的静态域,并将其值压入栈顶 putstatic 为指定的类的静态域赋值 invokevirtual 调用实例方法 invokespecial 调用

2021-04-22 18:42:36 229

原创 抖音”命名的方法论:解码字节跳动如何A/B测试

近来关于字节跳动上市消息再次传出,同时引发大众据其估值分析其优势资产的讨论。数据与流量已然成为字节跳动的核心资产,互联网圈内通过数据手段驱动业务增长渐成共识,虽然此前曾被字节跳动创始人张一鸣否认,但多年来持续通过算法与A/B测试进行试错、逐渐搭建起的字节跳动APP生态,一度被外界称为“AB测试公司”。4月20日,字节跳动旗下火山引擎技术开放日中,字节跳动副总裁、算法和数据技术负责人杨震原首次揭秘字节跳动如何使用A/B测试(AB test)。火山引擎是字节跳动旗下为企业服务的智能科技品牌,字节跳...

2021-04-21 23:40:18 368

原创 干货:10个超经典JavaIDE插件,建议收藏!

工欲善其事,必先利其器。作为一名合格的程序员,合理配置我们所用的IDE,是高效开发的必修课。而如今的插件工具也越来越好用,不仅基本具备了智能提示,还可以自动补全代码,甚至能够在查出bug的同时提供修改方案,让我们的日常开发工作变得更加轻松。今天小渡就从无数插件中,精选出了10款超经典的JavaIDE插件,希望可以帮助大家在开发过程中提高开发效率,让我们的开发更加得心应手。建议先收藏后阅读,让我们一起来看看吧~1、SonarLint图片源自网络,仅做配文展示...

2021-04-16 23:57:15 945

原创 IntelliJ IDEA 2021.1正式发布!快来看看又有哪些神仙功能加入

喜欢IntelliJ的玩家这两天一定很开心,因为IntelliJ IDEA 2021.1 已经正式发布!新版本着实让人眼前一亮,IntelliJ IDEA 2021.1 增加了对最新的Java 16 的支持,同时用户可以在 WSL 2 中进行JAVA项目的工作,并且可以使用Space 集成,从 IDE 内部使用 Code With Me 进行协作开发,并增加了IDE 内部的 HTML 预览窗口,也增加了在 SSH 主机和 Docker 容器中运行代码的选项及其他一实用功能的更新。让我们一起来具体看下吧:

2021-04-16 01:57:16 839

原创 redis集群报错:(error) CLUSTERDOWN The cluster is down

更换了电脑,把原来的电脑上的虚拟机复制到了新电脑上,启动虚拟机上的centos系统,然后启动redis集群(redis5版本),发现集群可以启动,redis进程也有,但是连接集群中的任意节点就报错,如下报错了,[ERR] Not all 16384 slots are covered by nodes.修复,redis-cli --cluster fix 127.0.0.1:6379输出如下已修复OK,问题完美解决!...

2021-04-10 22:20:37 301

原创 OpenJDK与JDK的区别分析

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK,那么到底什么是OpenJDK,它与Sun JDK有什么关系和区别呢?历史上的原因是,OpenJDK是JDK的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,OpenJDK已经成为JDK7的主干开发,Sun JDK7是在OpenJDK7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。使用JRL(JavaResearch License,Java研究授权协议)发

2021-04-10 00:00:28 238

原创 叹为观止!GitHub标星过万,腾讯技术官发布的神仙文档:图解网络

获取相关视频资料: (关注“Java高级架构师”,回复“2110”获得:网盘密码)前言滑动窗口的定义: 1.“窗口”对应的是一段可以被发送的字节序列,其连续的范围称为窗口;2.“滑动”则是指这段“允许发送的范围”是可以随着发送的过程而变化的,方式就是按顺序“滑动”。 滑动窗口的作用: 是一种流量控制方法,该协议允许发送方在停止等待确认前可以连续发送发个分组。由于发送方不必每发送一个分组就停下来等待确认,因此该协议可以加速数据的传输。 在了解具体的例子之前我们先来...

2021-04-09 23:32:01 234

原创 实战 | SpringBoot + Redis 分布式锁:模拟抢单

1SpringBoot + Redis 分布式锁:模拟抢单本篇内容主要讲解的是redis分布式锁,这个在各大厂面试几乎都是必备的,下面结合模拟抢单的场景来使用她;本篇不涉及到的redis环境搭建,快速搭建个人测试环境,这里建议使用docker;本篇内容节点如下:jedis的nx生成锁 如何删除锁 模拟抢单动作(10w个人开抢) jedis的nx生成锁 对于java中想操作redis,好的方式是使用jedis,首先pom中引入依赖:<dependency&g.

2021-04-09 23:03:58 134

原创 拼多多面试:如何用Redis统计独立用户的访问量?

全网最全1500份Java学习资料、500份BAT面试真题:关注公众号"java高级架构师",输入“面试题”,获取提取码! 众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer,当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过12个小时,也是相当辛苦的。废话不多说,今天我们来聊一聊拼多多的一道后台面试真题,是一道简单的架构类的题目:拼多多有数亿的用户,那么对于某个网页,怎么使用Redis来统计...

2021-04-09 22:57:46 106

原创 编写程序,读入一个三角形的三条边,计算这个三角形的面积,并输出结果。(提示:设三角形的三条边分别为a,b,c,则面积计算公式 s=(a+b+c)/2) 面积=根号下s(s-a)(s-b)(s-c))

import java.util.Scanner;public class San { double x; double y; double z; San(double x,double y,double z) { this.x=x; this.y=y; this.z=z; } boolean Triangle() {//分析三边是否能.

2021-04-09 22:31:35 1886

原创 Java根据年龄数值输出年龄段

根据年龄数值输出年龄段题目内容:根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)Java代码实现import java.util.Scanner;public static void main0(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("请输入这个人的年龄大小:");...

2021-04-09 01:04:14 1686

原创 阿里P9纯手打亿级高并发系统设计手册,走进阿里的架构世界

淘宝双11,618的京东节,滴滴打车高峰如何抗住亿级的并发量?这一份阿里P9纯手打的高并发系统设计手册帮你解决!这份手册分为基础篇、数据库篇、缓存篇、消息队列篇、分布式服务篇、维护篇、实战篇新鲜出炉的学习手册!下面我只默默截图不说话!基础篇数据库篇缓存篇消息队列篇需要免费领取这份阿里P9纯手打的阿里亿级高并发系统设计手册的朋友麻烦帮忙...

2021-04-09 00:23:41 471

原创 详细讲解!RabbitMQ如何防止数据丢失,看这篇就够了

一、分析数据丢失的原因分析RabbitMQ消息丢失的情况,不妨先看看一条消息从生产者发送到消费者消费的过程:可以看出,一条消息整个过程要经历两次的网络传输:从生产者发送到RabbitMQ服务器,从RabbitMQ服务器发送到消费者。在消费者未消费前存储在队列(Queue)中。所以可以知道,有三个场景下是会发生消息丢失的:存储在队列中,如果队列没有对消息持久化,RabbitMQ服务器宕机重启会丢失数据。 生产者发送消息到RabbitMQ服务器过程中,RabbitMQ服...

2021-04-08 22:59:24 338

原创 冷知识:Java语言层面和JVM层面方法特征签名的区别

方法特征签名用于区分两个不同方法的语法符号。Java语言层面特征签名 = 方法名 + 参数类型 + 参数顺序;JVM层面特征签名 = 方法名 + 参数类型 + 参数顺序 + 返回值类型;注意:如果存在类型变量或参数化类型(即泛型),则两个层面的方法特征签名还包括类型变量或参数化类型编译未擦除类型前的信息(FormalTypeParametersopt),以及抛出的异常信息(ThrowsSignature)。Java语言重载一个方法,需要ava语言层面的方法特征签名不同,...

2021-04-07 13:10:29 119

原创 限流降级神器-哨兵(sentinel)原理分析

Sentinel 是阿里中间件团队开源的,面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。大家可能会问:Sentinel 和之前常用的熔断降级库 Netflix Hystrix 有什么异同呢?Sentinel官网有一个对比的文章,这里摘抄一个总结的表格,具体的对比可以点此 链接 查看。 对比内容 Sentinel Hystrix 隔离策略

2021-04-06 22:55:27 475

原创 大翻盘!超80亿美元Java侵权案落槌,谷歌胜诉!

五次对簿公堂之后,谷歌和甲骨文之间这场旷日持久的版权之争终于结局了。作为胜者,谷歌可以安心了,不用再担心安卓系统里的代码被冠上抄袭的罪名。但对于甲骨文而言,这个结果就没那么好接受了,只能通过垄断暗示来批判前者。这场纠纷已了,但或许又是另一个开始,毕竟在飞速发展的科技领域,仍有不少等待法律填补的漏洞。谷歌胜诉在美国最高法院的力挺下,谷歌反败为胜,当地时间周一,美国最高法院裁定,谷歌公司使用甲骨文公司的软件代码构建的在全球大多数智能手机上运行的安卓操作系统,并未违反联邦版权法。..

2021-04-06 22:52:10 607 2

原创 秒杀场景下如何保证数据一致性?就这个问题我给出了最详细的方案

本文主要讨论秒杀场景的解决方案。什么是秒杀?从字面意思理解,所谓秒杀,就是在极短时间内,大量的请求涌入,处理不当时容易出现服务崩溃或数据不一致等问题的高并发场景。常见的秒杀场景有淘宝双十一、网约车司机抢单、12306抢票等等。高并发场景下秒杀超卖Bug复现在这里准备了一个商品秒杀的小案例,1.按照正常的逻辑编写代码,请求进来先查库存,库存大于0时扣减库存,然后执行其他订单逻辑业务代码;/** * 商品秒杀 */@Servicepublic class GoodsOr.

2021-04-01 00:28:56 706 1

原创 已拿到8个Offer!阿里巴巴Java面试参考指南(泰山版)

楼主今天在写这篇文章的时候,已经收到了第八家公司HR的电话,给的是27K+14薪,虽然涨薪才7K,但是要知道这是我突击18天的面试准备,许多粉丝就很好奇,我是如何拿到这么好的Offer的,是因为我闭关“修炼”了18天的阿里巴巴面试参考指南(泰山版)这份阿里巴巴3月份刚刚发布的最新参考指南,许多公司也奉为“神册”!楼主今天就为大家开源出来,一起拿高薪Offer!由于文章篇幅有限制,下面只能为大家展示部分内容供大家参考~阿里巴巴高并发秒杀架构XA两阶段提交...

2021-03-31 01:22:17 734

原创 内容安全性-具有spring安全性的策略

虽然SpringSecurity可以通过内置内容安全策略(CSP)配置,但它默认将配置策略指定为字符串配置,而不是动态构建它。但是在有些情况下,我们需要更灵活的配置方式。特别是,CSP阻止用户使用内联javascript,因为它引入了漏洞。如果你真的需要它,你可以用unsafe-inline但这是一个糟糕的方法,因为它否定了CSP的全部观点。在该页上提供的替代方法是使用hash或nonce.如果您使用的是.and().headers().contentSecurityPolicy(policy)。策

2021-03-30 23:42:04 495

原创 脉脉研究报告:字节跳动成各大厂人才流动第一去向

近日,在春招之际,职场社交平台脉脉利用平台数据与2169份问卷调查,对本次春招的一些现象与特点进行了分析统计。结果显示:人才在各大互联网企业之间发生流动,字节跳动成为大多数人跳槽加入的第一选择。在度过了2020年初的“最难就业季”之后,2021年的人才招聘终于逐渐回归正轨,各大企业放出了大量的岗位需求。因此,除了应届毕业生在找工作,许多职场人士也选择在这个季节离开原来的供职企业,另外寻求一份满意的工作。根据脉脉数据研究院发布的《人才流动与迁徙2021》数据显示:字节跳动不仅人才净流量规模超过阿里巴巴

2021-03-30 01:17:21 796

原创 腾讯全面升级员工职级体系(附BAT薪资职级对比)

据媒体报道,2019年6月10日,腾讯发布内部邮件,对公司现有的职级体系进行了调整,同时还对中高干群体的绩效考核实施了改革。职级体系方面,腾讯取消了原有的6级18等(1.1-6.3级)的职级体系设计,将专业职级体系优化为14级(4-17级)。同时,还去除不同职级之间的专业标签,统一置换为“专业职级+职位称谓”。(网传腾讯职级体系新旧对照表)腾讯职级体系变革的内容还包括:将推动新通道与新职位的落实,拓宽更多专业赛道; 总监级管理干部将默认在管理通道发展,不再参与专业职级申报与晋升;..

2021-03-30 01:06:41 24215 1

原创 分析:腾讯职级与薪酬体系

核心摘要:腾讯作为中国最大的互联网综合服务提供商之一,也是中国服务用户最多的互联网企业之一,让我们来看看腾讯员工的职级和薪酬体系是怎样的。1、职级腾讯职级体系分6 级,最低1 级,最高6 级同时按照(网经社讯)腾讯作为中国最大的互联网综合服务提供商之一,也是中国服务用户最多的互联网企业之一,让我们来看看腾讯员工的职级和薪酬体系是怎样的。1、职级腾讯职级体系分6 级,最低1 级,最高6 级同时按照岗位又划分为四大通道,内部也叫“族”,比如:产品/项目通道,简称P 族技术通道,简称T 族

2021-03-30 01:03:31 34734

空空如也

空空如也

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

TA关注的人

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