构造方法

Object类、Date类、Calendar类、常用API、可变参数编程 【学习笔记】

匿名 (未验证) 提交于 2019-12-03 00:42:01
一、Object类 1.toString()方法 重写前:调用的是Object类中的方法。输出的是对象的全类名@十六进制的地址值 重写后:调用的是本类重写后的方法。输出的是属性或者内容 2.equals()方法 重写前:调用的是Object类中的方法。依赖的是==号。比较是引用数据类型,那么就是比较地址值。 重写后:调用的是本类重写后的方法。比较的就是对象的属性值是否一样。 3.Objects类中的equals()方法 好处:加了一些健壮性和非空性的判断 示例代码: public class Demo03Objects { public static void main (String[] args) { String s1 = "abc" ; //String s1 = null; String s2 = "abc" ; //boolean b = s1.equals(s2); // NullPointerException null是不能调用方法的,会抛出空指针异常 //System.out.println(b); /* Objects类的equals方法:对两个对象进行比较,防止空指针异常 public static boolean equals(Object a, Object b) { return (a == b) || (a != null && a.equals(b

C#构造方法赋初始值

匿名 (未验证) 提交于 2019-12-03 00:38:01
namespace ConsoleApplication1 { public class Test { public int Id { get ; set ; } public string Name { get ; set ; } public string Country { get ; set ; } //public Test(int id, string name) : this(Id, Name, Country: "china") //{ //} public Test ( int id , string name , string country ) { Id = id ; Name = name ; Country = country ; } public Test ( int id , string name ) : this ( id , name , "默认值" ) { } public override string ToString () { return this . Id + "---" + this . Name + "---" + this . Country ; } } } using System; namespace ConsoleApplication1 { static class Program { static void Main

复习题

匿名 (未验证) 提交于 2019-12-03 00:33:02
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?   java的跨平台不是java源程序的跨平台 ,如果是这样,那么所以语言都是跨平台的, java源程序先经过javac编译器编译成二进制的.class字节码文件(java的跨平台指的就是.class字节码文件的跨平台,.class字节码文件是与平台无关的),.class文件再运行在jvm上,java解释器(jvm的一部分)会将其解释成对应平台的机器码执行,所以java所谓的跨平台就是在不同平台上安装了不同的jvm,而在不同平台上生成的.class文件都是一样的,而.class文件再由对应平台的jvm解释成对应平台的机器码执行。 最后解释下机器码和字节码的区别: 一,机器码,完全依附硬件而存在~并且不同硬件由于内嵌指令集不同,即使相同的0 1代码 意思也可能是不同的~换句话说,根本不存在跨平台性~比如~不同型号的CPU,你给他个指令10001101,他们可能会解析为不同的结果~ 二,我们知道JAVA是跨平台的,为什么呢?因为他有一个jvm,不论哪种硬件,只要你装有jvm,那么他就认识这个JAVA字节码~~~~至于底层的机器码,咱不用管,有jvm搞定,他会把字节码再翻译成所在机器认识的机器码~~~ 2.JDK和JRE的区别是什么? JRE: Java Runtime Environment JDK:Java

5月17日代理_注解_反射

匿名 (未验证) 提交于 2019-12-03 00:30:01
1.用反射获得构造方法: 通过构造方法形参类型的 .class 来确定是哪个构造方法 2.用反射获得字段: 通过字段的名字 来确定获得哪个字段 4.invocation相当于一个监听器,对目标对象方法调用的监听,怎么确定监听的是哪个方法? 4.1 其实在监听时利用了反射,监听 ` 静态代理就是代理获得被代理对象,然后在show方法里边调用 被代理对象的show方法; 动态代理是利用Proxy 的方法传入 被代理对象, 然后创建代理对象, 用代理对象调用show方法时, 是invocation 的invoke方法第一时间监听到,然后被调用,传过来的只有:代理/调用的方法/传入的参数 但是并没有传过来目标对象,怎么对目标对象进行处理? 5.代理模式与装饰者的区别 6.注解替换xml?如果用注解跟直接写死有啥区别? 这两个设计模式看起来很像。对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一个 接口。 对代理模式来说,代理类(proxy class)和真实处理的类(real class)都实现同一个接口。此外,不论我们使用哪一个模式, 都可以很容易地在真实对象的方法前面或者后面加上自定义的方法。 然而,实际上,在装饰器模式和代理模式之间还是有很多差别的。 装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对对象的访问。 换句话 说

第五次实验:类的多态性

匿名 (未验证) 提交于 2019-12-03 00:29:01
(一)类的多态性练习 类的继承发生在多个类之间,而类的多态只发生在同一个类上。在一个类中,可以定义多个同名的方法,只要确定它们的参数个数和类型不同。这种现象称为类的多态。 多态使程序简洁,为程序员带来很大便利。在OOP 中,当程序要实现多个相近的功能时,就给相应的方法起一个共同的名字,用不同的参数代表不同的功能。这样,在使用方法时不论传递什么参数,只要能被程序识别就可以得到确定的结果。 类的多态性体现在方法的重载(overload)上,包括成员方法和构造方法的重载。 方法的重载是指对同名方法的不同使用方式。 class IntSort { public String sort (int a, int b) { if (a>b) return a+" "+b; else return b+" "+a; } int swap; if (a<b) { swap=a; a=b; b=swap; } if (a<c) { swap=a; a=c; c=swap; } if (b<c) { swap=b; b=c; c=swap; } return a+" "+b+" "+c; } } public class KY5_1 { int a=30, b=12, c=40; IntSort s=new IntSort(); System.out.println("两个数的排序结果:"+s.sort

SQLite

匿名 (未验证) 提交于 2019-12-03 00:27:02
1.为什么要用SQLite SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。   SQLite便携性强,无需开启服务 ,体积小,无需配置,支持事物管理的轻量级数据库,库文件不到350K ,占用内存少,官方给的数据是占用堆内存只有4~100K,又因为是开源的,所以嵌入式,要求体积小的领域用途很广,比如android系统,IOS系统等都采用了SQLite做为数据库。   它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。 2.什么是SQLite SQLite,是一款轻型的数据库,是遵守 ACID 的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是 嵌入式 的,而且目前已经在很多 嵌入式产品 中使用了它,它占用资源非常的低,在 嵌入式设备 中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合

Spring Bean的生命周期

匿名 (未验证) 提交于 2019-12-03 00:27:02
第 一种方式:指定初始化和销毁方法,通过@Bean 指定init-method和destory-method public class Car { public Car(){ System. out .println( " 调用 Car 类的构造方法。。。。 " ); } public void init(){ System. out .println( " 调用 Car init 方法。。。。。 " ); } public void destory(){ System. out .println( " 调用 Car 类的销毁方法。。。。。 " ); } } @Configuration public class @Bean (initMethod = "init" ,destroyMethod = "destory" public return new } } @Test public void AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfLifeCycle. class System. out .println( " 容器创建完成 " Object bean = applicationContext

包和访问权限

匿名 (未验证) 提交于 2019-12-03 00:21:02
一、包 包命名规则: 包名全部由小写字母(多个单词也全部小写); 如果包名包含多个层次,每个层次应该用“.”分割; 包名一般由倒置的域名开头,比如com.baidu;――不要有www 自定义包不能java开头; 例: 包的作用: 1、有利于类的查找与管理。一个软件由很多类构成,这些类按其功能可分为vo类、dao类、工具类、service类、controller类等,将这些类按其功能分门别类地放在不同包中有利于类的查找与管理; 2、解决了同名类命名冲突; 3、有利于保护类中的成员变量及其方法。类中成员变量及其方法前面的访问控制符决定了该变量和方法的使用范围; 引包: 什么时候需要引包: 自定义类中使用在不同一包中的其它自定义类时; 自定义类中除java.lang包以外的其它包中的JDK中自带的类时就需要引包; 自定义类中使用其它第三方jar包中的类或接口时需要引包; 如何引包: 1、直接使用完整类名引包; 2、使用import关键字引包有两种方法: (1)、import 包名.类名,这种方式用的最多; (2)、import 包名.*,这种方式将向类中导入该包中的所有公共类; 二、访问控制符 Java中的访问权限修饰符可以修饰成员变量、构造方法、普通方法。 全面研究某个访问权限的使用范围需要从以下方法考虑: 访问控制符使用范围: public是最大的访问权限修饰符,其修饰的成员变量

单例模式

匿名 (未验证) 提交于 2019-12-03 00:19:01
单例模式是比较常见的设计模式。 是一种常用的软件设计模式,在它的核心结构中值包含一个被称为单例的特殊类。一个类只有一个实例,即一个类只有一个对象实例。 单例模式的优点   我们从单例模式的定义和实现,可以知道单例模式具有以下几个优点: 在内存中只有一个对象,节省内存空间; 避免频繁的创建销毁对象,可以提高性能; 避免对共享资源的多重占用,简化访问; 为整个系统提供一个全局访问点。 有状态的工具类对象; 频繁访问数据库或文件的对象; 单例模式的使用场景   由于单例模式具有以上优点,并且形式上比较简单,所以是日常开发中用的比较多的一种设计模式, 其核心在于为整个系统提供一个唯一的实例, 其应用场景包括但不仅限于以下几种: 有状态的工具类对象; 频繁访问数据库或文件的对象; 1.第一种(懒汉式): public class Singleton(){ public static Singleton sInstance = null; //构造函数声明为private,是阻止外部实例化这个类。因为默认无参数构造方法是public的。 private Singleton(){ } public static Singleton getInstance(){ if (sInstance == null ) { sInstance = new Singleton(); } return

继承总结

匿名 (未验证) 提交于 2019-12-03 00:18:01
一.继承的概念 在java中,类的继承是指在一个现有类的基础上创建一个新的类,构建出的新类被称作子类,子类会自动拥有父类所有可继承的属性和方法。在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。 //定义Animal类 class Animal { String name; //定义动物叫的方法 void shout() { System.out.println( "动物发出叫声" ); } } //定义Dog类继承Animal类 class Dog extends Animal { //定义一个打印name的方法 public void printName() { System.out.println( "name=" +name); } } //定义测试类 public class Example { public static void main (String[] args){ Dog dog= new Dog(); //创建一个Dog类的实例对象 dog.name= "沙皮狗" ; //为Dog类的name属性进行赋值 dog.printName(); //调用Dog类的printName()方法 dog.shout(); //调用Dog类继承来的shout()方法 } } Dog类通过extends关键字继承了Animal类