c#转 java学习笔记(原创)
JDK开发人员用,JRE运行时环境(比如给客户安装,客户电脑需要装JRE)
当我们调用构造方法的时候系统会执行如下操作:1.给对象的属性分配空间,并且初始值 0 or null 2.给属性赋缺省值 3.调用构造方法,给属性重新赋值
1、大小写区分
2、命名规范
3、关键字
4、数据类型
浮点型在小数里面寸值是不精确的,只能寸很相似的数及近似值
float与double的区别
double 有效位是15-16位,如果超过这个范围,最后一位是随机给的
double e=123.45678900000006 //这是17位,但结果最后以为可能是123.4567890000001、123.4567890000009、123.456789
布尔类型
字符类型
数据类型转换-默认转换(大给小)
数据类型转换-强制转换(小给大)
数据类型转换-大小容量数据混合运算
整形和整形运算,结果就是整形,不用强转如下图:
数字格式化
枚举类型enum(规范要求大写)
面向对象-内存 机制
对象会在堆里面分配
不属于对象的基本类型和引用类型都在栈里面分配
引用类型例子
this关键字
以下程序运行时间,内存是怎么分配的,如下图:
1、this是什么?
this是一个引用类型,在堆中的每个java对象上都有this,this保存内存地址指向自身。
2、this能用在那些地方?
第一:this可以用在成员方法中。
第二:this可以用在构造方法中。
this不能在静态static方法中使用
static关键字讲解
static在类加载的时候就执行,自上而下执行,并且只会执行一次,再次实例化类也不会执行。
实例语句块(构造方法调用之前执行)
数组
数组是引用类型
关联关系和聚合关系
(下面的例子意思就是,Student可以不在这个教室,如果教室不在了,学生还在,如果学生不在了,教室还在,两个互不影响)
流(重点16个流)
什么是流,如下图
线程
开一个新线程,可以理解为新开一个栈桢
第一种创建线程方法(继承Thread):
java中实现线程的第二种方式
线程优先级
线程阻塞
线程的同步(重要)
第一种方式
原理如下
第二种方式(锁整个方法)
守护线程
Timer
重写(不需要overrived,c#需求,java不需要)
多态
多态的好处(降低耦合度),多态就是:父类型引用指向子类型对象
接口的使用(接口必须有调用者和实现者)
(顾客拿菜单点餐、某个厨师做菜的过程)菜单就是所谓的接口,随便换厨师都可以。
异常处理
另外一种异常机制:如下
另外一种情况,下面两个图片是一个方法
另外个知识点
自定义异常