发表于: 2017-12-14 20:36:02
1 708
今天完成的事情:
学习java基本语法:
名称命名规范
在后边代码过程中熟悉。
数据类型
基本数据类型
基本数据类型 (在栈里存放 数值) | ||||||
| 内存空间 | 数值范围 | 其他 |
| ||
数值型 | 整数型 | byte | 1 byte | -128 ~ 127 |
|
|
short | 2 bytes | -215 ~215-1 |
|
| ||
int | 4 bytes | -231 ~ 231-1 | 整数型默认 int |
| ||
long | 8 bytes | -263 ~ 263-1 | long num=134L; |
| ||
浮点数 | float | 4 bytes | -3.403E38 ~ 3.403E38 | float num=12.34F |
| |
double | 8 bytes | -1.798E308 ~ 1.798E308 | 浮点数默认 double |
| ||
字符型 | char |
|
| ‘a’ ‘中’ ‘\n’ ‘\u000a’ |
| |
布尔型 | boollean |
|
|
|
|
类型转换:
多类型数据混合运算,自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
byte, short, char之间不会相互转换,他们三者在计算时首先转换为int类型。
当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。
强制类型转换:
int num = (int) 12.34;
引用数据类型
引用数据类型 | ||
类 | 接口 | 数组 |
class | interface | [ ] |
变量作用域
进制
编码:原码、反码、补码
现在的计算机使用补码保存数据。
算术运算
+ - * / %
++ --
自增(前):先运算后取值 自增(后):先取值后运算 | a=2; b=++a; a=2; b=a++; | a=3; b=3 a=3; b=2 |
自减(前):先运算后取值 自减(后):先取值后运算 | a=2; b= --a a=2; b= a-- | a=1; b=1 a=1; b=2 |
赋值运算
= | += | -= | *= | /= | %= |
比较运算符
运算符 | 运算 | 范例 | 结果 |
== | 相等于 | 4==3 | false |
!= | 不等于 | 4!=3 | true |
< | 小于 | 4<3 | false |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | false |
>= | 大于等于 | 4>=3 | false |
instanceof | 检查是否是类的对象 | “Hello” instanceof String | true |
逻辑运算
运算符 | 运算 | 范例 | 结果 |
|
& | AND(与) | false & true | false | 一直运算到表达式结束 |
| | OR(或) | false|true | true | 一直运算到表达式结束 |
^ | XOR(异或) | true^false | true | 两边不同,结果为true;两边相同,结果为false |
! | Not(非) | !true | false |
|
&& | AND(短路与) | false&&true | false | 按顺序运算,到第一个false,停止运算,返回false,直到最后也没false,则返回true |
|| | OR(短路或) | false||true | true | 按顺序运算,到第一个true,停止运算,返回true,直到最后也没true,则返回false |
位运算符
<< | 被移除的高位丢弃,空缺位补0。 |
>> | 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1。 |
>>> | 被移位二进制最高位无论是0或者是1,空缺位都用0补。 |
& | 二进制位进行&运算,只有1&1时结果是1,否则是0; |
| | 二进制位进行 | 运算,只有0 | 0时结果是0,否则是1; |
^ | 相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0 不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1 |
流程控制
判断
if (){} | switch(){ |
注意点
switch(表达式)中表达式的返回值必须是下述几种类型之一:int, byte, char, short, 枚举, 字符串;
break 的用法
循环
for 循环,while 循环,do / while循环
for (初始化; 何时跳出; 步长){ | [初始化语句] } | [初始化语句] |
面向对象
一个 .java文件中,如果有public类,则 .java文件的文件名必须和public类的类名一致。
在一个 .java文件中可以声明多个类,但是只能有一个 public 类。
类的属性(private、public)、构造器(构造函数)、类的方法(private public 修饰符,void 等关键字)
修饰符private(same class)、default(same package)、protected(跨包子类)、public
测试类
重载
一个类中,同名的方法,参数不同,这种写法就是重载。
根据传入的参数使用对应的函数(方法)。
构造函数(构造器也可以重载)
this关键字的用法
表示当前类对象(在构造器之间重载时使用,本质也是表示当前对象,相当于当前对象调用了定义过的构造器)。
类的继承
< 修饰符> class <子类名称> extends <父类>{
<属性和方法的声明>
}
继承时,重写方法
重写(覆盖),要保证子类和父类的,返回值,方法名、参数列表,必须一样。修饰符可以更开放,不能更封闭
@Override
super 关键字,使用父类的方法、属性
Object类
多态
在Java中,创建对象时,用父类声明,却调用子类来创建。
<父类类型名称> 对象名 = new <子类对象名>;
然后,如果子类中重写了某个父类方法,那么调用这个方法时,会调用子类的方法。而不是父类的方法。(动态绑定)
但是不能对《子类相对于父类添加的属性和方法》进行访问等操作(因为声明的是父类类型)。
有一个方法,它的参数为父类类型,那么调用这个方法,传入参数时,可以传入子类类型。
instanceof 操作符
数据结构和算法:
用java实现stacks(栈),看了一点,没怎么看明白,明天早晨再看看。
明天计划的事情:
用java实现stacks
继续学习java语法基础:
static、final、abstract关键字,内部类,单子模型
异常处理、集合、泛型、枚举、IO
后天:常用类、反射、线程/进程、网络编程基础
遇到的问题:
主要是看书,视频,网上教程。暂时没有什么深入问题。
因为这两天是大概浏览一遍java语法,代码量比较小,后面在每天仔细看。
收获:
学习java的基础语法,一点数据结构知识。
评论