首页 文章 精选 留言 我的

精选列表

搜索[Java],共10000篇文章
优秀的个人博客,低调大师

阿里云新版人脸识别基于JAVA签名校验使用示例教程

概述 阿里云会对每个访问的请求进行身份验证,所以无论使用 HTTP 还是 HTTPS 协议提交请求,都需要在请求中包含签名(Signature)信息。通过使用 Access Key ID 和 Access Key Secret 进行对称加密的方法来验证请求的发送者身份。阿里云提供了多种语言的 SDK 及第三方 SDK,可以免去您对签名算法进行编码的麻烦。您可以从这里了解更多阿里云 SDK 的信息,前面系列博客也结合各种语言的SDK进行了实现。本文以DetectFace API为示例,演示实际基于签名校验的实现。 操作步骤 1、pom.xml <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents

优秀的个人博客,低调大师

突破Java面试(48)-设计可动态扩容缩的分库分表

0 Github 1 面试题 设计可动态扩容的分库分表 2 考点分析 选一个数据库中间件,然后深入之 设计分库分表的方案,要分成多少个库,每个库分成多少个表 基于已选的数据库中间件,以及在测试环境建立好的分库分表,能否正常执行分库分表的读写 完成单库单表到分库分表的迁移(使用上一文提到的双写方案) 线上系统,开始基于分库分表对外服务 突然! 扩容了,扩容成6个库,每个库需要12个表,你怎么来增加更多库和表呢? 这个你必须面对的事,就是当你已经弄好分库分表方案,测试也通过了,数据能均匀分布到各个库和表里去,而且接着你还通过双写方案上了系统,已经直接基于分库分表方案在搞了。 需求来了~现在这些库和表又支撑不住了,要继续扩容,咋办? 这个可能就是每个库的容量又快满了,或者表数据量又太大了,也可能每个库的写并发太高了,得继续扩容! 3 停机扩容(不推荐) 这就跟停

优秀的个人博客,低调大师

突破Java面试(38)-分布式服务接口的幂等性

1 面试题 分布式服务接口的幂等性如何设计(比如不能重复扣款)? 2 考点分析 从这开始,面试官就已经进入了实际的生产问题的面试了 一个分布式系统中的某个接口,要保证幂等性,如何保证?这个事,其实是你做分布式系统的时候必须要考虑的一个生产环境的技术问题.为什么呢? 假如你有个服务提供一个接口,这服务部署在5台机器上,有个付款接口.然后用户在前端操作时,不知为啥,一个订单不小心发起了两次支付请求,然后这俩请求分散在了这个服务部署的不同的机器上,这下好了,结果一个订单扣款扣两次,尴尬了! 或者是订单系统调用支付系统进行支付,结果不小心网络超时,然后订单系统走了前面我们看到的那个重试机制,给你重试了一把,好,支付系统收到一个支付请求两次,而且因为负载均衡算法落在了不同的机器上,尴尬了! 所以你肯定得知道这事儿,否则你做出来的分布式系统恐怕容易埋坑! 网

优秀的个人博客,低调大师

突破Java面试(40)-设计一个类似Dubbo的RPC框架

0 Github 1 面试题 如何设计一个类似Dubbo的RPC框架 2 考点分析 就跟问你如何设计一个MQ一样的道理,就考两个: 你有没有对某个RPC框架原理有非常深入的理解 你能不能从整体上来思考一下,如何设计一个rpc框架,考考你的系统设计能力 3 解决方案 其实一般问到你这问题,你起码不能认怂,因为这既然是面试突击教程,那不可能给你深入讲解什么kafka源码剖析,dubbo源码剖析,何况就算讲了,你要真的消化理解和吸收,起码个把月以后了! 所以我给大家一个建议,遇到这类问题,起码从你了解的类似框架的原理入手,自己说说参照Dubbo的原理,你来设计一下,举个例子,Dubbo不是有那么多分层么?而且每个分层是干啥的,你大概是不是知道?那就按照这个思路大致说一下吧,起码你不能懵逼,要比那些上来就懵,啥也说不出来的人要好一些 给大家说个最简单的回答

优秀的个人博客,低调大师

突破Java面试(37)-基于Dubbo的服务治理、服务降级以及重试

0 Github 1 面试题 如何基于dubbo进行服务治理、服务降级、失败重试以及超时重试? 2 考点分析 服务治理其实就是看看你有没有服务治理的思想,因为这是做过复杂微服务的人肯定会遇到的问题! 服务降级涉及到复杂分布式系统中必备的一个话题,因为分布式系统互相来回调用,任何一个系统故障了,你不降级,直接就整个瘫痪了! 失败重试分布式系统中网络请求如此频繁,要是因为网络问题不小心失败了一次,是不是要重试呢 超时重试同上,如果不小心网络慢一点,超时了,又该如何重试呢 3 服务治理 3.1 调用链路自动生成 一个大型的分布式系统,或者拿现在流行的微服务架构来说吧,分布式系统由大量服务组成. 那么这些服务之间互相是如何调用的?调用链路是什么? 讲真的,几乎到后面没人搞的清楚,因为服务实在太多了,可能几百个甚至几千个! 那就需要基于Dubbo做的分布式系统中,

优秀的个人博客,低调大师

突破Java面试(14)-分布式搜索引擎的架构

以下用ES表Elastic Search 0 Github 1 面试题 说说ES的分布式架构原理 2 考点分析 在搜索这块,曾经lucene 是最流行的搜索库.几年前业内一般都问,你了解 lucene 吗?你知道倒排索引的原理吗?但现在不问了,因为现在项目基本都是采用基于 lucene 的分布式搜索引擎—— ElasticSearch. 现在分布式搜索基本已经成为互联网系统的标配,其中尤为流行的就是 ES,前几年一般用 solr。但是最近基本大部分企业和项目都开始转向 ES. 所以互联网面试,肯定会跟你聊聊分布式搜索引擎,就一定会聊到ES! 如果面试官问你第一个问题,确实一般都会问你 es 的分布式架构设计能介绍一下么?就看看你对分布式搜索引擎架构的一个基本理解。 3 详解 ES的设计理念就是分布式搜索引擎,底层其实还是基于 lucene 的.核心思

优秀的个人博客,低调大师

突破Java面试(06)-如何保证消息队列的高可用性

0 Github 1 面试题 如何保证消息队列的高可用性 2 考点分析 高可用是必问的,因为MQ的缺点很多,导致系统可用性降低。所以只要你用了MQ,接下来问的一些要点肯定就是围绕着MQ的那些缺点怎么解决. 要是你傻乎乎的就干用了一个MQ,各种问题从来没考虑过,那你就杯具了,面试官对你的印象就是,只会简单实用一些技术,没任何思考,马上对你的印象就不太好了。这样的同学招进来要是做个20k薪资以内的普通小弟还凑合。如果招进来做薪资20多k的高工,那就惨了,让你设计个系统,里面肯定一堆坑,出了事故公司受损失,团队一起背锅。 3 面试题详解 这个问题这么问是很好的,因为不能问你kafka的高可用性怎么保证啊?ActiveMQ的高可用性怎么保证啊?一个面试官要是这么问就显得很没水平,人家可能用的就是RabbitMQ,没用过Kafka,你上来问人家kafk

优秀的个人博客,低调大师

Java实现文本编辑时基于拼音输入的补全原型

所在源码库同上文, 尚未和上文的编辑器右侧的命令区集成. 代码由How to show autocomplete as I type in JTextArea?修改得来. 基本功能 英文输入至少一个匹配词典的字母后, 显示提示框 上下光标选中某提示项后按空格键自动替换 弹出提示框后, 如果继续键入, 提示框隐藏后, 根据新键入继续提示. 比如上面输入't'后提示"退出"和"粘贴"两项, 继续输入'c'后就只显示"退出" IDE和中文输入法的深度集成是必然趋势. 虽然现在第三方的中文输入法可以解决"输入"的基本功能, 但在IDE自动补全/智能提示功能日益成为开发效率提升的必需辅助功能的现今, 只有实现了中文输入法和IDE补全/提示的集成, 中文编程才能更接近实用. 这早已在易语言开发环境中实现, 期待早日看到开源项目实现类似功能. 源码简单说明 监听文本框的按键输入, 并准备弹出提示框: 文本区.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { 随后显示提示(); } ... }); 弹出之前, 先获取此次输入的字符串, 并基于它生成/更新提示框: private void 显示提示() { final int 文本位置 = 文本区.getCaretPosition(); Point 界面位置; try { 界面位置 = 文本区.modelToView(文本位置).getLocation(); } catch (BadLocationException e2) { e2.printStackTrace(); return; } final String 提示源词 = 取提示源词(文本位置); if (提示源词 == null) { return; } if (提示 == null) { 提示 = new 提示框(文本区, 文本位置, 提示源词, 界面位置); } else { 提示.更新(文本位置, 提示源词, 界面位置); } } 提示框部分, 由一个列表来管理提示项的选择, 文本的替换: private JList<String> 创建提示列表(final String[] 提示列表) { JList<String> 列表 = new JList<>(提示列表); 列表.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1)); 列表.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 列表.setSelectedIndex(0); 列表.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { if (e.getKeyChar() == KeyEvent.VK_SPACE) { if (插入选择文本()) { 隐藏(); } } else { 隐藏(); 文本区.requestFocusInWindow(); 文本区.dispatchEvent(e); } } @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_DOWN) { 下移(); } else if (e.getKeyCode() == KeyEvent.VK_UP) { 上移(); } } ... }); return 列表; } 当然少不了一个字符->中文词典(如下), 实际应用时需要基于拼音生成提示的算法 private static final HashMap<String, String[]> 提示词典 = new HashMap<>(); static { 提示词典.put("xj", new String[] {"新建"}); 提示词典.put("dk", new String[] {"打开"}); 提示词典.put("bc", new String[] {"保存"}); 提示词典.put("jq", new String[] {"剪切"}); 提示词典.put("fz", new String[] {"复制"}); 提示词典.put("nt", new String[] {"粘贴"}); 提示词典.put("zt", new String[] {"粘贴"}); 提示词典.put("tc", new String[] {"退出"}); 提示词典.put("j", new String[] {"新建", "剪切"}); 提示词典.put("t", new String[] {"退出", "粘贴"}); }

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册