
JAVA基础
文章平均质量分 57
JAVA基础
莫子莫
这个作者很懒,什么都没留下…
展开
-
【JAVA】JDK1.8新特性
Stream是一个能描述某些指令序列的新抽象概念。这个序列可以来自于各种数据源,例如集合、数组、I/O通道等。Stream API支持串行和并行操作,并且支持延迟操作,这意味着只有在需要结果时才会执行操作。这些操作可以链接在一起,形成一个复杂的操作链。以上代码首先过滤出以"P"开头的名字,然后将这些名字转换为大写,最后打印出来。原创 2023-09-14 16:03:53 · 153 阅读 · 1 评论 -
【JAVA】反射
Java反射(Reflection)是在运行时对于任意一个类,都能够了解这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。原创 2023-09-14 12:15:38 · 103 阅读 · 1 评论 -
【JAVA】注解
在这个示例中,@MyAnnotation 注解被应用于 myMethod 方法上,并设置了 value 属性为 “hello”,count 属性为 3。再比如 Spring 常见的 Autowired ,就是 RUNTIME 的,所以在运行的时候可以通 过反射得到注解的信息,还能拿到标记的值 required。, valueN 是注解的属性值,可以有多个属性值。使用自定义注解时,可以在代码中使用 @annotationName 语法来应用注解,并在代码中使用注解的属性值来访问注解的属性。原创 2023-09-14 11:46:36 · 156 阅读 · 1 评论 -
== 和 equals 的区别
在这个例子中,s1和s2是两个不同的对象,虽然它们的内容相同,但是它们在内存中的位置是不同的,所以s1 == s2返回false。在这个例子中,虽然s1和s2不是同一个对象(它们的引用不同),但它们的值是相同的,所以s1.equals(s2)返回true。默认情况下,equals()方法的行为与==操作符相同,它比较两个对象的引用。然而,许多类(如String,Integer等)重写了equals()方法,使其比较对象的值而不是引用。操作符用于比较两个对象的引用是否相同,即它们是否指向内存中的同一个对象。原创 2023-09-08 17:03:22 · 171 阅读 · 1 评论 -
JAVA重载与重写
● 重写(Override): 发生在子类和父类之间,子类中定义一个与父类同名、返回类型、参数类型均相同的方法。重写是子类对父类中允许访问的方法实现过程的再次编写,是实现多态性的一种方式。在调用这些方法时,会根据传递给它们的参数类型和数量来决定具体使用哪个方法,这就是多态性的一种表现。重载(Overload)和重写(Override)是Java中两个重要的概念,都是面向对象编程的一部分,但它们之间存在明显的区别。简单来说,重载是同一个类中的方法名相同但参数不同,而重写是子类中的方法覆盖了父类的方法。原创 2023-09-08 16:43:37 · 720 阅读 · 1 评论 -
JAVA中switch的使用
在这个示例中,根据变量day的值,switch语句选择相应的代码块执行。在这种情况下,day的值为3,因此会执行与case 3关联的代码块,输出为"Wednesday"。如果day的值不在1到7之间,将执行default代码块并输出"Invalid day"。● default是可选的,当expression的值与所有case的值都不匹配时,执行此代码块。● case用于指定一个值,当expression的值与该值相匹配时,相应的代码块会被执行。原创 2023-09-08 15:42:22 · 1058 阅读 · 1 评论 -
JAVA自动拆箱与封箱
当我们将一个Integer对象赋值给一个int类型的变量时,Java会自动将Integer对象拆箱成int值,这就是自动拆箱。相反,当我们从一个int类型的变量赋值给Integer对象时,Java会自动将int值封箱成Integer对象,这就是自动封箱。这些包装类型都是不可变的(immutable),即它们的值一旦被创建就无法更改。需要注意的是,自动拆箱和自动封箱功能只适用于赋值操作,不能用于方法参数传递或返回值类型等场景,因为在这些场景中需要明确数据类型和对应的包装类之间的转换。原创 2023-09-08 15:34:17 · 190 阅读 · 1 评论 -
Java中&和&&的区别
而&&运算符的短路功能可以保证当username为null时,不会执行equals方法的调用。这段代码将会执行并输出"Both are true",因为虽然a的值为false,但b的值为true,所以a & b的结果为true。这段代码将不会执行并输出"Both are true",因为a的值为false,所以当计算。当第一个表达式的值为false时,则不再计算第二个表达式。时,由于短路功能,b的值将不会被计算,因此整个表达式的值为false。只有当a和b都为真时,这两个表达式的值才为真。原创 2023-09-08 15:28:28 · 123 阅读 · 1 评论