Java开发之路(12)Java基础——注解Annotation和多线程入门

本文介绍了Java中的注解概念,包括@ Override和预定义注解,并探讨了自定义注解的定义及应用场景。此外,文章详细讲解了多线程,包括线程的概念、实现方式、同步锁、死锁问题以及线程通信的经典案例——生产者消费者模式。
摘要由CSDN通过智能技术生成

一、注解的概念:

注释:写给程序员看的
注解:写给编译器、JVM看的。

1.@Override

class test1{
   
//注解:JVM知道这个方法是重写方法,检查这个方法是否符合重写规则。
	@Override
	public String toString() {
   
		return "test1 []";
	}
}

后面学习框架的时候会遇到大量的注解,结合反射一起运用。

2.预定义注解:

JDK自带的注解。

class test1{
   
//注解:JVM知道这个方法是重写方法,检查这个方法是否符合重写规则。
	@Override
	public String toString() {
   
		return "test1 []";
	}
	
	@Deprecated//不推荐使用
	void test() {
   	
	}	
	@SuppressWarnings("")//警告
	void test1() {
   	
	}
}

二、自定义注解

1.注解简单定义

@Table(value = "UserTable")//使用注解
class User{
   
	
}

//声明一个自定义注解,该注解的名字为Table
//@interface是声明注解的注解
@interface Table{
   
	String value();//该注解的属性,value属性,String的值
	//String tupe();
}

2.配置注解相关的使用信息

在这里插入图片描述

@Target(ElementType.TYPE)//声明Table注解在哪使用:类、属性、方法
@Retention(RetentionPolicy.RUNTIME)//声明Table注解是什么时候用:运行、编译

三、注解的应用场景

通过注解将类和表对应起来

表——类:userTable——user
列——属性:
id——id:主键
name——userName:

import java.lang.annotation.Annotation;

/*
 * 通过注解将类和表对应起来
 */
public class AnnotationTest3 {
   
	public static void main(String[] args) {
   
		Class clazz = User.class;
		Annotation[] ana = clazz.getAnnotations();
	}
}

@interface Bean{
   //作用在类上,代表该类与哪张表对应
	String table();
}
@interface Id{
   //作用在类的属性上,代表该属性是主键
	String value();
}
@interface Column{
   //作用在属性上,代表该属性所对应的列
	String value();
}

@Bean(table = "user")//代表User类对应的表是User表
class User{
   
	@Id(value = "u_id")//代表id属性是主键,同时表中的主键列是u_id
	private int id;
	@Column(value = "nickName")
	private String name;
	@Column(value = "password")
	private String pwd;
	@Column(value = "telNumber")
	private String phone;
	@Column(value = "userType")
	private String type;
	@Column(value = "q_email")
	private String email;
	@Column(value = "qq")
	private String qq;
}

四、反射+泛型+注解

一、多线程的概念

1.程序、进程和线程

(1)程序:是为完成特定任务、用某种语言编写的一组指令的集合。即值一段静态的代码,静态对象。
(2)进程:任务管理器中运行的功能软件,进程之间是相对独立的,有它自身的产生、存在和消亡的过程,Java.exe进程Javaw.exe

几核CPU就代表同一个瞬间能处理的任务数。通过主频频繁的切换。

(3)线程:线程是进程的执行单位,一个进程中的小功能是由线程来实现的,线程是程序内部的一条执行路径。

2.并发和并行:

(1)并行:比如鸣人的影分身,分身同时做事情,每个分身是独立的。
(2)并发:同一个人,交替做两件事情。(时间片轮转:两个线程,抢占CPU资源。)

二、多线程的实现:

Java语言的JVA允许程序运行多个线程,通过java.lang.Thread类来实现。

多线程的模型:工人做任务。
多线程实现的2种方式:

1.继承Thread类实现多继承:

Thread类的特性:
每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run()方法的主体称为线程体。通过Thread对象的start()方法来调用这个线程。


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值