随笔分类 - 开发经验
开发经验
摘要:finally 一定会执行,即使是 catch 中 return 了,catch 中的 return 会等 finally 中的代码执行完之后,才会执行。 下面提供了一段示例代码和运行结果。问题的核心在于当catch块中有return语句时,finally块是否还会被执行
阅读全文
摘要:synchronized 是由一对 monitorenter/monitorexit 指令实现的,monitor 对象是同步的基本实现单元。在 Java 6 之前,monitor 的实现完全是依靠操作系统内部的互斥锁,因为需要进行用户态到内核态的切换,所以同步操作是一个无差别的重量级操作,性能也很低
阅读全文
摘要:-1 等于 -1,因为在数轴上取值时,中间值(0.5)向右取整,所以正 0.5 是往上取整,负 0.5 是直接舍弃。(观点不认同) Math提供了三个与取整有关的方法:ceil、floor、round (1)ceil:向上取整; (2)floor:向下取整; (3)round:四舍五入; 1、cei
阅读全文
摘要:接口 (Interface) 定义:使用 interface 关键字定义。 实例化:接口不能被直接实例化。 实现:一个类可以实现多个接口。 方法:Java 8 之前,接口中只能包含抽象方法(默认为 public abstract)。Java 8 之后,接口可以包含默认方法(def
阅读全文
摘要:1. **String**: - 是不可变对象。每次对 String 类型进行修改时都会生成一个新的对象。 - 适用于不频繁修改字符串的情况。 2. **StringBuilder**: - 线程不安全,效率高,多用于单线程环境。 - 适用于需要频繁修改字符串的操作。 3. **StringBuff
阅读全文
摘要: 一、什么是Nacos? 一个更易于构建云原生应用的动态服务发现、服务配置和服务管理平台。 Nacos的关键特性: 二、注册中心演变及其设计思想 1、RestTemplate调用远程服务 如果此时,服务端接口接口名或参数或请求方式更改了,那么就得同步修改此restTemplate方法,感觉很麻烦。
阅读全文
摘要:声明为static的方法有以下典型使用场景 工具方法(Utility Methods):当你有一个方法不需访问对象状态,即不需要访问类的非静态成员变量,那么这个方法可以声明为static。这样,你无需创建类的实例就可以通过类名直接调用该方法。很多工具类如Math, Arrays, Collectio
阅读全文
摘要:Java集合框架是一个设计精良、功能强大的工具集,用于存储和操作对象集合。它大致分为以下几类,并且各类之间存在一定的层级关系和功能差异: ### 顶级接口(根接口)1. **Collection**: 是最基础的集合接口,所有集合类都直接或间接实现了这个接口。它定义了基本的集合操作,如添加元素(`a
阅读全文
摘要:在Java中,`String`、`StringBuffer`、和`StringBuilder`都是用于处理字符串的类,但它们之间存在一些关键差异,主要涉及可变性、线程安全性和性能: 1.String:-不可变性:`String`对象一旦被创建,其内容就不能改变。任何对`String`的操作,比如拼接
阅读全文
摘要:Tomcat 使用自定义类加载器主要是基于以下几个关键原因: 1.应用隔离:Tomcat作为一个Web容器,能够同时部署和运行多个Web应用程序。每个应用可能依赖不同的库版本或者包含同名类,为了确保每个应用的类库相互独立,避免类冲突,Tomcat 为每个Web应用提供了一个独立的类加载器实例,即`W
阅读全文
摘要:`synchronized`关键字的锁升级过程是Java为了提高锁的性能,减少在无竞争或多线程轻度竞争情况下的开销而设计的一套机制。这一过程主要涉及以下四个阶段: 1. 无锁状态:当一个对象刚创建时,并没有锁与其关联,处于无锁状态。 2. 偏向锁(Biased Locking):-初始化:当第一个线
阅读全文
摘要:ReentrantLock在Java中是通过AbstractQueuedSynchronizer(AQS)框架实现的,它提供了公平锁(FairSync)和非公平锁(NonfairSync)两种模式。这两种锁的实现主要区别在于获取锁的策略。 import java.util.concurrent.lo
阅读全文
摘要:不建议使用`Executors`类的静态方法(如`newFixedThreadPool`, `newSingleThreadExecutor`, `newCachedThreadPool`等)来创建线程池,主要基于以下几个原因: 1. 隐藏关键配置参数:`Executors`提供的便捷方法通常会隐藏
阅读全文
摘要:Dubbo是阿里巴巴开源的一款高性能Java RPC框架,用于提供远程服务调用和服务治理。它提供了服务导出、引用、负载均衡、容错、集群等功能,可以帮助开发者构建分布式服务架构。Dubbo支持多种协议,包括dubbo、rmi、hessian、http、webservice等,同时也支持多种注册中心,如
阅读全文
摘要:我们研发项目,写代码时,使用的一般都是windows或者是MAC的操作系统,作为本地的用户使用系统,而Linux一般都是放在服务器上运行的一种高效稳定的服务器系统. 我们还是无法完全避免对于Linux的接触和使用,尤其是在一些中小型企业,一个程序员往往是多面手,称之为"全干工程师",那么这个时候我们
阅读全文
摘要:什么是MVC模式 MVC模式是目前WEB项目主要的项目架构模式,是一种非常优秀的三层架构模式,其三层是指视图层View,控制层Controller和模型层Model,它们分别完成不同的功能 View 层:视图层,用户提供用户的操作页面,是数据的展现层,也是用户接触的界面层 Controller层:控
阅读全文
摘要:是一个开源框架,它由Rod Johnson创建 ,.它是一个容器框架,用来装javabean,这种中间层框架可以起一个连接作用,比如说把Struts和hibernate结合在一起运用,就是早期的SSH,如果把SpringMVC和MyBatis结合到一起,就是目前非常流行的SSM。简单来说,Sprin
阅读全文
摘要:在HTTP协议下,前后端交互有两种技术,一是同步,二是异步 Ajax异步交互技术简介 “Asynchronous Javascript And XML”(异步 JavaScript和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。
阅读全文
摘要:过滤器Filter简介 Filter也称之为过滤器,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能
阅读全文
摘要:Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,JavaScript 的正式名称是 "ECMAScript"。这个标准由 ECMA 组织发展和维护。ECMA-262 的开发
阅读全文