构造方法

UDP通信

隐身守侯 提交于 2020-03-25 03:35:35
1、UDP概述 UDP(User Datagram Protocol):用户数据报协议,是一种面向无连接的协议,在通信时发送端和接收端不用建立连接。 2、DatagramPacket DatagramPacket用于封装数据,在接收端和发送端的DatagramPacket方法有所不同,接收端的构造方法只需要接受一个字节数组来存放接收到的数据,而发送端的构造方法不但要接受发送数据要存放的字节数组,还需要指定发送端IP地址和端口号。 接收端构造方法: DatagramPacket(byte[] buf, int length):构造DatagramPacket,用来接受长度为length的数据包。 发送端构造方法: DatagramPacket(byte[] buf, int length, InteAddress address, int port):构造数据包,用来将长度为length的包发送到指定主机上的指定端口号。 常用方法: InetAddress getAddress():返回某台机器的IP地址,此数据报将要发往该机器或者是从该机器接收到的。 int getPort():返回某台远程主机的端口号,此数据报将要发往该主机或者是从该主机接受到的。 getData():返回数据缓冲区。 int getLength():返回将要发送或接收到的数据的长度。 3

Java 继承

淺唱寂寞╮ 提交于 2020-03-24 06:24:12
继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 生活中的继承: 兔子和羊属于食草动物类,狮子和豹属于食肉动物类。 食草动物和食肉动物又是属于动物类。 所以继承需要符合的关系是:is-a,父类更通用,子类更具体(包含实现has-a关系,包含类有被包含类的特征)。 虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。 类的继承格式 在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下: 类的继承格式 class 父类 { } class 子类 extends 父类 { } 为什么需要继承 接下来我们通过实例来说明这个需求。 开发动物类,其中动物分别为企鹅以及老鼠,要求如下: 企鹅:属性(姓名,id),方法(吃,睡,自我介绍) 老鼠:属性(姓名,id),方法(吃,睡,自我介绍) 企鹅类: public class Penguin { private String name ; private int id ; public Penguin ( String myName , int myid ) { name =

java中抽象类跟接口的区别

别说谁变了你拦得住时间么 提交于 2020-03-23 16:40:42
3 月,跳不动了?>>> 含有abstract修饰符的class 即为抽象类,abstract类不能创建实例对象,含有abstract的方法的类必须定义为abstract class ,abstract class 里的方法不必是抽象的,抽象来中定义抽象方法必须放在具体子类中实现,所以呀,不能有抽象的构造方法或抽象的静态方法,如果子类没有实现抽象父类中的所有 方法,那么,子类也必须定义为抽象类。 接口(interface)可以说成是抽象类的特例。接口中的所有方法都必须是抽象的,接口中的方法定义默认为public abstract 。接口中的变量是全局常量,即public static final修饰的。 看一下他们在语法上的区别吧! 1,抽象类里可以有构造方法,而接口内不能有构造方法。 2,抽象类中可以有普通成员变量,而接口中不能有普通成员变量。 3,抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。 4,抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。 5,抽象类中可以包含静态方法,接口内不能包含静态方法。 6,抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意

java的反射

白昼怎懂夜的黑 提交于 2020-03-22 23:09:48
反射 是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)) 一、 反射 的概述 JAVA 反射 机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的 反射 机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象. 以上的总结就是什么是 反射 反射 就是把 java 类中的各种成分映射成一个个的 Java 对象 例如:一个类有:成员变量、方法、构造方法、包等等信息,利用 反射 技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。 (其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述) 如图是类的正常加载过程: 反射 的原理在与class对象。 熟悉一下加载的时候:Class对象的由来是将class文件读入内存,并为之创建一个Class对象。 其中这个Class对象很特殊。我们先了解一下这个Class类 二、查看Class类在 java 中的api详解(1.7的API) 如何阅读 java 中的api详见 java 基础之——String字符串处理 Class

Error instantiating class com.liwen.mybatis.bean.Employee with invalid types () or values ().

末鹿安然 提交于 2020-03-22 18:25:50
实体类默认构造方法是无参构造方法,一旦重写构造方法,默认方法就会变成重写之后的构造方法,所以该错误报的错就是实体类缺少无参构造方法 来源: https://www.cnblogs.com/wenwenlee/p/12547192.html

Java学习日记 week2 day3-4 面向对象 类和对象

别来无恙 提交于 2020-03-22 05:25:16
  国际惯例先理一下面向对象与面向过程的区别:   个人理解 :面向对象跟面向过程的主要区别在于,面向对象是由大至小而一步步分化实现,而面向过程则是由小及大积累实现。 一 、类和对象    类(class):类是对对象的抽象;   对象(object):是类的具体;   将一些具有共同特征(属性)的事物(对象)定义为一类事物,并将属性通用化,就是类(class)了;而将这些共有的特征(属性)赋以具体的信息就是对象(object)。   1)类和对象的创建   类的创建:   类修饰符 class ClassName {}   类修饰符:public protected 默认(缺省)   对象的创建方式:   类名 . 对象名 ;//声明对象   对象名 = new 类名();//创建对象   类名 . 对象名 = new 类名();//声明+创建对象    2)类和对象的一些使用   类的使用:    创建属性: 修饰符 数据类型 变量名;        修饰符:public private protected static 默认(不写)    构造方法: 修饰符 类名(参数列表){}       构造方法用于创建对象时(new)对对象初始化;       构造方法的方法名应与类名相同,如果未自行创建构造参数java中会自己生成一个隐式的无参构造

设计模式

烂漫一生 提交于 2020-03-20 14:53:38
3 月,跳不动了?>>> 在软件工程中, 创建型模式 是处理对象创建的设计模式,试图根据实际情况使用合适的方式创建对象。基本的对象创建方式可能会导致设计上的问题,或增加设计的复杂度。创建型模式通过以某种方式控制对象的创建来解决问题。 常用创建型模式有:单例模式、工厂模式、抽象工厂模式、原型模式、建造者模式 一、单例模式 单例模式有以下8种写法: 饿汉式: 静态常量 静态代码块 懒汉式: 线程不安全 线程安全,同步方法 线程安全,同步代码块 双重检查 静态内部类 枚举 单例模式的使用场景: 需要频繁创建和销毁的对象;创建时耗时过多或消耗资源过多,但又经常用到的对象(比如session工厂、数据源等) 1. 饿汉式 - 静态常量写法 代码实现: /** * 设计模式之单例模式 * 饿汉式(静态常量) */ public class SingletonTest01 { public static void main(String[] args) { Singleton instance1 = Singleton.getInstance(); Singleton instance2 = Singleton.getInstance(); System.out.println("两次获取的实例一样吗:" + (instance1 == instance2)); //true } } class

实验6:Problem F: 时间和日期类(IV)

≯℡__Kan透↙ 提交于 2020-03-19 13:59:05
Description 设计一个日期时间类,用于读取输入的数据,按格式输出日期和时间。 设计日期时间类DateTime由2个成员组成,分别是一个Date类对象和一个Time类对象; 设计DateTime类需支持以下操作: DateTime::DateTime()无参构造方法:初始化为1年1月1日、0时0分0秒; DateTime::DateTime(int,int,int,int,int,int)构造方法:依照参数(顺序为年月日、时分秒)初始化对象; 在上述两个DateTime类的构造函数中输出:“CREATE DateTime : (y, m, d, hh, mm, ss)”,其中y、m、d为初始化对象时的年月日值,h、m、s为初始化对象时的时分秒值。参见输出。 DateTime::DateTime(const Date&,const Time&)构造方法:依照参数传入的日期和时间初始化对象; 在这个DateTime类的构造函数中输出:“CREATE DateTime : (y, m, d) (hh, mm, ss)”,其中y、m、d为初始化对象时的年月日值,h、m、s为初始化对象时的时分秒值。参见输出。 DateTime:DateTime(const DateTime&)构造方法:拷贝构造函数,初始化对象。 在拷贝构造函数中输出:“COPY DateTime : (y, m,

集合框架系列 Map(十):HashMap

柔情痞子 提交于 2020-03-18 18:17:13
目录 1 概述 2 原理 3 源码分析  3.1 构造方法   3.1.1 构造方法分析   3.1.2 初始容量、负载因子、阈值  3.2 查找  3.3 遍历  3.4 插入   3.4.1 插入逻辑分析   3.4.2 扩容机制   3.4.3 链表树化、红黑树链化与拆分  3.5 删除  3.6 其他细节  3.7 总结 1. 概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap 。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线程环境下可能会存在问题。 在本篇文章中,我将会对 HashMap 中常用方法、重要属性及相关方法进行分析。需要说明的是,HashMap 源码中可分析的点很多,本文很难一一覆盖,请见谅。 2. 原理 上一节说到 HashMap 底层是基于散列算法实现,散列算法分为散列再探测和拉链式。HashMap 则使用了拉链式的散列算法,并在 JDK 1.8 中引入了红黑树优化过长的链表。数据结构示意图如下: 对于拉链式的散列算法,其数据结构是由数组和链表(或树形结构)组成

__new__()方法的使用和实例化

人走茶凉 提交于 2020-03-18 17:49:36
Python中__new__()方法的使用和实例化 1 2 new ()是在新式类中新出现的方法,它作用在构造方法 init ()建造实例之前,可以这么理解,在Python 中存在于类里面的构造方法 init ()负责将类的实例化,而在 init ()调用之前, new ()决定是否要使用该 init ()方法,因为 new ()可以调用其他类的构造方法或者直接返回别的对象来作为本类 的实例。 如果将类比喻为工厂,那么 init ()方法则是该工厂的生产工人, init ()方法接受的初始化参 数则是生产所需原料, init ()方法会按照方法中的语句负责将原料加工成实例以供工厂出货。而 new ()则是生产部经理, new ()方法可以决定是否将原料提供给该生产部工人,同时它还决定着出 货产品是否为该生产部的产品,因为这名经理可以借该工厂的名义向客户出售完全不是该工厂的产品。 new ()方法的特性: new ()方法是在类准备将自身实例化时调用。 new ()方法始终都是类的静态方法,即使没有被加上静态方法装饰器。 类的实例化和它的构造方法通常都是这个样子: class MyClass(object): def __init__(self, *args, **kwargs): ... # 实例化 myclass = MyClass(*args, **kwargs) 1 2 3