brand

Java 之 序列化接口

好久不见. 提交于 2020-01-31 11:27:25
一、java.io.Serializable 接口   类通过实现 java.io.Serializable 接口以启用其序列化功能,未实现此接口的类型将无法使其任何状态序列化或反序列化。    可序列化类的所有子类型本身都是可序列化的。   序列化接口没有方法或字段,仅用于标识可序列化的语义。   如果实现 Serializable 接口,对象如何序列化,各个属性序列化的顺序是什么,都是默认的,程序员本身无法指定,也不用关心。    如果属性前面有 static 和 transient 修饰,该属性不参与序列化。 二、java.io.Externalizable 接口   若某个要完全控制某一对象及其超类型的流格式和内容,则它要实现 Externalizable 接口中的 writeExternal 和 readExternal 方法。   程序员要在 writerExternal 方法中,自己定制哪些属性要序列化,顺序是什么样的。   程序员要在 readExternal 方法中,自己定制哪些属性要反序列化,顺序与 writerExternal 方法中的一致。   Demo:JavaBean 类 1 import java.io.Externalizable; 2 import java.io.IOException; 3 import java.io.ObjectInput;

类的定义与使用

断了今生、忘了曾经 提交于 2020-01-26 00:15:06
可以把类的类型为两种: 1.第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。 2.第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。 类,它是引用数据类型 ,与之前学习的所有引用数据类型相同,自定义类也是一种数据类型。只是自定义类型并非Java为我们预先提供好的类型,而是我们自己定义的一种引用数据类型用来描述一个事物。 java代码映射成现实事物的过程就是定义类的过程。 就拿一部手机进行分析,它能用来做什么呢?它可以打电话,上网,聊微信等,这些就是手机所提供的功能,也就是方法;手机也有它的特征,如颜色、尺寸大小、品牌型号等,这些就是手机的特征,也就是属性。目前,只关注类中的属性,类中的方法在面向对象部分再进行介绍。 一、类的定义格式: 创建java文件,与类名相同 public class 类名{ 属性定义: 修饰符 数据类型 变量名 = 值 (数据类型 属性名称1;) (数据类型 属性名称2;) 方法定义: 修饰符 返回值类型 方法名(参数列表){ } …... } 通过类的定义格式,来进行手机类的描述,如下所示: public class Phone { /* * 属性 */ String brand ;// 品牌型号 String color ;// 颜色

生产者消费者模式的简单实现

混江龙づ霸主 提交于 2020-01-25 07:41:05
实例实现: 生产者生产两种商品,消费者取走两种商品 产生的问题及解决: 数据错乱---->线程同步 重复生产和重复取------>线程间的通信 线程间通信的方法 wait() :调用了 wait()方法的线程进入等待池进行等待,等待池中的线程不去竞争对象锁,直到其它的线程通知,才会进入锁池 notify() :随机唤醒一个在该对象上等待的线程,被唤醒的线程进行锁池,开始竞争该对锁上的锁 notifyAll() :唤醒所有在该对象上等待的线程优先级高的线程有可能先竞争到对象锁只能在同步方法和同步代码块中使用 商品类,可以设置商品名称和品牌,有存入和取走方法 1 public class Goods { 2 private String name;//名称 3 private String brand;//品牌 4 private boolean isFlag;//用于标识是否有商品 ,假设为true时代表有商品,false时代表没有商品 5 public String getName() { 6 return name; 7 } 8 public void setName(String name) { 9 this.name = name; 10 } 11 public String getBrand() { 12 return brand; 13 } 14 public void

JVM内存堆布局图解分析

我怕爱的太早我们不能终老 提交于 2020-01-22 16:46:14
内存分析(SxtStu.java) Java程序运行在JVM上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Java内存分配原理的时候一定要牢记这一切都是在JVM中进行的,JVM是内存分配原理的基础与前提。 一个完整的Java程序运行过程会涉及以下内存区域: 寄存器: JVM内部虚拟寄存器,存取速度非常快,程序不可控制。 栈: 保存局部变量的值,包括:a.用来保存基本数据类型的值;b.保存类的 实例 ,即堆区 对象 的引用(指针)。也可以用来保存加载方法时的帧。 堆: 用来存放动态产生的数据,比如new出来的 对象 。注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法。因为同一个类的对象拥有各自的成员变量,存储在各自的堆中,但是他们共享该类的方法,并不是每创建一个对象就把成员方法复制一次。 常量池: JVM为每个已加载的类型维护一个常量池,常量池就是这个类型用到的常量的一个有序集合。包括直接常量(基本类型,String)和对其他类型、方法、字段的 符号引用(1) 。池中的数据和数组一样通过索引访问。由于常量池包含了一个类型所有的对其他类型、方法、字段的符号引用,所以常量池在Java的动态链接中起了核心作用。 常量池存在于堆中 。 代码段: 用来存放从硬盘上读取的源程序代码。 全局数据段:

hive 沉默用户

早过忘川 提交于 2020-01-10 04:19:13
– 查询指定日期的沉默用户 启动一次,以后没有在使用,有时间长度限制(一周) use big12_umeng ; SELECT t1 . appid , t1 . appplatform , t1 . brand , t1 . devicestyle , t1 . ostype , t1 . appversion , count ( t1 . deviceid ) FROM ( SELECT t . appid appid , t . appplatform appplatform , t . brand brand , t . devicestyle devicestyle , t . ostype ostype , t . appversion appversion , t . deviceid deviceid FROM ( SELECT appid , appplatform , brand , devicestyle , ostype , appversion , deviceid , count ( createdatms ) cnt , #访问的次数 min ( createdatms ) firsttime #第一次访问的时刻 FROM appstartuplogs WHERE #指定的时间 concat ( ym , day ) <= '${ymd}' group

Spring基础14——Bean的生命周期

别来无恙 提交于 2020-01-09 06:20:04
1.IOC容器中的Bean的生命周期方法 SpringIOC容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行定制的任务。 SpringIOC容器对Bean的生命周期进行管理的过程:   1)通过 构造器 或 工厂方法 创建Bean实例   2)为bean的属性设置值和对其他bean的引用   3)调用Bean的初始化方法   4)Bean可以使用了   5)当容器关闭时,调用Bean的销毁方法 2.验证bean的生命周期 我们可以在Spring的配置文件中声明init-method属性和destory-method属性为Bean指定初始化和销毁方法。 首先我们先创建一个Car类: 1 public class Car { 2 public Car() { 3 System.out.println("Car's Constructor"); 4 } 5 private String brand; 6 7 public void setBrand(String brand) { 8 System.out.println("setBrand..."); 9 this.brand = brand; 10 } 11 //初始化方法 12 public void init() { 13 System.out.println("init...."); 14 } 15

mysql查询语句

二次信任 提交于 2019-12-20 18:05:49
一、简单查询 1.最简单查询(查所有数据) select * from 表名 注意:* 代表所有列,并不是代表所有行 例:select * from test 2.查询指定列 select 列名,列名 from 表名 例:select code,name from test 3.修改结果集的列名 as select 列名 as '显示的字' from 表名 例:select code as '代号',name as '姓名' from test 4.条件查询 select * from 表名 where 条件 例:select * from test where code='n003' 5.多条件查询 或者 or:select * from 表名 where 条件 or 条件 例:select * from test where code='p003' or nation='n001' 并且 and:select * from 表名 where 条件 and 条件 例:select * from test where code='p004' and nation='n001' 6.范围查询 (某一列的内容是谁到谁之间的数据) 例:两种写法:查找汽车价格在40到60之间 (1)select * from car where price>=40 and price>=60 (2

报错:Type mismatch: cannot convert from Object to Car

泪湿孤枕 提交于 2019-12-18 16:53:10
问题描述: 一个非常简单的spring项目,用静态工厂方法配置bean实例。项目的目录结构如下: 代码如下: Car.java 1 package com.tt.spring.beans.factory; 2 3 public class Car { 4 5 private String brand; 6 private double price; 7 8 public String getBrand() { 9 return brand; 10 } 11 public void setBrand(String brand) { 12 this.brand = brand; 13 } 14 public double getPrice() { 15 return price; 16 } 17 public void setPrice(double price) { 18 this.price = price; 19 } 20 21 public Car(){ 22 System.out.println("Car's Constructor..."); 23 } 24 25 26 27 public Car(String brand, double price) { 28 super(); 29 this.brand = brand; 30 this.price = price;

案例分析:设计模式与代码的结构特性(桥接模式)

江枫思渺然 提交于 2019-12-08 14:05:41
基本介绍: 1)桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。 2)是一种结构型设计模式。 3)Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。 模式结构: AbstractBike:抽象类 MountatinBike/RoadBike:扩充抽象类 InterfaceBrand:实现类接口 MeridaBrand/GiantBrand:具体实现类 案例分析: 典型实现类接口代码: public interface InterfaceBrand { public void showBrand(); } 典型的抽象类代码: public abstract class AbstractBike { InterfaceBrand brand;//自行车的品牌 String color;//自行车的颜色 public AbstractBike(InterfaceBrand brand, String color) { this.brand = brand; this.color = color; } public abstract void print(

Spring(配置Bean)

久未见 提交于 2019-12-06 20:05:29
一、IOC和DI概述 1、IOC(Inversion of Control):   其思想是反转资源获取的方向。传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源。而应用了IOC之后,则是 容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源 。这种行为也被称为查找的被动形式。 2、DI(Dependency Injection):   IOC的另一种表述方式:即 组件以一些预先定义好的方式(例如:setter方法)接受来自如容器的资源注入 。相对IOC而言,这种表述更直接。 二、配置Bean <!--配置bean class:bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须有无参构造器 id:标识容器中的bean。id唯一 --> <bean id="helloWorld2" class="com.atguigu.spring.beans.HelloWorld"> <property name="name" value="spring"/> </bean> Spring容器:   在 SpringIOC容器 读取Bean配置创建Bean实例之前,必须对它进行实例化,只有在容器实例化后,才可以从IOC容器里获取Bean实例并使用。   Spring提供了 两种类型 的IOC容器实现。