相比synchronized,final和volatile也是经常使用的关键字,下面聊一聊这两个关键字的使用和实现1.使用 final使用:修饰类表示该类为终态类,无法被继承修饰方法表示该方法无法重写,编译器可以内联编译修饰对象表示该对象引用一旦初始化后,无法被修改将参数传递到匿名内部类中,参数需要声明为final,其实外部类对与匿名内部类来说就是一个闭包,而java在匿名内部类中拷贝了一份
转载
2023-09-11 09:13:30
109阅读
public被称为访问修饰符,它永远控制程序的其他部分对这段代码的访问级别。
class 表明JAVA程序中的全本内容都包含在类中。
(int 4字节
short 2字节
long 8字节
byte 1字节)JAVA整型
长整型数值有一个后缀L(如4000000000L)。十六进制数值有一个前缀0x(如0xC
转载
2023-12-17 10:50:57
247阅读
在Java中,final可以修饰类,方法,属性。一 final数据final关键字修饰变量,用来向编译期告知这块数据恒定不变:在Java中这类常量必须是基本类型,编译期可以将该常量代入到可能用到它的表达式中,也就是说,可以在编译期执行计算;[java] view plain copyprivate final int valueOne&n
转载
2023-09-05 15:34:43
116阅读
在线程安全问题中final主要体现在安全发布问题上,在这里先讲一下什么事安全发布,在《java并发编程实践》一书中有讲,不过看起来挺难懂的….public class Holder {
private int n;
public Holder(int n) { this.n = n; }
public void assertSanity() {
转载
2023-08-11 16:45:37
44阅读
1.修饰数据
在编写程序时,我们经常需要说明一个数据是不可变的,我们成为常量。在java中,用final关键字修饰的变量,只能进行一次赋值操作,并且在生存期内不可以改变它的值。更重要的是,final会告诉编译器,这个数据是不会修改的,那么编译器就可能会在编译时期就对该数据进行替换甚至执行计算,这样可以对我们的程序起到一点优化。
class V
转载
2023-07-07 22:10:41
76阅读
文章目录前言一、stream流概述?二、stram流分类
1.顺序流
2.并行流3.小结三、stream使用总结 前言提示:这里可以添加本文要记录的大概内容:stream学习笔记提示:以下是本篇文章正文内容,下面案例可供参考一、stream概述?java8新功能,将要处理的元素集合看成一种流的形,在流的过程中借助Stream api对流中的元素进行操作,Stream可以由数组或集合创建
转载
2023-09-26 17:49:43
93阅读
(一)学习总结 1.思维导图:2.当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序。可使用printStackTrace 和getMessage方法了解异常发生的情况。阅读下面的程序,说明printStackTrace方法和getMessage 方法的输出结果分别是什么?并分析异常的传播过程。 答:getMessage方法输出的是:“Exception thrown in m
转载
2024-08-05 21:01:00
33阅读
唯一重要的是如果你正在使用OuterClass.this.method()例如class OuterClass { void method() { } class InnerClass { void method() { OuterClass.this.method(); // not the same as method(). } } }这些结构与生成的字节码完全没有区别,因此没有性能影响。 如
转载
2023-09-28 10:11:23
77阅读
前面已经介绍过自定义View组件的开发,自定义View组件与Android系统提供的View组件一样,即可在Java代码中使用,也可在XML界面布局代码中使用。当在XML布局文件中使用Android系统提供的View组件时,开发者可以指定多个属性,这些熟悉可以很好地控制View组价的外观行为。如果用户开发的自定义View组件也需要指定属性,就需要属性资源的帮助了。属性资源文件也放在/res/val
转载
2023-09-20 15:09:29
67阅读
最开始看到题目是懵的,不知道怎么下手。等到后面理清的思维逻辑后,基本上也就直接填代码了。大概流程是:先初始化这个题目里面所需要的变量,然后是用面向过程里的选择语句switch来提供用户选择的选项,在每个选项里设置方法,运用面向对象学到的基础内容来调用方法,具体代码如下:public class FoodList {//初始化食品清单
String name;// 菜名
double price
转载
2023-12-06 18:07:04
56阅读
在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同OS下,返回的东西不一样! String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:byte[] b_gbk = "深".getBytes("
转载
2023-08-31 11:15:07
131阅读
一、字符串比较用compareTo()时:1,长度相同,从第一位开始比较,如果相同返回0,如果不同则马上返回这两个字符的ascii值的差值。2,长度不同,直接返回长度差值。二、Integer比较用compareTo()时:1,对比数字时相同,返回0。2,对比数字不同时,返回-1。 public int compareTo(Student o) {
转载
2023-05-30 13:15:14
95阅读
一、概述很多人在面试的时候有可能就会被问到上面这个问题,在java中,a=a+b和a+=b是不是一样的,相信绝大多数人,第一眼的答案就是一样的,至少结果上应该是一样的,但是你冷静下来想一想呢,这里面肯定有坑的啊,我们今天就来看一下。二、代码验证我们先来看一下a=a+b的情况,代码如下:从图中可以看出出现了错误,根本无法运行。报错原因我也贴出来了,说是需要byte类型,但是确实int类型,这里因为a
转载
2023-08-20 10:24:06
66阅读
在本文中,我们将java.lang.StackOverflowError通过查找不同的代码示例来讨论,以及如何避免它们。更确切地说,StackOverflowError这是Java不允许捕获的错误,例如,堆栈空间不足,因为它是人们可能遇到的最常见的运行时错误之一,因为它的引发条件是在几乎每个模块中直接或间接实现的。java.lang.StackOverflowError的主要原因是我们没有为递归函
转载
2023-07-24 12:46:56
239阅读
数据结构中的队列了解以下,"先进先出"是队列的最大的特点,也就是只能在头部访问一个元素,在尾部添加一个元素。还有一种叫做双端队列。可以有效地在头部和尾部同时添加或删除元 素。 不支持在队列中间添加元素。在 JDK6 中引人了 Deque 接口, 并由 ArrayDeque 和 LinkedList 类实现。这两个类都提供了双端队列, 而且在必要时可以增加队列的长度。在并发包下还提供了有限队列和有限
转载
2023-10-20 22:02:19
161阅读
1. 参数校验常用注解 注解验证的数据类型备注 Null 任意类型 参数值必须是 Null&nbs
转载
2023-05-22 13:01:30
134阅读
一、MyBatis传参parameterTypeparameterType:接口中方法参数的类型, 类型的完全限定名或别名如:parameterType = "java.lang.Integer" parameterType = "int"这个属性是可选的,因为可以推断出具体传入语句的参数,默认值为未设置(unset)。接口中方法的参数从 java 代码传入到 mapper 文件的 sql 语句注
转载
2023-09-01 16:38:01
412阅读
Matcher方法如下:Matcher方法如下: Matcher appendReplacement(StringBuffer sb, String replacement) 将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里。 StringBuffer appendTail(StringBuffer
转载
2023-08-08 17:49:34
75阅读
1 基础1.1 什么是注解Java 注解(Annotations)是程序的一种元数据形式(可理解为程序的描述信息),而不是程序本身。注解对被注解的代码没有直接的影响。 下面是一个使用注解的简单例子,MyClass类上有一个Author注解,Author注解包含两个元素,name和date 若注解中只包含一个元素,且元素名称是value,则在使用注解的时候可以省略元素名称,直接声明元素值 @Auth
转载
2023-09-20 15:09:09
120阅读
一、java中异常的分类:1.Error当程序发生不可控的错误时,通常做法是通知用户并中止程序的执行。与异常不同的是Error及其子类的对象不应被抛出。Error是throwable的子类,代表编译时间和系统错误,用于指示合理的应用程序不应该试图捕获的严重问题。Error由Java虚拟机生成并抛出,包括动态链接失败,虚拟机错误等。程序对其不做处理。2.ExceptionException一般分为
转载
2024-01-25 18:11:57
31阅读