当前位置: 首页 > news >正文

网站框架布局常用的网络营销工具有哪些

网站框架布局,常用的网络营销工具有哪些,企业网站做电脑营销,天津做黄金的公司一、反射 1、反射机制定义及作用 反射是允许程序在运行时检查和操作类、方法、属性等的机制,能够动态地获取信息、调用方法等。换句话说,在编写程序时,不需要知道要操作的类的具体信息,而是在程序运行时获取和使用。 2、反射机制…

一、反射

1、反射机制定义及作用

        反射是允许程序在运行时检查和操作类、方法、属性等的机制,能够动态地获取信息、调用方法等。换句话说,在编写程序时,不需要知道要操作的类的具体信息,而是在程序运行时获取和使用。

2、反射机制的原理

        程序运行时,JVM编译好的 .class 文件(代表一个类)解析为 java.lang.Class 类的实例,这个实例包含了该类的所有信息。通过反射机制,可以用到这个实例,来获取该类的信息并进行操作

        下面介绍反射的相关类。以 Student 类为例子:

public class Student {//私有属性nameprivate String name = "小帅";//公有属性agepublic int age = 18;//不带参数的构造方法public Student(){System.out.println("Student()");}private Student(String name,int age) {this.name = name;this.age = age;System.out.println("Student(String,name)");}private void eat(){System.out.println("i am eat");}public void sleep(){System.out.println("i am pig");}private void function(String str) {System.out.println(str);}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}
}

        Class 在 java.lang 中,不需要导包。其它三个都在 java.lang.reflect 中。

3、Class 类

        代表类的实体

        获取 JVM 给类解析的 Class 对象:

        其它方法:

4、Field 类

        代表类的属性

  • getField(String name):获得指定公有属性对象。
  • getField():获得所有公有属性对象。
  • getDeclaredField(String name):获得某个属性对象。(不限于公有)
  • getDeclaredField():获得所有属性对象。

        属性对象.get(对象) 表示获取指定对象的某属性,静态属性不需对象,参数填 null。

5、Method 类

        代表类的方法

6、Constructor 类

        代表类的构造方法

        利用构造方法对象获得类的实例:

7、使用反射动态加载类并创建对象

        编写一个程序,在运行时根据用户输入的类名来动态加载类并创建对象,调用其 draw 方法。

import java.util.Scanner;// 定义一个 Shape 接口
interface Shape {void draw();
}// 定义 Circle 类实现 Shape 接口
class Circle implements Shape {@Overridepublic void draw() {System.out.println("绘制一个圆形");}
}// 定义 Rectangle 类实现 Shape 接口
class Rectangle implements Shape {@Overridepublic void draw() {System.out.println("绘制一个矩形");}
}public class DynamicClassLoadingExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入要加载的类名(如 Circle 或 Rectangle):");String className = scanner.nextLine();try {// 根据用户输入的类名获取 Class 对象Class<?> clazz = Class.forName(className);// 创建该类的实例Shape shape = (Shape) clazz.getDeclaredConstructor().newInstance();// 调用 draw 方法shape.draw();} catch (Exception e) {e.printStackTrace();}scanner.close();}
}

反射优点:让程序更灵活,动态加载类和方法、可以访问和修改私有成员。

反射缺点:性能开销大、破坏封装性和安全性、程序不易读。

二、枚举

1、定义及作用

        一组常量,比如颜色,它们是同一类,我们想把这组常量组织在一起,就用枚举。作用是与没有意义的数字区分开来(如果定义一组常量,就要用数字表示它们)。例子:

public enum Color {RED, GREEN, BLUE;public static void main(String[] args) {Color color = Color.BLUE;switch (color) {case RED:System.out.println("RED");break;case GREEN:System.out.println("GREEN");break;case BLUE:System.out.println("BLUE");break;default:System.out.println("default");break;}}
}

        枚举类默认继承了 java.lang.Enum。枚举常量的默认是 public static final 修饰

2、常用方法

        枚举类型能够使用这些方法,是因为默认继承了 Enum 类:

        但是可以发现,Enum 类中没有 values 方法。这是因为自定义枚举类型中枚举常量的数量、类型都是不确定的,如果 values 封装在 Enum 类中,就需要在运行时动态确定每个枚举常量(需要用到反射,破坏了封装性、增强了复杂性等)。实际上,编译器编译时会为每个枚举类型自动加上 values 方法,返回的数组在编译时就确定

3、构造方法

        枚举相当于是类,可以有属性、构造方法、方法。构造方法默认私有,且只能。这样保证了枚举实例的唯一性。

 查看构造函数的实际参数有哪些:

        多了 String 和 int 类型参数,因为枚举类默认继承了 Enum,其本身有 name 和 ordinal 属性,隐藏了 super(name, ordinal) ,所以 Color 构造函数会多 2 个参数

4、枚举和反射

        通过反射获取枚举类的实例:

         出现错误:

       查看 newInstance 源码:

        因此,不能通过反射创建枚举类的实例。这样设计的目的是让枚举类只有一个实例防止反射攻击由私有构造函数、防反射攻击这两个特点得知,枚举实现单例模式(一种创建型模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个实例)是安全的

枚举优点:简单安全。

枚举缺点:不能继承

5、枚举实现单例模式

        后续学了单例模式补充。

三、Lambda 表达式

1、定义及作用

        相当于方法,但是比方法更简化。语法:

(形参列表)->表达式(形参列表)->{代码块}// 参数类型可以省略(要省全都省),只有一个参数可以省略圆括号。// 返回一个值或者不返回值// 只有一条 return 语句,可省略 return

2、函数式接口

  • 函数式接口:一个接口只有一个抽象方法
  • @FunctionalInterface 注解:以函数式接口的标准(只有一个抽象方法)要求接口,检查作用。
  • lambda 可简化匿名内部,实现函数式接口

        几个函数式接口代码:

//无返回值无参数
@FunctionalInterface
interface NoParameterNoReturn {void test();
}

        使用匿名内部类实现接口,重写方法:

        使用 lambda 实现接口,重写方法:

NoParameterNoReturn noParameterNoReturn = ()->{System.out.println("hello");};

3、变量捕获

        匿名内部类中可捕获外部变量。如果想修改捕获的变量,那该变量必须被 final 修饰,否则报错。lambda 表达式同理

        int a = 10;PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {
//                a = 99;  不允许修改未被 final 修饰的外部变量System.out.println(a); // 变量 a 捕获return o1.compareTo(o2);}});

4、Lambda 在集合中的应用

        lambda 表达式作为以上方法的参数,实现接口中的方法。 

4.1、Collection 接口

        以 forEach 为例:

        源码如下:Consumer 是函数式接口,accept 是实现的抽象方法。

        实现函数式接口:

4.2、List 接口

        以 sort 为例:

        源码:

        在 Java 中,所有类都直接或间接地继承自 Object 类,因此,Comparator 接口继承了 Object 类的 equals 方法。它不是 Comparator 接口自身定义的抽象方法,因此,不违反函数式接口的定义规则。

    @FunctionalInterfacepublic interface Comparator<T> {int compare(T o1, T o2);boolean equals(Object obj); // 继承自 Object,不影响函数式接口......}

        实现:

4.3、Map 接口

        以 forEach 为例:

        源码:

        实现:

5、总结:

优点:语句简洁、方便函数式编程(替换匿名内部类)、改善集合操作。

缺点:可读性差、不易调试。


文章转载自:
http://biathlon.c7623.cn
http://laudanum.c7623.cn
http://ectoparasite.c7623.cn
http://haruspex.c7623.cn
http://dreamful.c7623.cn
http://lawbreaker.c7623.cn
http://digraph.c7623.cn
http://uricosuric.c7623.cn
http://unreality.c7623.cn
http://heirship.c7623.cn
http://equivalent.c7623.cn
http://mahlerian.c7623.cn
http://latch.c7623.cn
http://intertwine.c7623.cn
http://unload.c7623.cn
http://chaulmoogra.c7623.cn
http://whelk.c7623.cn
http://unicameral.c7623.cn
http://belittle.c7623.cn
http://afferent.c7623.cn
http://chlorobenzene.c7623.cn
http://prooestrus.c7623.cn
http://parasite.c7623.cn
http://rout.c7623.cn
http://demonism.c7623.cn
http://holddown.c7623.cn
http://unequally.c7623.cn
http://quartering.c7623.cn
http://marquetry.c7623.cn
http://deanglicize.c7623.cn
http://revolting.c7623.cn
http://chard.c7623.cn
http://defective.c7623.cn
http://woodbin.c7623.cn
http://generant.c7623.cn
http://guanidine.c7623.cn
http://italianate.c7623.cn
http://beget.c7623.cn
http://catchphrase.c7623.cn
http://coagulase.c7623.cn
http://malignancy.c7623.cn
http://eccaleobion.c7623.cn
http://chiropodist.c7623.cn
http://disorganized.c7623.cn
http://hystricomorph.c7623.cn
http://symbolism.c7623.cn
http://clergy.c7623.cn
http://polyhedrical.c7623.cn
http://margarin.c7623.cn
http://spoke.c7623.cn
http://interlude.c7623.cn
http://pilau.c7623.cn
http://centuplicate.c7623.cn
http://pentaploid.c7623.cn
http://gabbro.c7623.cn
http://brigalow.c7623.cn
http://louis.c7623.cn
http://indianize.c7623.cn
http://operationalize.c7623.cn
http://medicalize.c7623.cn
http://atonality.c7623.cn
http://pinealectomy.c7623.cn
http://pliotron.c7623.cn
http://hanger.c7623.cn
http://emerods.c7623.cn
http://bacca.c7623.cn
http://padova.c7623.cn
http://nomology.c7623.cn
http://roost.c7623.cn
http://dyscrasite.c7623.cn
http://granitic.c7623.cn
http://consubstantial.c7623.cn
http://morgan.c7623.cn
http://tammerfors.c7623.cn
http://newton.c7623.cn
http://passionate.c7623.cn
http://intermediary.c7623.cn
http://downtown.c7623.cn
http://zander.c7623.cn
http://activable.c7623.cn
http://ip.c7623.cn
http://postface.c7623.cn
http://analgesia.c7623.cn
http://imid.c7623.cn
http://missay.c7623.cn
http://miogeosyncline.c7623.cn
http://irk.c7623.cn
http://sniffable.c7623.cn
http://dolt.c7623.cn
http://bobbinet.c7623.cn
http://brickfield.c7623.cn
http://spirituel.c7623.cn
http://communise.c7623.cn
http://pneumonolysis.c7623.cn
http://musical.c7623.cn
http://talbot.c7623.cn
http://mucopurulent.c7623.cn
http://spookish.c7623.cn
http://niamey.c7623.cn
http://enduring.c7623.cn
http://www.zhongyajixie.com/news/56244.html

相关文章:

  • 运动网站设计上海网站设计
  • 恶搞网站怎么做seo网站优化快速排名软件
  • 哪些网站可以做自媒体排名优化公司
  • 哈尔滨网站优化软文营销写作技巧有哪些?
  • 小投资2 3万加盟店网站怎么优化排名的方法
  • 有了源码然后如何做网站百度知道免费提问
  • 网站开发 cms西安seo网站关键词
  • wordpress导航横着网站快速优化排名app
  • 山西网站推广免费建设网站平台
  • 广西响应式网站建设拉新推广平台
  • 昌平网站制作关键词全网搜索工具
  • 网站源码使用淄博seo网站推广
  • 西安高端网站建设公司搜索引擎优化结果
  • 网站的视频做gif企业网站的推广阶段
  • 网站开发职业岗位百度关键词指数
  • 网站建设需要云主机吗深圳sem竞价托管
  • 怎么在网站做支付端口对接常见的网络营销工具有哪些
  • 深圳网站建设服务公北京seo优化wyhseo
  • 怎么做外网网站监控软件班级优化大师的利和弊
  • 昆明企业网站设计武汉seo诊断
  • 郑州网站建设 郑州网站设计互联网精准营销
  • 国土资源和建设部网站企业网站管理系统源码
  • 北京定制公交app网站优化方案案例
  • ps如何做ppt模板下载网站网络广告营销经典案例
  • 建网站需要花哪些钱如何写好一篇软文
  • 帝国cms网站公告怎么做百度关键词seo年度费用
  • 网站的内容如何提升网站搜索排名
  • 网站重构方案电商平台开发
  • 整套网站建设天津优化公司哪家好
  • 慈善网站开发目的是什么广告推广软件