经过4次优化,将页面的加载时间控制在了1秒以内,实打实的提升了程序的秒开率。
大家好,我是哪吒。上一篇简单聊一聊公平锁和非公平锁,parallel并行流,提到了一个IntStream.rangeClosed并行流问题,很多小伙伴,对这个比较陌生,想用线程池的方式改造一下。一、IntStream.rangeClosed并行流@Data public class LockTest1 { public static void main(String[] args) {
越细粒度的锁越好吗?产生死锁怎么办?
大家好,我是哪吒。上一章提到了i++的线程安全问题,最终方案是在两个方法上添加synchronized关键字,从而避免i++的线程安全问题,不过,这样真的好吗?在所有有线程安全的方法都添加synchronized?答案是显而易见的,不行。synchronized会极大的降低程序的性能,导致整个程序几乎只能支持单线程操作,性能显著降低。那么,如何解决呢?一、降低锁的粒度,将synchronized关
吹毛求疵i++三步走
大家好,我是哪吒。一、需求很简单根据接口文档,调用第三方webservice接口,拼接入参,处理回参。RPC调用Webservice接口是一种远程调用的方式,通过指定Webservice接口的调用地址、命名空间、调用的方法名调用远程接口获取结果。二、解决方案通过 ExecutorService 新建线程池;定义thread类,请求webservice接口;三、线程池简介1、创建方式public T
大家好,我是哪吒。众所周知,SpringMVC分了很多请求方式,get post put delete,它们有什么区别呢?Java怎么模拟POST请求呢?今天就来说道说道。一、先说一下get和postGET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。1、看一下人畜
2023年全球AI浪潮迭起,大语言模型热度空前,生成式人工智能为千行百业高质量发展带来更多想象空间。作为前沿科技风向标、汇聚全球开发者的顶级盛会,WAVE SUMMIT 2023深度学习开发者峰会正式定档8月16日,在北京望京凯悦酒店召开。本次峰会聚焦深度学习及大模型技术的发展与未来,将带来行业前瞻洞察和一系列全新重磅发布。WAVE SUMMIT峰会由深度学习技术及应用国家工程研究中心主办,百度飞
很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~
大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,再百度,“良性循环”。今天,我就用一天的时间,整理一下关于Java I/O流的知识点,分享给大家。每一种IO流,都配有示例代码,大家可以跟着敲一遍,找找感觉~一、InputStreamInputStream 代表一个输
一、AI时代降临去年11月ChatGPT横空出世之后,生成式AI向人们展示出了自己的强大力量,各种大模型如雨后春笋一样涌现,并实现了大规模的商业化。闲暇之余,我也研究了一番,发现AI在图像处理领域具有许多卓越的优点。其中一项突出的优势是,AI可以快速准确地处理大量的图像数据,大大提高了工作效率。相比传统的人工处理方式,AI可以同时处理多个图像,并在短时间内完成任务。这对于需要处理大规模图像数据的行
大家好,我是哪吒。最近在学习OCR相关的技术,是指对包含文本资料的图像文件进行分析识别处理,获取文字及版面信息的技术。OCR预处理的最终目的是提高字符识别的准确性和效率。其中版面分析技术指的是OCR系统可以忽略图像中的非文本区域,并将文本区域划分为易于处理的行和列,从而减少字符识别的错误率。近期在2023年度视觉与学习青年学者研讨会(VALSE)上,作为智能文档处理领域的代表合合信息对于智能文档处
在当今互联网技术的快速发展中,API 成为了越来越多的软件和系统之间交互的核心方式,而 API 的质量和效率对于软件的开发和运维都至关重要。
一、同样是缓存,用map不行吗?Redis可以存储几十个G的数据,Map行吗?Redis的缓存可以进行本地持久化,Map行吗?Redis可以作为分布式缓存,Map只能在同一个JVM中进行缓存;Redis支持每秒百万级的并发,Map行吗?Redis有过期机制,Map有吗?Redis有丰富的API,支持非常多的应用场景,Map行吗?二、Redis为什么是单线程的?代码更清晰,处理逻辑更简单;不用考虑各
大家好,我是哪吒。思考一个问题,为何属性是private,然后用get/set方法?普遍想法大家都这么写,我也这么写;这是Java的封装特性,你不知道?隐藏属性,不暴露过多细节,更安全;下面系统的分析一下,why?1、采用get/set方法其实是Java的一个协议,在1996年12月提出的java bean1.00-A,通过统一的规范可以设置对象的值(比如get、set方法)。很多框架也是
Spring Cloud微服务实战系列,打造精品专栏。
一、遇到一个问题1、读取CSV文件package com.guor.demo.charset;import java.io.BufferedReader;import java.io.FileReader;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;pu
大家好,我是哪吒。一、做一个小测试,通过注释,标注出下面两个类中每个方法的执行顺序,并写出studentId的最终值。package com.nezha.javase;public class Person1 { private int personId; public Person1() { setId(100); } public void setId(i
如果是你来写对象间赋值的代码,你会怎么做?
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号