Java笔记(一)——基础部分(郝斌)

第一部分:基础知识

1.为什么要设置path

  • 在dos的任何目录下我们都可以运行操作系统自带的命令
  • 要想在dos下运行用户自己的程序,则必须进入到该程序的当前目录下方可运行
  • 如果希望在dos的任何目录下都可以运行自己创建的程序,则需要我们手动设置操作系统自带的的环境变量path

2.path的设置

  • 操作系统是利用path变量来寻找当前程序所存放的路径,并且以最先找到的为准
  • 路径和路径之间用分号隔开
  • Set path = %path%; c:\Intel;

   %path%; C:\Intel; 表示在当前path变量中再添加一个路径C:\Intel;并且该路径是添加在末尾的

  • Set path
    • 表示查看当前path变量中的内容 

3.有关classpath设置的问题

  • 操作系统是利用classpath变量来寻找当前后缀为class的字节码文件所存放的路径,并且以最先找到的为准
  • 从jdk1.6开始,classpath不需要手动设置
  • 初学者可以暂时不去理会classpath的设置
  • 如果要导入第三方的jar包,则需要手动设置classpath

 

4.Dos命令

  • cd\     表示返回根目录
  • cd A\B\C
    • 表示进入当前目录下的A文件夹下的B文件夹的C文件夹
  • e:
    • 进入E盘根目录

 

5.Java中的注解

  • 三种注解://        /* */       /** */
  • //       单行注解,不需要配对
  • /* */    多行注解,需要配对
  • /**  */ 用于将注解变为说明文档,用javadoc实现

 

6.Java语言的基本要素——标识符

  • 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符
    • 包括:变量名、类名、常量名、方法名
  • Java语言中,标识符是以字母、下划线、美元符号开头的一个字符序列,后面可以跟字符、下划线、数字、美元符号

 

7.Java语言的关键字

  • Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数
  • 关键字一律用小写字母标识
  • goto和const虽然从未使用,但也作为Java关键字保留

8.Java数据类型的划分

9.输出数据的格式控制

  • 注意:在Java中没有%ld和%lf,比如float和double都用%f输出,这是与C不同的

 

10.常量-整型常量

  • 整型常量
    • 十进制(12),十六进制(0X12),八进制(012)
    • 一个常量整数默认是int类型,如果数字过大,则必须得在末尾加L,否则会出错
  • 例子:
    • Long I = 9599529592629292929;   // error
    • 编译报错,提示数字过大,但如果改为:
    • Long I = 952318416461496161L; 就可以了

 

11.常量-浮点常量

  • 浮点常量
    • 一个实数默认是double类型,如果希望一个实数是float类型,可以在数字后面加f(F)
    • 将一个double类型数值赋给float类型变量,编译是会报错
  • 例子:
    • float x = 2.2    //  error
    • float  x = 2.2f  //  ok

12.常量-字符常量

  • 字符常量
    • 必须用单引号括起来
    • Java中字符和字符串都用Unicode编码表示
    • 在Unicode编码中一个字符占两个字节
      • 'a'  'B'  '\n'
  • 特殊字符的常量表示法
    • 反斜线    '\\'
    • 退格       '\b'
    • 回车       '\r'
    • 制表符    '\t'
    • 换行       '\n'
    • 单引号    '\''

 

13.字符常量的‘\uxxxx’表示

14.常量-布尔类型

  • boolean表示,不能写成bool
  • 布尔型数据只有两个值true和false,且他们不对应于任何整数值
  • 布尔型变量的定义如:

                               boolean b = true;

  • 布尔型数据只能参与逻辑关系运算:
  • &&   ||   ==   !=   !

     注意: If   while  for 中进行真假判断时只能使用逻辑表达式

 

15.数据类型的转化

  • 不能对boolean类型进行数据类型转换
  • 在把容量大的类型转化为容量小的类型时必须使用强制类型转换
  • 整型、实数型、字符型数据可以混合运算,运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级
  • 低级————————————高级

  Byte->char->int->long->float-->double

 

16.Java中的运算符

  • 算术运算符
    • +   -   *   /   %
  • 关系运算符
    •  >   >=   <   <=   !=   ==
  • 逻辑运算符
    • !   &&   ||
  • 赋值运算符
    • =   +=  -=  *=   /=   &=
  • 位运算符
    • &   |   ~   ^

17.算术运算符(+)

  • +可以表示数值的相加
  • +可以表示字符串的连接

如:“123” + “abc”的结果是“123abc”

  • +还能把非字符串转换成字符串

如:“x”+123; 的结果是“x123”

  • 分析System.out.println('a'+1)与System.out.println("" + 'a' + 1)的区别

18.除法运算符(/)

  • 除法的运算结果和运算对象的数据类型有关,若两个数都是int,则商就是int,若商有小数,则截取小数部分,若两个对象中有一个或两个都是浮点型数据,则商也是浮点型数据,不截取小数部分

 

19.取余运算符(%)

  • Java中允许取余运算符的被除数和除数是实数,但所得余数的正负只和被除数相同
  • 例子:
    • Double  x = 1%-0.3;
    • System.out.println(x);
    • 输出结果是:0.10000000000000003

 

20.逻辑与/逻辑或

  • & 称为逻辑与,只有两个操作数都是true,结果才是true。

&& 称为简洁与或者短路与,也是只有两个操作数都是true,结果才是true。但是如果左边操作数为false,就不计算右边的表达式,直接得出false。类似于短路了右边。

  • | 称为逻辑或,只有两个操作数都是false,结果才是false。

|| 称为简洁或或者短路或,也是只有两个操作数都是false,结果才是false。但是如果左边操作数为true,就不计算右边的表达式,直接得出true。类似于短路了右边。

21.存储单位介绍

  • 一个0或一个1就代表一位
  • 一位只能存储一个0或一个1
  • 一个字节等于8位
  • 位用bit表示
  • 字节用byte表示

22.位运算符

  • &(按位与)
    • 把两个数字所有的二进制位相与
      • 1&1 =1    1&0=0   0&0=0   0&1=0
  • |(按位或)
    • 把两个数字的所有二进制位相或
      • 1|1=1   1|0=1   0|0 =0   0|1=1
  • ~(按位取反)
    • 把一个数字的所有二进制位取反
      • ~1=0      ~0=1
  • ^(按位异或)
    • 把两个数字的所有二进制位异或
      • 1^1=0   1^0=1   0^1=1   0^0=0
  • >>右移
    • 在Java中右移没有任何歧义,这与C不同,对于有符号数,在右移时,符号位将随之移动,当为正数时,最高位为0,最高位补0,而为负数时,最高位为1,最高位补1
  • >>>
    • 无论最高位是0还是1,左边移空的都改为补0
  • <<和<<<同理

23.流程控制

  • 顺序
  • 选择
    • If…else
    • Switch
  • 循环
    • For
    • While
    • Do…while
  • 注意:continue  break 选择 循环的混合使用

24.面向过程:自顶向下的设计模式

25.面向过程设计思想:

“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。

通俗地讲,我们在编写代码时,我们看到是一步一步执行的过程——即面向过程。 最典型的就是c语言,其实就是通过函数体现,并不断的调用函数,执行完成过程即可。

26.面向过程设计的优点:

  • 易于掌握和理解,符合人们的习惯思维
  • 对于需求明确,规模不大,变动较小的问题非常适合
    • 举例:编程实现求三角形的面积和周长

27.面向过程设计的缺点:

  • 数据与操作分离开,对数据与操作的修改变得很困难
  • 数据的安全性得不到保障
  • 程序架构的依赖关系不合理
  • 对于“需求不明确、规模较大、变动较大”的问题显得力不从心

28.面向对象的设计思想:

  • 数据与操作分离开,对数据与操作的修改变得很困难
  • 数据的安全性得不到保障
  • 程序架构的依赖关系不合理
  • 对于“需求不明确、规模较大、变动较大”的问题显得力不从心

29.什么是类

  • 把一类事物静态属性和动态可以执行的操作组合在一起得到的这个概念就是类
  • 类是抽象的,用来模拟一类事物,是一个概念
  • 一旦被定义,类的概念就永远存在了

30.什么是对象

  • 类的一个个体
  • 具体的,实实在在的事物
  • 生命周期短暂,会生成和消亡

31.类与对象

如果将对象比作汽车,那么类就是汽车的设计图纸

32.类的定义

33.类的访问控制符

  • 类的访问控制符有四种:
    • Public
    • Protect
    • 默认
    • Private
  • 在一个类内部,所有的成员都可以相互访问,访问控制符是透明的,访问控制符是针对外部访问而言
  • 外部访问包括两种方式
    • 通过类名访问内部类成员
    • 通过对象名访问内部类成员
  • Public
    • 可以通过外部访问方式访问类内部的public成员
  • Private
    • 不可以通过外部访问方式访问类内部的private成员

34.为什么要使用类

  • 采用简单数据类型表示现实世界中的概念存在很大的局限性,例如采用int型数据表示一个日期,需要使用3个变量

        Int day,month,year

  • 如果要表示两个人的生日,则需要6个变量
  • 使用类可以把现实问题中的对象映射为程序中的一个整体——类

35.类的构造函数

  • 函数名与类名相同
  • 不能有返回值
  • 可以含参,也可以不含参
  • 可以有多个参数
  • 说明:
    • 声明一个对象,系统首先为该对象分配内存,然后立即调用该对象的构造函数
  • 注意:
    • 任何一个类对象被生成时一定会调用该类的构造函数
    • 无论一个类有多少个构造函数,生成一个类对象时,一定只调用其中的某一个构造函数

36.构造函数的返回值问题

  • 在一个类中可以定义多个函数名与类名相同但却有返回值的函数,返回值为void、int、double都可以,这些有返回值的函数只要能满足重载特点,就可以同时存在一个类中,不过要注意,这些有返回值的函数(int、double、void)都不是构造函数,都不会被类对象自动调用
  • 当然也可以定义多个没有返回值的函数,注意连void都不可以添加,这些函数才是构造函数,无返回值的函数才会被类对象自动调用

  • 如果定义了有返回值并且方法名与类名相同的方法,程序并不会报错,但会产生歧义,所以强烈建议不要在构造方法前面加返回值

37.构造函数数据成员的赋值问题

  • 如果在定义的时候不初始化,则它的值是系统自动分配好的默认值
  • 如果在定义的同时赋初值,则是可以的、有效的,(C++中不能再定义的同时进行初始化,只能在构造函数中初始化)
  • 如果在定义的同时赋初值,当然生效,但如果在构造函数中又改变了定义时赋的值,则该数据成员最终的值就是构造函数修改之后的那个值;
  • 因为:系统会先执行定义时赋的初值,然后再执行构造函数中赋的初值

38.构造函数数据成员的赋值问题

  • 当一个对象被创建时,会对其中各种类型的变量自动进行初始化赋值


版权声明:本文为Mr_Morgans原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。