Java学习笔记——基础

1.Java中数据类型的溢出:

当范围内最大的值加上一,结构变成范围内最小的值;

当范围内最大的值加上二,结果变成范围内次最小的值。

 

2.注

a * = b++;  // 等价于首先a = a * b , 再b = b + 1;

a * = ++b;  // 等价于首先b = b + 1,再a = a * b

 

3.三目运算符是常用运算符中运算级别最低的。

 

4.关于switch语句

JDK1.5之后,switch开始支持枚举类;

(1)case没有break,则会一直执行到switch语句的末尾才会离开switch语句;

(2)没有定义default语句,则什么也不执行,直接退出switch语句。

E.g.

int x = 6, y = 3;

char opr = +;

switch(opr)

{

    case +:

       println(x + y = + ( x + y ));

   case -:

      println(x - y = + ( x - y ));

   default:

      println(unKnown);

}

 运行结果

x + y =9

x - y =3

unKnown

/* 由于没有break语句,所有的语句均会执行一遍 */

 

5.Dos下运行程序出现死循环,按Ctrl + C可以结束死循环。

 

6.循环终止:

Break:跳出本次循环,终止本级循环;

continue:跳出本次循环,继续经行下一次循环;

return:直接结束一个方法的执行。

E.g.

public void add(Object obj)

{

   print(step01);

   if( obj == null )

   {

      return;

   }

   print(step02);

}

 

7.Java数据类型

 

 a.基本数据类型 

                            |---  类(class)

b.应用数据类型   |---  接口(interface)

                            |--- 数组

8.注意

任何数据类型碰到String都会向Sring类型转化,

E.g.

int i = 1, j = 2;

println( i + j =  + i + j );     // i + j = 12

println( i + j =  + ( i + j ));   //  i + j = 3

 

9.数据类型转化

                 |   3 / 2 = 1

自动转换   |   3 / 2.0 = 1.5

                 |   1.0 * 3 / 2 = 1.5

强制转化  :  (int)(23.56f) = 23

 

10.数组的声明

int[] stores = null;   // 声明数组

scores = new int[3]; // 内存分配

【注】

    数组在声明之后,只是在栈内存中开辟了一块用于存储数组“名称”的存储空间,该存储空间实际上是用来存储数组在堆内存中的参考地址;

    使用new操作,是在堆内存中为3个整数分配存储空间,并将此存储空间的参考地址赋给scores


【注意】

函数中传递的若是基本数据类型,传递的过程是值传递,函数内部对参与值传递的形参的操作并不会影响原值。

若传递的是数组(应用数据类型),在作为参数进行传递的过程中,传入的是数组在堆内存中存储的地址,也是数组在栈内存中的存储内容,而不是堆内存中存储的内容,即不是数组元素的值,此时是将本数组的使用权交给了函数的形参,函数内部对形参的操作将会在函数生命周期结束的时候被保存下来。

 

E.g.

int[] temp = { 1,2,3,4 };

fun(int[] x)

{

   x[1] = 6;

}

// 调用函数

print(调用fun之前:数组temp=);

println(temp);

fun(temp);

print(调用fun之后:数组temp=);

println(temp);

 

// 结果:

调用fun之前:数组temp= 1,2,3,4

调用fun之后:数组temp= 1,6,3,4

 

11.关于类的封装

public class Person

{

   private int age

   private String birthday

   private String name

   ....

   Set-get

   ....

}

 

上面的类中,属性使用private,不对外公布,外部只能够通过public声明的set-get方法来访问和修改属性值。

这样做的好处:

可以通过控制是否包含setget方法来控制外部是否能够修改或访问属性。E.g.

               | --- setBirthday(String birthday)

birthday  |

               | --- getBirthday()

 

age : getAge()  [setAge]

    上面的Person类中,可以通过birthday来获得age而非通过set方法来设置age属性的值,当调用setBirthday时,对象内部同时计算得到age的值,只能够通过修改birthday来修改age,从而保证了数据的安全性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值