当前位置:网站首页 > Java基础 > 正文

java基础毕向东笔记



目录

  • 第一章 Java概述
    • 基础常识
      • 软件开发
      • 人机交互
      • 命令行方式
    • 计算机语言
      • 什么是计算机语言?
      • Java语言概述
        • Java语言的三种技术架构
        • Java语言的特点:跨平台性
      • Java语言的环境搭建
        • 什么是JRE,JDK?
        • 配置环境变量
  • 第二章 Java基础语法
    • 关键字
    • 标识符
    • 注释
    • 常量与变量
    • 运算符
      • 算术运算符
      • 赋值运算符
      • 比较运算符
      • 逻辑运算符
      • 位运算符
        • 练习
      • 十六进制形式
      • 三元运算符
    • 流程控制
      • 判断结构
      • 选择结构
      • 语句练习if-switch
      • 循环结构
        • while
        • for
        • 练习题
      • 其他流程控制语句
    • 函数
      • 函数的定义
      • 函数的特点
      • 函数的应用
      • 函数的重载(overload)
    • 数组
      • 数组的定义
      • 内存结构
      • 数组操作常见问题
      • 数组常见操作
      • 练习进制转换
      • 二维数组
  • 第三章 面向对象
    • 面向对象概念
      • 理解面向对象
      • 面向对象的特点
      • 面向对象开发,设计,特征
    • 类与对象的关系
      • 类与对象(图例)
      • 类的定义
      • 成员变量和局部变量的区别?
      • 创建对象,使用对象
      • 对象内存结构
      • 匿名对象
    • 封装(Encapsulation)
    • private(私有)关键字
    • 构造函数
    • this关键字
    • static(静态)关键字
    • 单例设计模式

第一章 Java概述


基础常识


软件开发

  • 什么是软件?
    • 软件:一系列按照特定顺序组织的计算机数据和指令的集合。
    • 常见的软件:
      • 系统软件:
        • 如DOS、windows、Linux等。
      • 应用软件:
        • 、迅雷等。
    • 什么是开发?
      • 制作软件

人机交互

  • 软件的出现实现了人与计算机之间的更好交互。
  • 交互方式:
    • 图形化界面:这种方式简单直观,使用者已于接收,容易上手操作。
    • 命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令。

命令行方式

 

计算机语言


什么是计算机语言?

  • 语言:是人与人之间用于沟通的一种方式。
    例如:中国人与中国人用中文沟通。
    而中国人要和韩国人交流,就要学习韩语。
  • 计算机语言:人与计算机交流的方式。
    如果人要与计算机交流,那么就要学习计算机语。
    计算机语言有很多种,如:C,C++,Java等。
    这里,我们选择其中的一种:Java语言。
  • Java语言主要应用在互联网程序的开发领域。常见的互联网程序比如天猫、京东、物流系统、网银系统等,以及服 务器后台处理大数据的存储、查询、数据挖掘等也有很多应用。

Java语言概述

  • 是SUN(Stanford University Network, 斯坦福大学网络公司)1995年推出的一门高级编程语言。
  • 是一种面向Internet的编程语言。
  • 随着Java技术在web方面的不断成熟,已经成为web应用程序的首选开发语言。
  • 是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。

Java语言的三种技术架构
J2EE(Java 2 Platform Enterise Edition)企业版 是为了开发企业环境下的引用程序提供的一套解决方案。该技术体系中包含的技术如Servlet Jsp等,主要针对于web应用程序开发
J2SE(Java 2 Platform Standard Edition)标准版 是为开发普通桌面和商务应用程序提供的解决方案。

该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。

J2ME(Java 2 Platform Micro Edition)小型版 是为开发电子消费产品和嵌入式设备提供的解决方案。 该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。

Java5.0版本后,更名为JAVAEE JAVASE JAVAME


Java语言的特点:跨平台性
  • 什么是跨平台性?
    通过Java语言编写的应用程序在不同的系统平台上都可以运行。
  • 原理是什么?
    只要在需要运行Java应用程序的操作系统上,先安装一个Java虚拟机(JVM JAVA Virtual Machine)即可。
    由JVM来负责Java程序在该系统中的运行。

因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。


Java语言的环境搭建

什么是JRE,JDK?
JRE(Java Runtime Environment Java运行环境) 包括Java虚拟机(JVM Java Virtual Machine)和Java所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。 JDK(Java Development Kit Java开发工具包) - JDK是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等

简单而言:使用JDK开发完成的Java程序,交给JRE区运行。


配置环境变量
  • 每次执行java的工具都要进入到bin目录下,是非常麻烦的。
  • 可不可以在任何目录下都可以执行java的工具呢?
  • 根据windows系统在查找可执行程序的原理,可以将java工具所在路径定义到path环境变量中,让系统帮我们去找运行执行的程序。
 

第二章 Java基础语法


关键字


关键字的定义和特点:
定义:被Java语言赋予了特殊含义的单词
特点:关键字中所有字母都为小写

用于定义数据类型的关键字

class interface byte short int long float double char boolean void

用于定义数据类型的关键字

true false null

用于定义流程控制的关键字

if else switch case default while do for break continue return

用于定义访问权限修饰符的关键字

private protected public

用于定义类,函数,变量修饰符的关键字

abstract final static synchronized

用于定义类与类之间关系的关键字

extends implements

用于定义建立实例及引用实例,判断实例的关键字

new this super instanceof

用于异常处理的关键字

try catch finally throw throws

用于包的关键字

package import

其他修饰符关键字

native strictfp transient volatile assert

标识符


  • 在程序中自定义的一些名称。
  • 由26个英文字母大小写,数字:0~9 符号:_$组成
  • 定义合法标识符规则:
    1. 数字不可以开头。
    2. 不可以使用关键字。
  • Java中严格区分大小写。
  • 注意:在起名字的时,为了提高阅读性,要尽量有意义。
    Java中的名称规范:
  • 包名:多单词组成时所有字母都小写。
    • xxxyyyzzz
  • 类名接口名:多单词组成时,所有单词的首字母大写。
    • XxxYyyZzz
  • 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
    • xxxYyyZzz
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接。
    • XXX_YYY_ZZZ

注释

  • 用于注解说明解释程序的文字就是注释。
  • 提高了代码的阅读性
  • Java中的注释格式:
    • 单行注释
      • 格式:// 注释文字
    • 多行注释
      • 格式:/* 注释文字 */
    • 文档注释
      • / 注释文字 */
  • 对于单行和多行注释,被注释的文字,不会被JVM(Java虚拟机)解释执行。
  • 对于文档注释,是Java特有的注释,其中注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档。
  • 注释是一个程序员必须要具有的良好变成习惯。
  • 初学者编写程序可以养成习惯:先写注释再写代码
  • 将自己的思想通过注释先整理出来,在用代码去体现。
  • 因为代码仅仅是思想的一种体现形式而已。
 

常量与变量

  • 常量表java基础毕向东笔记示不能改变的数值。
  • Java中常量的分类:
    1. 整数常量。所有整数
    2. 小数常量。所有小数
    3. 布尔型常量。较为特有,只有两个数值。true false
    4. 字符常量。将一个数字字母或者符号用单引号(’’)标识。
    5. 字符串常量。将一个或者多个字符用双引号标识。
    6. null常量。只有一个数值就是:null。
  • 对于整数:Java有三种表现形式。
    • 十进制:0~9,满0进1
    • 八进制:0~7,满8进1,用0开头表示
    • 十六进制:0-9,A-F,满16进1.用0x开头表示
  • 进制的基本转换
    • 十进制 二进制 互转
      • 十进制转成二进制 除以2取余数
      • 二进制转成十进制 乘以2的幂数
    • 十进制 八进制 互转
    • 十进制 十六进制 互转
    • 负数的二进制表现形式
      • 对应的整数二进制取反加1
 
 
 
 
 

负数的最高位都是1.

  • 变量的概念:
    • 内存中的一个存储区域
    • 该区域有自己的名称(变量名)和类型(数据类型)
    • 该区域的数据可以在同一类型范围内不断变化
  • 为什么要定义变量:
    • 用来不断的存放同一类型的常量,并可以重复使用
  • 使用变量注意:
    • 变量的作用范围(一对{}之间有效)
    • 初始化值
  • 定义变量的格式:
    • 数据类型 变量名 = 初始化值;
    • 格式是固定的,记住格式,以不变应万变。
  • 变量就如同数学中的未知数。

Java语言是强类型语言,对于每一种数据都要定义了明确的具体数据类型,在内存总分配了不同大小的内存空间

数据类型:基本数据类型、引用数据类型
基本数据类型:
数值型:整数类型(byte/short/int/long)、浮点类型(float/double)),字符型(char),布尔型(boolean)
引用数据类型:类(class)、接口(interface)、数组([])
整数默认int,小数默认double

  • 自动类型转换(也叫隐式类型转换)
  • 强制类型转换(也叫显式类型转换)
  • 类型转换的原理
  • 什么时候要用强制类型转换?
  • 表达式的数据类型自动提升
    • 所有的byte型、short型和char的值将被提升到int型。
    • 如果一个操作数是long型,计算结果就是long型。
    • 如果一个操作数是float型,计算结果就是float型。
    • 如果一个操作数是double型,计算结果就是double型。
  • 分析
    • System.out.println(‘a’)与System.out.println(‘a’+1);的区别
    a在ASCII码对应值是97
    char和int相加,char会被强制转换int 97+1=98
  • 自动类型提升
 
  • 强制类型转换
 
  • 思考:
 

哪句是编译失败的呢?为什么呢?

 
 
 

运算符


算术运算符

运算符 运算 范例 结果 + 正号 +3 3 - 负号 b=4,-b; -4 +加 5+5 10 - 减 6-4 2 * 乘 3*4 12 / 除 5/5 1 % 取模 5%5 1 ++ 自增(前) a=2;b=++a; a=3,b=3 ++ 自增(后) a=2;b=a++; a=3,b=2 – 自减(前) a=2;b=–a; a=1;b=1 – 自减(后) a=2;b=a– a=1;b=2 + 字符串相加 “he”+“llo” “hello”
  • 算术运算符的注意问题
    • 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数的负数就另当别论
    • 对于除号"/",它的整数除和小数除是有去别的:整数之间做除法时,只保留整数部分而舍弃小数部分。
    • 例如:int x = 3510;x=x/1000*1000; x的结果是?3000
    • "+"除字符串相加功能外,还能把非字符串转换成字符串
    • 例如:System.out.println(“5+5=”+5+5); // 打印结果是?5+5=55
 

赋值运算符

  • 符号:
    =,+=,-=,*=,/=,%=
  • 示例:
 
  • 思考:
 

有什么区别?

 

比较运算符

运算符 运算 范例 结果 == 相等于 4==3 false != 不等于 4!=3 true < 小于 4<3 false > 大于 4>3 true <= 小于等于 4<=3 false >= 大于等于 4>=3 false instanceof 检查是否类的对象 “Hello” instance String true
  • 比较运算符的结果都是boolean型,也就是要么是true,要么是false。
  • 比较运算符"==“不能误写成”="。

逻辑运算符

运算符 运算 范例 结果 & AND(与) false&true false OR(或) falsetrue true ^ XOR(异或) true^false true ! Not(非) !true false && AND(短路) !true false OR(短路) falsetrue true
  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3&x<6。
  • "&“和”&&"的区别:
    • &时,左边无论真假,右边都进行运算
    • &&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
      "|“和”||"的区别同理,爽或时,左边为真,右边不参与运算。
  • 异或(^)与或(|)的不同之处是:当左右都为true时,结果为false。
 

&(与) 只要两边的boolean表达式结果,有一个为false。那么结果就是false。

 

|(或) 两边只要有一个为true,结果为true。只有两边都有false,结果为false。

 
 

短路
&和&&的特点:
& 无论左边是true还是false,右边都运算。
&& 当左边为false时,右边不运算。


位运算符

运算符 运算 范例 << 左移 3<<2=12–>3 22=12 >> 右移 3 >>1=1‐‐>3/2=1 >>> 无符号右移 3 >>>1=1‐‐>3/2=1 & 与运算 6&3==2 或运算 63=7 ^ 异或运算 6^3=5 ~ 反码 ~6=-7
位运算符的细节 << 空位补0,被移除的高位丢弃,空缺位补0 >> 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1 >>> 被移位二进制最高位无论是0或者是1,空缺位都用0补 & 二进制位进行&运算,只有1&1时结果是1,否则是0; 二进制位进行运算,只有00时结果是0,否则是1; ^ 任何相同二进制位进行 ^ 运算,结果是0;1 ^ 1 = 0, 0 ^ 0 = 0 不相同二进制位 ^ 运算结果是1。1 ^ 0=10 ^ 1=1
 

练习

1. 最有效率的方式算出2乘以8等于几? 2<<3

 

十六进制形式

 

三元运算符

格式:(条件表达式)?表达式1:表达式2;

  • 如果条件为true,运算后的结果是表达式1;
  • 如果条件为false,运算后的结果是表达式2;
 

获取两个数中大数。

 

流程控制


判断结构

格式:

 

特点:

条件表达式无论写成什么样子,只看最终的结果是否是true或者false

版权声明


相关文章:

  • 24岁零基础学java2024-10-27 18:34:06
  • Java基础类型存在引用吗2024-10-27 18:34:06
  • java基础案例教程任务八2024-10-27 18:34:06
  • java基础语法笔记2024-10-27 18:34:06
  • java基础看谁的好2024-10-27 18:34:06
  • c和java哪个更基础2024-10-27 18:34:06
  • 零基础女生适合学java吗2024-10-27 18:34:06
  • java基础532讲2024-10-27 18:34:06
  • java基础案例教程书电子版2024-10-27 18:34:06
  • java反射基础总结2024-10-27 18:34:06