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

电子商务网站建设期末考试百度seo霸屏软件

电子商务网站建设期末考试,百度seo霸屏软件,世界杯最新排名,可口可乐广告策划书范文文章目录 回顾今天的内容1.单例模式2.序列化3.Lambda表达式3.1入门案例3.2lambda表达式语法格式3.2.1无参无返回值的形式3.2.2有参无返返回值的方法3.2.3无参有返回值3.2.4有参有返回值的 回顾 1.三种创建Class对象的形式Class.forName("")类.class对象.getCalss()字…

文章目录

      • 回顾
      • 今天的内容
      • 1.单例模式
      • 2.序列化
      • 3.Lambda表达式
        • 3.1入门案例
        • 3.2lambda表达式语法格式
          • 3.2.1无参无返回值的形式
          • 3.2.2有参无返返回值的方法
          • 3.2.3无参有返回值
          • 3.2.4有参有返回值的

回顾

1.三种创建Class对象的形式Class.forName("")类.class对象.getCalss()字节文件.class对象
2.Class下面获取构造方法对象的方法getConstructors();getDeclaredConstructors();getConstructor(Class  ..... parameterType);getDeclaredConstructor(Class  ..... parameterType);
3.Class下面获取方法对象的方法getMethods();getDeclaredMethods();getMethod(String name, Class .... parameterType);getDeclaredMethod(String name, Class .... parameterType);
4.Class下面获取属性对象的方法getFields();getDeclaredFields();getField(String name);getDeclaredField(String name);
5.Constructor对象下面的方法newInstance(); 通过构造方法创建了实例对象setAccessible(true);
6.Method对象下面的方法setAccessible(true);invoke(Object  obj, Object ... param);
7.Field对象下面的方法setAccessible(true);set(Object obj, Object value);
8.简单聊聊对反射的理解

今天的内容

1.单例模式

2.序列化操作(IO流)

以下两个是jdk的新特性:

3.lambda表达式

4.Stream流

1.单例模式

Java提供了二十多种设计模式,在咱们教学过程中抽重要的学习,开发中用的

模式并不是一朝一夕学会的东西,工厂模式, 代理模式 策略模式等

设计模式是全球公认的。为了让咱们的代码变得更加简洁,效率更高,产生出来的模式

修改的时候更加方便

单例模式:

​ 要求在整个程序运行过程中,只出现一个实例对象。减少内存的消耗

​ 如何判断两个对象或者多个对象是否是单例,看内存地址。如果内存地址相等的话,绝对是同一个对象。

想一些问题:

​ 创建对象 通过关键字 new 来创建,但是new一次 再new一次对象的内存地址绝对不一样的。就意味着你必须将一个类的构造方法私有化

package com.qfedu.f_singleinstance;class SingDog {private static  SingDog singDog = null;private SingDog () {}public  static SingDog getInstance() {synchronized (SingDog.class) {if (singDog == null) {//singDog = new SingDog();}}return singDog;}}
class MyThread1 implements Runnable {@Overridepublic void run() {SingDog instance = SingDog.getInstance();System.out.println(instance);}
}
class MyThread2 implements Runnable {@Overridepublic void run() {SingDog instance = SingDog.getInstance();System.out.println(instance);}
}public class Demo1 {public static void main(String[] args) {//以上两个对象是两个不同的对象。单例模式的目的//是只能有一个对象,不能有多个对象,就意味着不能再new//为啥?new一个就是对象。不能new 在类里面咋写?//解决方案: 私有话构造方法//不能new  想得到对象? 在类中定义一个静态方法//为啥是静态方法  只能用来调用
//        SingDog singdog = SingDog.getInstance();
//
//        System.out.println(singdog);
//        SingDog singdog1 = SingDog.getInstance();
//        System.out.println(singdog1);new Thread(new MyThread1()).start();new Thread(new MyThread2()).start();}
}

懒汉式的写法

package com.qfedu.a_single;//懒汉式写法
class Person {private static Person person;private Person () {}public static synchronized Person getInstance ()  {if  (person == null) {person = new Person();}return person;}
}

饿汉式写法

package com.qfedu.a_single;class Cat {private static final Cat cat = new Cat();private Cat() {}public static Cat getIntance () {return cat;}
}
public class Demo3 {public static void main(String[] args) {Cat intance = Cat.getIntance();Cat intance1 = Cat.getIntance();System.out.println(intance);System.out.println(intance1);}}

懒汉式:线程不安全

饿汉式:线程安全的

效率来说: 饿汉式效率高,因为不用加锁

性能来说: 饿汉式类一加载就实力出来对象。但是懒汉式调用方法的时候才进行创建对象

懒汉式的内存消耗是小于饿汉式的

2.序列化

和IO流有关

类 ObjectInputStream(反序列化) 和 ObjectOutputStream(序列化) 是高层次的数据流,它们包含反序列化和序列化对象的方法。

ObjectOutputStream 类包含很多写方法来写各种数据类型,但是一个特别的方法例外:

public final void writeObject(Object x) throws IOException

上面的方法序列化一个对象,并将它发送到输出流。相似的 ObjectInputStream 类包含如下反序列化一个对象的方法:

public final Object readObject() throws IOException, ClassNotFoundException

该方法从流中取出下一个对象,并将对象反序列化。它的返回值为Object,因此,你需要将它转换成合适的数据类型。

总结:序列化能干嘛? 将一个类对象信息(构造方法,属性,方法)可以写到本地一个文件中。这叫序列化。从文件中读取一个对象的信息,这叫反序列化。

序列化注意事项:

​ 1.被序列化的实体类必须实现一个接口 Serializable,不然不能被序列化

序列化案例:

将一个对象赋值完以后写到到本地。ObjectOutputStream

package com.qfedu.b_serialize;import java.io.*;
import java.util.ArrayList;public class Demo1 {public static void main(String[] args) throws Exception {//序列化:将对象存到一个文件中Employee employee = new Employee();employee.name = "马斯克";employee.address = "月球";employee.number = 100;employee.mailCheck();//将employee对象进行序列化 存到一个文件中  序列化的文件的后缀都是.serFileOutputStream fos = new FileOutputStream(new File("c:/aaa/emp.ser"));ObjectOutputStream objectOutputStream = new ObjectOutputStream(fos);objectOutputStream.writeObject(employee);objectOutputStream.close();fos.close();System.out.println("写入成功");}
}

反序列化

将本地的文件信息(被序列化过的)写到一个对象中

ObjectInputStream

package com.qfedu.b_serialize;import java.io.File;
import java.io.FileInputStream;
import java.io.ObjectInputStream;public class Demo2 {public static void main(String[] args) throws Exception{//进行反序列化FileInputStream fis = new FileInputStream(new File("c:/aaa/emp1.ser"));ObjectInputStream ois = new ObjectInputStream(fis);Employee emp = (Employee)ois.readObject();System.out.println(emp.name);System.out.println(emp.number);System.out.println(emp.address);System.out.println(emp.sb);emp.mailCheck();}
}

总结:序列化将对象的值存到本地磁盘的文件中以作备份。反序列化可以将本次磁盘序列化过的文件读取到实体类的对象中。

3.Lambda表达式

Lambda表达式被称称为闭包。他是推动了Java8新特性的重要的一步。

Lambda表达式运行函数式编程。就是简化代码的。变得更加简洁,但是可读性特别差

3.1入门案例
package com.qfedu.c_lambda;public class Demo1 {public static void main(String[] args) {//新建一个线程//第一种的创建方式new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.println("简洁嘻嘻哒" + i);}}}).start();new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.println("锤人" + i);}}}).start();//Thread构造方法是接口对象Runnable runnable = ()-> System.out.println("嘻嘻");new Thread(runnable).start();}
}
3.2lambda表达式语法格式

只看接口下面的唯一的一个抽象方法。

接口  接口对象 =  ()->表达式;  无参 无返回值的
接口  接口对象 =  (parameter)->表达式;  有参  无返回值的
接口  接口对象 = ()->{表达式;};   无参 有返回值的
接口  接口对象 = (parameter)->{表达式;};  有参有返回值
3.2.1无参无返回值的形式
package com.qfedu.c_lambda;interface Computer {void coding();
}
public class Demo4 {public static void main(String[] args) {//无参无返回值的test(() -> System.out.println("敲代码"));}//而如果一个方法的参数是一个接口对象的话,难免要new 这个接口 重写方法public static void test (Computer c) {c.coding();}
}
3.2.2有参无返返回值的方法
package com.qfedu.c_lambda;interface C {void eat(String name, int a);
}
public class Demo5 {public static void main(String[] args) {test(( name,  a) -> System.out.println(name + "吃" + a) , "狗蛋", 4);}public static void test (C c, String name, int a) {c.eat(name , a);}
}
3.2.3无参有返回值
package com.qfedu.c_lambda;interface D {int num();
}
public class Demo6 {public static void main(String[] args) {test(() ->{if (true) {System.out.println("xixida");}return 500;});}public static void test (D d) {d.num();}
}
3.2.4有参有返回值的
package com.qfedu.c_lambda;interface E {int add(int a, int b);
}
public class Demo7 {public static void main(String[] args) {test((a, b) -> a + b, 2, 3);}public static void test (E e, int a, int b) {int sum = e.add(a, b);System.out.println(sum);}
}
http://www.mmbaike.com/news/80509.html

相关文章:

  • wordpress网站更换域名淘宝产品关键词排名查询
  • 网站需要数据库百度推广投诉电话客服24小时
  • 国外公司网站模板seo优化推广多少钱
  • 想建一个网站怎么做百度搜索引擎排名
  • 建网站主机怎么把平台推广出去
  • python如何制作网页搜索引擎优化分析报告
  • 网站建设用书查网站域名
  • 私域电商平台seo网站关键词优化机构
  • 深圳鹏洲建设工程有限公司网站在线刷关键词网站排名
  • 便宜做网站湖南产品网络推广业务
  • 营销网站建设公司推荐站长之家站长工具综合查询
  • 免费个人搭建网站信息发布平台推广有哪些
  • 广州网站优化公司排名西安网站搭建公司
  • 石河子做网站公司百度下载app
  • 360收录重庆seo网络优化咨询热线
  • 北京欢迎你网站制作公司优化问题
  • 外贸操作流程廊坊百度快照优化哪家服务好
  • python可以做网站后台吗网络游戏排行榜百度风云榜
  • jsp网站开发四库舆情监控
  • 大型的营销型网站建设关键词查询
  • 政府网站改版建设建议广州seo公司哪个比较好
  • 长沙高升小区做汽车行业网站的网络公司论天心区网页设计新塘网站seo优化
  • 网站建站时间微信朋友圈广告如何投放
  • 网络营销推广与策划实训总结沧州网站推广优化
  • 力洋深圳做网站公司网站搜索引擎优化方法
  • wordpress 仿站工具短信营销
  • 绿色大气网站模板济南全网推广
  • 建筑案例的网站有哪些方面在线注册网站
  • 做外贸纱线用什么网站苏州seo优化公司
  • wordpress 不用主题什么是seo