学习心得
一、专业课
1、设计模式
设计模式(Designpattern)是在某些情况下约定俗成,被反复使用、多数人知晓的、经过分类编目的、代码设计(前辈们的开发)经验的总结
2、单例设计模式
1、单例类有且只有一个实例。
2、单例类将构造函数私有化,自己创建自己的唯一实例。
3、单例类给所有其他对象提供唯一的实例。
(1)懒汉式单例
//懒汉式
publicclass Singleton {
//1.将构造函数私有化
private Singleton(){}
private staticSingletonsingle=null;
//(静态工厂方法 )
/*public staticSingleton getInstance() {
if (single ==null) {
single =new Singleton();
}
return single;
} */
//加入锁机制,防止多线程
/* public staticsynchronized Singleton getInstance() {
if (single ==null) {
single =new Singleton();
}
return single;
} */
//双重锁机制
/*public staticSingleton getInstance() {
if (single ==null) {
synchronized(Singleton.class) {
if(single == null) {
single= new Singleton();
}
}
}
return single;
} */
/*
*私有静态内部类
*既实现了线程安全,又避免了同步带来的性能影响
*静态内部外部不能访问,当第一次用到时,static会立马初始化
*/
private staticclass LazyHolder {
private staticfinal SingletonINSTANCE = new Singleton();
}
public staticfinal Singleton getInstance() {
returnLazyHolder.INSTANCE;
}
}
(2)饿汉式单例
//饿汉式单例类.在类初始化时自行实例化(所以天然没有多线程冲突)
classSingleton2 {
private Singleton2(){}
private static finalSingleton2single = new Singleton2();
//静态工厂方法
public staticSingleton2 getInstance() {
returnsingle;
}
}
2、向上转型
publicclass Demo01 {
publicstatic void main(String[] args) {
/**
*向上转型,父类引用指向子类对象
* 1.变量获取
* 1.1普通同名变量时(包括static)访问父类的变量
* 1.2同名普通方法访问访问子类的方法
* 1.3同名static方法访问访问父类的方法
* 1.4父类访问不到子类的特有属性与方法(需强转)
*/
Animalanimal = new Dog(21, "小黄");//大转小,自动
System.out.println(animal.num);
System.out.println(animal.toString());
System.out.println(animal.number);
animal.eat();
animal.eat2();
System.out.println(animal.j);
Dogdog = (Dog) animal; //小转大,强转(引用类型强转需要,有继承或实现关系)
System.out.println(dog.i);
dog.bite();
}
}
classAnimal{
intnum = 20;
staticintnumber = 10;
intj = 2; //父类中有j
intage;
Stringname;
publicAnimal(int age, String name) {
super();
this.age= age;
this.name= name;
}
publicvoid eat() {
System.out.println("animaleat");
}
publicstatic void eat2() {
System.out.println("animaleat2");
}
@Override
publicString toString() {
return"Animal [num=" + num + ", age=" + age + ",name=" + name + "]";
}
}
classDog extends Animal{
publicDog(int age, String name) {
super(age,name);
//TODO Auto-generated constructor stub
}
intnum = 40;
inti = 4; //子类特有i
staticintnumber = 60;
publicvoid eat() {
System.out.println("dogeat");
}
publicstatic void eat2() {
System.out.println("dogeat2");
}
publicvoid bite() {
System.out.println("咬我啊");
}
@Override
publicString toString() {
return"Dog [num=" + num + ", age=" + age + ",name=" + name + "]";
}
}
//向上转型结果
20
Dog[num=40, age=21, name=小黄]
10
dogeat
animaleat2
2
4
咬我啊
//向下转型
/**
*向下转型
*/
Dogdog = (Dog)new Animal(22,"小黑");//向下转型,需 //要注意内存问题
dog.eat();
dog.bite();
//结果
java.lang.ClassCastException
4.多态
*概念:
*1。字面上:事物的多种形态
*2。本质:一个类的对象在编译时并不明确使用哪个对象,只有在运行时才确定,
*父类引用数据类型指向子类对象
*作用:提升对象的作用范围
*应用领域:
*1。作为参数传入
*2。作为返回值
5.学习方法
学习的四个方面
1.保持对未知领域的好奇心
2.掌握各个层面的细节
3.培养对代码的直觉
4.提升自主学习能力
银行业务背景
工作第一课
1.工作内容的由来?(慎始)
2.思考
3.发邮件,称谓是否正确,签名档是否完整,检查附件(格式),看文件的人怎么看才舒服,最后填邮箱地址
学习心得:
1.主动提高自主学习能力,多寻思不同的提高学习方法。