发表于: 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;
 
赋值时后面加Ll

 

浮点数

float

4 bytes

-3.403E38 ~ 3.403E38

float num=12.34F
 
赋值时后面加Ff

 

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;

^

相同二进制位进行 ^ 运算,结果是01^1=0 , 0^0=0

不相同二进制位 ^ 运算结果是11^0=1 , 0^1=1

流程控制

判断

if (){}
  else if(){}
  else{}

switch(){
  case <value 1>:
  case <value 2>:
  default:
  }

 

注意点

switch(表达式)中表达式的返回值必须是下述几种类型之一:int, byte, char, short, 枚举, 字符串;

break 的用法

循环

for 循环,while 循环,do / while循环

for (初始化; 何时跳出; 步长)
    
语句或语句块;
 

[初始化语句]
  while(
测试何时跳出)
    
语句或语句块;
        [
更改测试语句;]

}

[初始化语句]
  do

 
语句或语句块;
     [
更改测试表达式语句;]
 
while(布尔值测试表达式);

 

面向对象

一个  .java文件中,如果有public类,则 .java文件的文件名必须和public类的类名一致。

在一个 .java文件中可以声明多个类,但是只能有一个 public 类。

类的属性(privatepublic)、构造器(构造函数)、类的方法(private public 修饰符,void 等关键字)

修饰符privatesame class)、defaultsame package)、protected(跨包子类)、public

测试类

重载

一个类中,同名的方法,参数不同,这种写法就是重载。

根据传入的参数使用对应的函数(方法)。

构造函数(构造器也可以重载)

this关键字的用法

表示当前类对象(在构造器之间重载时使用,本质也是表示当前对象,相当于当前对象调用了定义过的构造器)。

类的继承

< 修饰符> class <子类名称> extends <父类>{
   <
属性和方法的声明>
}

继承时,重写方法

重写(覆盖),要保证子类和父类的,返回值,方法名、参数列表,必须一样。修饰符可以更开放,不能更封闭

@Override

super 关键字,使用父类的方法、属性

Object

多态

Java中,创建对象时,用父类声明,却调用子类来创建。

<父类类型名称> 对象名 = new <子类对象名>;

然后,如果子类中重写了某个父类方法,那么调用这个方法时,会调用子类的方法。而不是父类的方法。(动态绑定)

但是不能对《子类相对于父类添加的属性和方法》进行访问等操作(因为声明的是父类类型)。

 

有一个方法,它的参数为父类类型,那么调用这个方法,传入参数时,可以传入子类类型。

instanceof 操作符

数据结构和算法:

java实现stacks(栈),看了一点,没怎么看明白,明天早晨再看看。

明天计划的事情:

java实现stacks

继续学习java语法基础:

staticfinalabstract关键字,内部类,单子模型

异常处理、集合、泛型、枚举、IO

后天:常用类、反射、线程/进程、网络编程基础

遇到的问题:

主要是看书,视频,网上教程。暂时没有什么深入问题。

因为这两天是大概浏览一遍java语法,代码量比较小,后面在每天仔细看。

收获:

学习java的基础语法,一点数据结构知识。





返回列表 返回列表
评论

    分享到