interface Named { default void getName() { System.out.println("named"); } } interface Show { default void getName() { System.out.println("show"); } } class Person { public void getName() {
1、同事协助开发,可以先写好接口,定好我要给他的方法和返回类型,然后我再慢慢去实现 接口对应的实现类 2、调用方调接口去调用方法,后面逻辑变更,我只需要修改实现类,调用方不需要修改代码 例子: 接口 public interface User{ String getname(); } 实现类 @service public class Use
添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> SQL Scheme 可以打开依赖项 org.quartz-scheduler.quartz 包 org.quartz.impl.jdbcjobstore 下找到。
/** @ClassName:QueryVOToBeanUtil @author: 短笛吟风 @description:TODO @createDate: 2020/2/18 @version: 1.0 */ public class QueryVOToBeanUtil { /** 将JavaBean转换成Map @param obj @return @throws SecurityException @throws NoSuchMethodException @t
js作用域优先级:声明变量>声明普通函数>参数>变量提升 function fun(a){ var a = 10; function a(){} console.log(a); } fun(100);//输出10 function Foo(){ getName = function(){ console.log(1); } return this; } Foo.getName = function(){ console.log(2); } Foo.pr
The concrete value stored in an interface is not addressable, in the same way that a map element is not addressable. 意思具体值赋值给 interface 类型后与 map 中的元素一样是不可寻址的。 map 由于可能触发扩容,元素不可寻址; package main const NewName = "run.wu" ty
package com.atgu; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; class MyResource{ private volatile boolean FLAG=true
currentThread的详解 currentThread方法是Thread类的一个静态方法,用来获取当前运行的代码段,正在被哪个线程调用。我们先来看一眼源码。 是一个native方法。直接与系统层面做交互。 下面看一段代码 public static void main(String[] args) { String name = Thread.cu
Lamda表达式简化线程创建方式 实际上本质还是实Runnable接口的一种方法,此方法的好处是可以简化代码,利用函数式接口,将原先需要实现Runnable接口重写run方法的部分,简化为 new Runnable(){}形式(创建线程对象时实现接口方法),再简化为函数式接口Lamda表达式方法 public static void
创建一个控制台项目,.net5或.net6(Preview),在Program.cs中写如下代码,F5,能顺利跑起来,没有Program类,没有Main函数。 这是C#9带来的顶级语句的功能。 System.Console.WriteLine("你好,C#"); 其实这里的Program类和Main还是存在的,只是一种略写法,可以用如下代码看出来: Sy
创建一个控制台项目,.net5或.net6(Preview),在Program.cs中写如下代码,F5,能顺利跑起来,没有Program类,没有Main函数。 这是C#9带来的顶级语句的功能。 System.Console.WriteLine("你好,C#"); 其实这里的Program类和Main还是存在的,只是一种略写法,可以用如下代码看出来: Sy
this问题 this的四种绑定 PS:this指向在调用的时候确定 !!!!!!!!!!!!!!!!!!!!!!!!!important 1.默认绑定规则 console.log(this === window); //true console.log({} === {}); //false // 函数的独立调用 function test(){ console.log(this ===
在学习java基础使偶尔使用的lambda表达式的简洁性 原: Comparator<Employee> com = new Comparator<Employee>() { @Override public int compare(Employee o1, Employee o2) { return -o1.getName().compareTo(o2.getName());
我们在系统开发过程中,对数据排序是很常见的场景。一般来说,我们可以采用两种方式: 借助存储系统(SQL、NoSQL、NewSQL 都支持)的排序功能,查询的结果即是排好序的结果 查询结果为无序数据,在内存中排序。 今天要说的是第二种排序方式,在内存中实现数据排序。 首先,我们定义一个基础类,
一、共同点 当出现互斥资源时,期望一段代码同时只能一个线程访问,如商品抢购活动,多线程同时操作数据库可能导致数据错误。 二、区别 synchronized 是JVM内置的关键字,Lock是java.util.concurrent.Locks 包下的一个接口。 synchronized 不管是否出现异常,会自动释放锁;Lock需要手动
作者:Hong HuaMin 链接:https://www.zhihu.com/question/463017131/answer/1922569604 来源:知乎 Person p = null; if (args[0] == "男") { p = new Man(); } else { p = new Woman(); } Console.WriteLine(p.GetName()); public class Person { public string Name { g
创建对象: @Data @AllArgsConstructor @NoArgsConstructor public class PointVo { private String name; private Integer y; } 要求:已知list1和list2中name字段部分一致,将list2中的y字段根据与list2中的name字段相同的部分复制给list2 name字段不重合的部分
Java List 排序Sort 和Sorted 1、sort: list.sort 方法是list方法 对原有list 元素顺序位置进行更改排序 如: listP.sort((x1,x2)->x1.getName().compareTo(x2.name)); 2、sorted: sorted 方法是对list转换成stream流的方法,不对有有list元素排序,而是返回一个排序后的新l
//模拟龟兔赛跑 public class Race implements Runnable { //胜利者 private static String winner; @Override public void run() { for (int i = 1; i < 101; i++) { //模拟兔子休息 if(Thread.currentThread().getName().e
package jiaqi; /** * @Date: 2022/1/1 - 01 - 01 - 12:37 * @Description: */ import java.util.Date; public class SupperTest extends Date{ private static final long serialVersionUID = 1L; private void test(){ System.out.println(super.getCl
1、服务调用方式 调用motan服务,可以在setter方法或field标注 @MotanReferer 注解引入要调用的服务接口,如下作用于field: @MotanReferer(basicReferer = "ad-commonBasicRefererConfigBean", application = "ad-filter", version = "1.1.0") private AdCommonRPC adCommonRPC;
1.导入文件 里面的主题为test 2.写一个切面注解 使用注解来完成 日志的收集 (都写在controller层的 utils 中) //在方法上标注 @Target(ElementType.METHOD) //运行时间 @Retention(RetentionPolicy.RUNTIME) public @interface MyAnn { //注解 String value() d
public static void getName(String name){ File file=new File(name);//path为文件夹的路径 File[] tempList = file.listFiles();//该方法返回的是文件数组 for (int i = 0; i < tempList.length; i++) {//循环这个数组 if (tempList[i].isFile()) {//根
package 线程;public class Race implements Runnable{ //龟兔赛跑 //胜利者 private static String winner; @Override public void run() { for (int i = 0; i <= 100; i++) { //模拟兔子休息 if (Thread.currentThread().getName(
在 Spring MVC容器启动时——web九大组件初始化 已经大概介绍过web九大组件,本文将聚焦于Spring MVC中最重要的一个组件:HandlerMapping展开讨论。 HandlerMapping 用来查找Handler的。在SpringMVC中会有很多请求,每个请求都需要一个Handler处理,具体接收到一个请求之后使用哪个Handle