Java学习——Java基础

一、 Java概述 1.  Java语言概述

    1.1 Java应用:擅长互联网软件(淘宝、京东、电商、P2P等)、企业级应用(ERP、OA、CRM、BOS等)、手机终端应用(安卓系统);

    1.2 JavaSE(基础版):Java的基础知识,学完JavaSE并不能开发大型项目;

    1.3 JavaEE(企业版):Java的高级知识及整个生态圈,学完JavaEE 就可以开发各种大型项目;

 

2.  常用DOS命令

     cd. .  : 退回到上一级目录 ; 系统最顶层的盘符是 C/D/E/F 等盘符
    cd\  :  退回到根目录
    cd tools :  进入tools文件夹
    d: —— 回车 :盘符切换
    cd d:\234  : 进入d盘的234文件夹,再切换盘符( d: )才能进入d:\234;     切换地址:cd  /d  d:\234
    Dos 中进入数据库: mysql -u root -p   ,回车,然后输入密码;

    dir  : 列出当前目录下的文件以及文件夹
   cls  : 清除屏幕
   ipconfig: 查看本机的相关网络配置

3.  Java开发环境搭建:JDK 和 JRE

 安装 JDK7(Java开发工具包),       验证: 在DOS下 ——切换到E:\Java\bin 中——输入:java 
 JRE: Java运行环境
 JDK 包含 JRE
 Tab 键: 自动匹配
 Java 特性: 跨平台(即操作系统)运行:Windows、Linux、Mac
                     一次编写到处运行;实现跨平台需要依赖Java的虚拟机JVM:虚拟机是真正运行Java程序的环境
                    虚拟机本身是不跨平台的;虚拟机包含在JRE中,所以也包含在JDK中

4.  HelloWorld 程序

  源文件( .java )——编译(字节码文件 .class)——运行
  编译和运行 需要使用DOS命令来实现
 Java 类名(class)必须与文件名相同,大小写一致
 Java 大小写敏感

5.  配置环境变量


    属性- 系统变量- PATH-新建:   E:\Java\jdk1.7.0_02\bin ;(最后加上分号;)
    这样,在任何目录下都可以编译和运行 javac 和 java
    以后编译的方法: javac  HelloWorld.java ;  以后运行的方法: java  HelloWorld

 

6.  Notepad++ 软件 二、  Java基础语法 1.  基础语法

  完整代码:  类 + 主方法 + 输出(    System.out.println( " xxx " );   )

  1.1  注释 : 单行注释 :    //注释内容; 多行注释 :    /* 注释内容 */;     文档注释 : /** 注释内容 */
          一般公司要求: 代码中有30%的注释

  1.2  关键字:  被Java语言赋予特殊含义,具有专门用途的单词;  关键字 全是小写字母

  1.3  标识符: 就是给 类,接口,方法,变量等起名字时使用的自定义的字符序列;    命名规则

  1.4  数据类型
    1.4.1 基本数据类型 :
            整数(byte、short、int、long)、小数(float、double)、字符类型(char)、布尔类型(boolean)
    1.4.2 引用数据类型:
            是强大的数据类型,它是基于基本数据类型创建的。JavaSE中提供了一个超级类库,类库中包含了近万种引用数据类型
     1.4.3 数组 , 类 , 接口
     1.4.4 常量 : 常量就是不变的数据量, 在程序执行的过程中其值不可以发生改变
             常量分类 :    整数 , 小数 , 布尔类型 ,  字符类型(只能包含一个字符,不可为空, 用' ' ) ,   字符串(用 " ", 可包含0-N个字符, 字符串String 类型是一种引用类型 )

  1.5  变量

  1.5.1 变量是内存中的一个装载数据的容器,只能用来存数据和取数据;  计算机存储单元

  1.5.2 基本类型(4类8种):
     整型: byte( 1字节 ) , short( 2字节) , int(4字节), long(8字节)
     浮点型: float(4字节), double(8字节)
     字符型: char(2字节)
     布尔型: boolean(1字节)

 1.5.3 常量与类型
    整数常量 根据所在范围来确定类型;     java中默认的整数类型是 int 类型;

 1.5.4 定义变量(创建变量)   

  eg: int  a =10 ;      变量使用的注意事项

 1.5.5  数据类型转换
     自动转换:  从小到大:byte- short-int-long-float- double    小的数据类型可转换大的数据类型
     强制类型转换:  eg:  int gl = ( int ) d ;

1.6 运算符   
    算术运算符、赋值运算符、比较运算符、逻辑运算符、三元运算符:(条件表达式)?表达式1 :表达式2 ;

1.7  引用数据类型 (Java中已有的类)

1.7.1 Scanner 类: 接收键盘输入
      创建 Scanner类的变量: 数据类型   变量名  = new  数据类型( );   eg: Scanner sc = new Scanner( );
      使用引用类型的方法(功能):  变量名 . 方法名( ) ;
      Scanner类 的作用: 在命令行中接收键盘的输入
      使用Scanner 类的步骤:
         1. 导入包(import),指明并导入类所在的文件夹的路径( java/util )
         2.  创建Scanner 类型变量
         3.  使用Scanner类中的功能方法,完成键盘输入
      Scanner类的方法
        1.  nextInt( )  :接收键盘输入的整数     2.  next( ):接收键盘输入的字符串

 1.7.2  Random类: 产生随机数
    Random类的方法
        nextInt( k ): 产生0—k (不包含k)之间的整数的随机数
        nextDouble( ): 产生 0.0 ——1.0(不包含1.0 )之间的浮点随机数(随机小数)
                                     伪随机数:Java虚拟机根据人写好的一个算法生成出来的

1.8.  流程控制语句
   选择结构 if -else  语句、三元运算、循环语句while、for 循环、循环语句 do-while
   无限循环、循环嵌套、选择结构 switch

   跳转语句: break,continue
         break:终止循环;         continue: 终止本次循环,开始下一次循环

1.9  数组

1.9.1 数组的定义

数组的定义1:数据类型[ ] 变量名 = new  数据类型[ 存储元素的个数 ] ;    eg:  int[ ] arr = new int[3];    #数组arr可存储3个整数
数组的定义2 : 定义的同时,对元素进行赋值;    eg:  int [ ] arr = new int [ ]{ 1,2,3,4,5,6 };
                                 注意: new 后面的中括号中,不允许写任何内容,写了就编译失败
数组的定义3 — 最简便方法:直接大括号赋值   int [ ] arr2 = { 0,2,4,6,8,10 };

1.9.2 JVM (Java虚拟机)的内存划分,分成5个区域:
    1.  寄存器: 内存和CPU之间
    2.  本地方法栈: JVM调用了系统中的功能
    3.  方法和数据共享区: 运行时期 class 文件进入的地方
    4.  方法栈: 所有的方法运行时,进入的内存
    5.  堆: 存储的是 容器(即:数组)和对象

1.9.3 main 方法 进入栈内存运行( main压栈运行 )
         JVM在堆内存开辟空间,存储数组容器
         内存地址
         数组遍历

1.9.4 数组操作中,常见的两个异常:
            1.  数组的索引越界异常;
            2.  空指针异常;   eg:  arr2 = null      #arr2 不再保存数组的地址了

1.9.5 二维数组
    定义方式:
        方式1:    int[ ][ ] arr = new  int[3][4];
        方式2( 不推荐) : int [ ][ ] arr = new  int[3][ ]
        方式3 : 最简单的方式:  int [ ][ ]   arr = { [1,4], [3,6,9],[0,9,8] };    int [ ][ ]  arr = { {1,2},{3,4,5,6},{7,8,9} };
    二维数组的元素访问 和 遍历

 

1.10.  方法: 实现某个功能的办法
    1.10.1 方法概述
    1.10.2 方法的语法格式:
        修饰符  返回值类型  方法名(参数类型  参数名1, 参数类型 参数名2,......){

                                       执行语句   ....   return 返回值;}
    1.10.3 调用方法: 方法名(参数1,参数2,.... );
    1.10.4 方法的定义和使用 的注意事项:
        1.  方法不能定义在另一个方法的里面
        2.   写错方法名字
        3.  写错了参数列表
        4.  方法返回值是void,方法中可以省略return不写;return 下面不能有代码
        5.  方法返回值类型, 和 return 后面数据类型必须匹配
        6.  方法重复定义问题
        7.  调用方法的时候,返回值是void,不能写在输出语句中
    1.10.5 方法的重载(overload)
        (1)方法的重载: 在同一个类中,允许出现多个同名的方法,只要方法的参数列表不同即可(包括:参数的个数、数据类型、顺序 不同),这样方法就是重载;
        (2)方法重载的注意事项:
            1.  参数列表必须不同;  2.  重载 和 参数变量名 无关;   3.  重载 和 返回值类型 无关
            4.  重载 和 修饰符 无关;
              技巧: 重载 只看 方法名 和 参数列表
    1.10.6 参数 传递

 

1.11 引用数据类型(类)

 1.11.1 引用数据类型(类)的分类:
        1.  Java已经提供好的类: 如Scanner类、Random类等
        2.  自己创建的类
 1.11.2 自定义数据类型概述:
      类,是引用数据类型
1.11.3 类的定义 和 使用
    Java 代码映射成现实事物的过程 就是 定义类的过程
    事物的方法——功能;  事物的属性——变量;
    类的定义格式
        public  class  类名 {    属性定义:修饰符  数据类型  变量名=值    方法定义:修饰符  返回值类型   方法名(参数列表){

                    ..... }     }
     自定义的 内存图

1.12.  ArrayList集合

ArrayList集合是一种容器,也是一种引用数据类型;
    1.12.1 创建 集合引用变量的格式:  数据类型集合存储的数据类型  变量名 = new 数据类型集合存储的数据类型( );
               eg:  ArrayListString  array = new ArrayListString ( );
        注意:1. 要将数据存储到集合的容器中,所以在创建集合引用变量的时候,必须要指定好存储的类型是什么;
                   2. 集合存储的数据类型中的数据类型必须是引用数据类型,不能是基本数据类型(集合不存储基本类型)
   8种 基本数据类型( byte,short,int,long,float,double,char,boolean ) 对应 8种引用数据类型( Byte, Short, Integer,Long,Float,Double,Character, Boolean   )
        eg : 创建一个集合容器的步骤:
     1.  使用ArrayList 时先导入:  import  java.util.ArrayList ;    2.  ArrayListString array = new ArrayListString( ); 3. 调用方法:   变量名.方法

   eg:  import  java.util.ArrayList;

         public  class  ArrayListDemo{

         public  static  void  main(String[] args){

         //创建集合容器,指定存储的数据类型

        //存储字符串 

       ArrayList String array = new ArrayList String ();

   }

}


    1.12.2 集合中常用的方法
        1.  boolean  add( Object obj ): 将指定元素obj追加到集合的末尾;  方法中的参数类型 与 定义集合对象时的类型是一致的
        2.  Object  get( int  index) : 返回(获取)集合中指定位置上的元素
        3.  int size( ) : 返回集合中的元素个数(即:集合的长度)


    1.12.3 集合的遍历
        集合的索引从0开始,到 size( )-1;    方法  get( int  index )


    1.12.4 集合中的常用方法补充

   1.12.5 编程练习

     (1)循环练习:

       1.  1-100之间的奇数求和
       2.  求水仙花数
       3.  ASCII 编码表  :常用符号用二进制数来表示; 数字0-9 对应ASCII  为 48-57;字母a-z 对应 97-122
    字母A-Z 对应 65-90; 字符是 char 类型,整数是 int 类型
      4. 利用for循环打印ABC-Z 26个大写字母和26个小写字母
      5.  利用for 循环打印 9*9 乘法表

(2)数组方法练习:
    1.  定义打印数组元素方法,按照给定的格式打印 [ 11,33,44,22,55]
    2.  数组元素逆序
    3.  数组元素选择排序: 选择排序  和 冒泡排序
    4.  数组的二分查找法(折半查找法)

1.13.  Eclipse开发工具
 1.13.1  Eclipse: 由IBM创建开发的, 是强大的Java集成开发工具,自动编译,检查错误。大公司中就是使用Eclipse进行开发; 免费,开源,自由安装其他插件


 1.13.2  Eclipse 的下载、安装、卸载:
        www.eclipse.org   ( org是非营利性组织 )
        安装: 解压后就能使用
        卸载: 只需要将文件夹删除即可
        注意: 开发软件的安装目录中,尽量不要出现空格和中文


 1.13.3 Eclipse 的使用
 (1)工作空间 和 新建工程:
            new——java Project——day08
            src : 源代码;     src——右键——new——class(类名的首字母大写)
 (2)HelloWorld 编写
 (3)字体设置: 编辑器 和 控制输出台 字体, 一般为 : 14 或 16 即可
 (4)窗口设置:
            除了 Package Explorer、代码编写区、控制台,还可以保留 Outline;         Reset Perspective : 重置窗口
           去掉多余的默认注释;
 (5)Eclipse快捷键
            1.  Alt + /  自动补全
                eg: 输入: syso + Alt+ /  , 选择并回车——自动补全 标准输出
                Sc + Alt + /  : 自动补全Scanner类,并导入包
                 int  + Alt + /  : 自动给变量起名
                for + Alt + / : 第一个选项是:迭代一个数组(数组遍历)
                main + Alt + / :自动补全main方法 public static void main(String[ ] args)
            2.  Ctrl + Shift + F : 代码格式化(当代码很乱时)  或者: 鼠标右键—Source——Format
            3.  Ctrl + / 单行注释; 再按一次: 取消单行注释
            4.  Ctrl + Shift + /  多行注释 (需要先选中多行)
                Ctrl + Shift + \  取消多行注释(光标在多行注释内即可取消,不用全部选中)
            5.  Ctrl + Shift + o   导入包的快捷键(光标停在包的行)
            6.  Alt + 上下箭头  : 移动当前行代码
            7.  Ctrl + Alt +上下箭头: 复制当前代码行到上一行/下一行(包含复制和粘贴,也可选中多行进行复制)
            8.  Ctrl+D :删除当前行
            9.  Ctrl + 1 :意见提示功能(对于小X 的错误)

(6)断点调试: 在 有效行的行号处双击 即可
(7)工程删除 和 导入:
            工程删除: 右键——delete
            导入: Package Explorer——import——General——Existing Projects ...  ——Browse——添加工程目录

1.14  面向对象

      理解什么是面向过程、面向对象
      面向对象举例
     面向对象思维方式的好处

1.15.  类与对象
   1.15.1 对象在需求中的使用:
          总结:
            1.  先按照名词提炼问题领域中的对象
            2.  对 对象进行描述,其实就是在明确对象中应该具备的属性和功能
            3.  通过new 的方式就可以创建该事物的具体对象
            4.  通过该对象调用它以后的功能
   1.15.2 对象在代码中的体现:
        1. 定义类的格式:
            public  class 类名{   数据类型  变量名1;  数据类型  变量名2;   修饰符  返回值类型  方法名(参数){  执行语句;}     }
            属性和功能 统称为:事物中的成员
        2. 创建对象的格式: 类名  对象名  =  new 类名();
   1.15.3 对象的内存图
   1.15.4 类 和 对象的区别:
        类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体
   1.15.5 局部变量 和 成员变量的区别
        1.  定义位置上的区别:
            成员变量: 定义在类中,方法外面
            局部变量: 定义在方法内,或 语句内
        2.  作用域不同:
            成员变量:作用域最大:整个类
            局部变量:只作用于方法内或语句内
        3.  默认值不同
            成员变量: 有自己的默认值
            局部变量:没有默认值,未赋值不能使用
        4.  内存位置不同:
            成员变量:跟随对象进入堆内存存储
            局部变量:跟随自己的方法,进入栈内存存储
        5.  生命周期不同:
            成员变量:跟随对象,在堆内存中存储,需要等待JVM清理; 生命相当较长
            局部变量: 跟随方法,方法出栈则局部变量消失,生命相对较短
    1.15.6 基本类型 和 引用类型 作为方法的参数传递

1.16.  封装
    1.16.1 封装概述:
        面向对象的三大特征:封装、继承、多态
        方法、类 都是一个封装体
        封装的好处:
            1.  提高了代码的复用性
            2.  隐藏了实现细节,还要对外提供可以访问的方式,便于调用者的使用,这是核心之一,也是封装的概念
            3.  提高了安全性
    1.16.2 封装举例
    1.16.3 私有 private:
        private 属于成员修饰符,不能修饰局部变量; 被private 修饰的成员,只能在自己的本类中被使用;
        private 又被称为:权限修饰; 对私有变量 提供公共的访问方式: 调用方法;
        get 和 set 方法:
            一般对成员属性的访问动作:赋值(设置 set)、取值(获取,get)
             因此对私有的变量访问的方式可以提供对应的 setXxx 或 getXxx 的方法
        总结:
            1.  类中不需要对外提供的内容都私有化,包括属性和方法。以后再描述事物,类中的属性都应该私有化,并提供setXxx 和 getXxx 方法对其进行访问
            2.  注意: 私有仅仅是封装的体现形式而已
        私有化所有的属性(成员变量),必须写对应的get/set 方法;
        凡是自定义的类、自定义的属性(成员变量),都应该私有化,并且提供get/set方法
   1.16.4 this 关键字:
        (1)成员变量 和 局部变量的同名问题:
            this 关键字 用来区分成员变量 和 局部变量的同名问题
            在方法中想要访问成员变量,则需要在成员变量名前面加上this: this. xxx
        (2)对象的内存解释
        (3)this 关键字 可以理解为:本类的对象 引用, 即:哪个对象调用的此方法,this就表示哪一个对象
                 有this.是成员变量,没有this.是局部变量
        (4)this 内存图
        (5)this的应用: 比较年龄

 

最新回复(0)
/jishuCumcqR9yBJ_2FvrpeB_2FgvUKzgR6cgPoLfsYT3ESA_3D_3D
8