JAVA12_09学习总结(Java注解,JavaScript)

今日内容

1. Java注解

Java注解
    所有注解都继承自Java.lang.annotation下的
        Annotation公共接口
        注解的本质就是接口
            --接口中的方法名在注解中称为属性
            --注解中有且只有一个value属性!--用来给属性赋值!
    jdk提供内置注解--列举一些
        -标记 当前一些使用访问
            @Override
                标记当前这个方法是否重写方法(父类或者接口)
            @SuppressWarnings
                抑制警告 :项目部署上线的,所有的类不能出现黄色警告线
            @Deprecated
                标记这个方法已经过时
            @FunctionalInteface
                标记接口用的,是否为函数式接口(接口中有且仅有一个抽象方法)
    内置注解依赖一些"元注解"
        @Target
            -标记指定的注解可以使用的范围!
            ElementType[] value()
                -value属性的返回值枚举类型的数组
                ElementType
                    -说明@Target使用的范围 (这四个经常用)
                    TYPE      
                        -标记注解可以在类上或者接口上使用
                    FIELD     
                        -标记注解可以在成员变量上使用
                    METHOD    
                        -标记这个注解可以在方法上使用
                    PARAMETER   
                        -标记你这个注解可以在形式参数上使用
        @Retention
            -标记当前这个注解能够在什么级别下用
            RetentionPolicy value()
                -value属性返回值枚举RetentionPolicy
                三个级别(三个阶段)
                    SOURCE
                        -源代码的代码编译阶段
                    CLASS
                        -当前注解中类相关的加载阶段
                    RUNTIME  
                        -运行阶段
        @Documented
            -解析的时候,针对类或接口上使用这个注解,保留文档注释!
注意
    jdk8以后 接口可以定义默认方法,可以被子实现类重写
        接口中可以定义默认方法
            -default
            -static
//源码分析
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})//可以在基本上全段用
@Retention(RetentionPolicy.SOURCE) //在编译时期用
public @interface SuppressWarnings { //压制黄线警告
    
    String[] value();//唯一的返回值
}
注解中的属性名(就是接口中的成员方法名)的返回值类型可以是哪些数据类型?
    5种类型
        基本数据类型
        字符串类型
        枚举类型
        注解类型
    以上类型是数组格式
自定义注解
    当我们通过反射调用类中方法时
    书写配置文件
        -获取配置文件中的当前类的全限定名称
        -获取公共方法名
        -读取配置文件
        -调用
    还可以用注解的方式--本质是从外部输入,然后在解封获取信息!
    书写注解
        -将全限定名称和方法名写进去
          自定义注解,解析注解
            1)获取当前注解标记的这个类的字节码文件对象
            2)通过Class字节码文件对象---->解析注解---获取注解(接口)---->实现类对象
                public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
                    -参数里面说的注解的字节码文件对象
        -调用
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
​
//书写Target和Retention
@Target(ElementType.TYPE) //可以作用在类上
@Retention(RetentionPolicy.RUNTIME) //用在运行阶段
public @interface myAnnotation {
    //书写全限定名称,方法名
    String classname(); //本质是接口,所以接口书写方式
    String methodname();
}
​
​
​
//准备方法
public class DemoTest {
    public void show(){
        System.out.println("我是通过注解获得信息,反射调用的一句话!");
    }
}
​
​
​
​
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
​
//测试方法和接口
//注解--直接输入注解内需要的内容,全限定名称,方法名
@myAnnotation(classname = "annotation.annotationTest_01.DemoTest",methodname = "show")
public class TestAnnotation {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException {
        //自定义注解--解析
        //获取当前标记注解的类的字节码文件
        Class clazz = TestAnnotation.class ;
        //通过Class字节码文件对象---->解析注解---获取注解(接口)---->实现类对象
            //这一步相当于获取到了我们给注解属性赋的值
        myAnnotation myannotation = (myAnnotation) clazz.getAnnotation(myAnnotation.class);
        //获取调用值
        String classname = myannotation.classname();
        String methodname = myannotation.methodname();
        //通过反射调用方法
        //获得方法类的字节码文件
        Class clazz1 = Class.forName(classname);//直接填从注解中获取的全限定名称
        Object obj = clazz1.newInstance(); //创建实例对象
        Method method = clazz1.getMethod(methodname);//获取方法--通过注解中的方法名
        method.invoke(obj);//调用之中的方法
        //我是通过注解获得信息,反射调用的一句话!
    }
}

2. CSS定位属性

CSS定位属性
    position定位属性:       
                absolute:绝对定位
                        当前这个标签针对父元素进行移动
                relative:相对定位   
                        当前元素是针对之前的位置进行移动
                fixed:固定定位      
                    
            结合left/right/top/bottom---执行像素大小,将整个盒子进行移动

3. JavaScript

JavaScript
    常用的函数
        window.alert("提示框")--window可省略
            alert("hello,javascript");
        window里面确认提示
            var flag = confirm("你要丢下我嘛?") ;
        prompt带有一个消息和文本输入框
            window.prompt("请输入动态密令:") ;
        向浏览器输出内容
            document.write("hello,javaScript") ;
        浏览器中控制台打印内容
            console.log("hello,javascript") ;
js中变量以及数据类型
    javasript
        -弱类型语言(语法结构不严谨)
            js中定义任何变量以及创建对象 使用var (var可以省略不写)
            数据类型:
                1)无论整数还是小数都是number  数值类型 
                    --提升为 js内置对象 Number对象
                2)boolean类型
                    --提升内置对象  Boolean对象
                3)无论是字符还是字符串 都是string类型
                    --提升js内置对象  String对象
                4)对象类型 object  
                    --代表所有js对象的模板
                5)未定义类型undefined
                    --没有值
            查看js中的变量的数据类型 typeof(变量名)
js的运算符--和Java基本一摸一样!
    运算符
        算术 
            +,-,*,/,%
        比较 
            ==,!=,<,<=,>,>=
        逻辑
            &&,||  前端中使用 (提高执行效率:短路效果)
        三元
            (表达式)?执行成立的结果:否则不成立的结果;
        赋值运算符
            = ,+=,-=,*=,% 
js流程控制语句
    顺序结构语句
        代码由上而下依次加载
    选择结构语句 
        if语句 
            if
            if...else
            if ...else if...else...
        switch(表达式或变量){
            case "可以变量/也可以是常量": 
                语句1;
            break ;
                ...
            default : 
                语句n;
            break ;
            }
        for-in语句:针对数组以及对象的属性进行遍历--类似于Java中的增强for
            for(var 变量名 in 数组对象或者对象名){
                    使用变量名
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五目炒饭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值