Java学习笔记_01_Java基础篇

Java学习笔记_01_Java基础篇

  • markdown语法
    • 标题
    • 字体
    • 引用
    • 分割线
    • 图片
    • 超链接
    • 列表
    • 表格
    • 代码
  • 基本的DOS指令
  • Java的特性和优势
  • Java的三大版本
    • JavaSE
    • JavaME
    • JavaEE
  • JDK、JRE、JVM
    • JDK
    • JRE
    • JVM
  • 我的第一行代码
  • IDEA
    • IDEA的优化
  • Java基础语法
    • 1.注释、标识符、关键字
      • 1.1 注释
    • 2.数据类型
    • 3.数据类型
    • 4.变量、常量
    • 5.运算符
    • 6.包机制、JavaDoc

在这里推荐一位良心Up主(B站搜索狂神说Java) Java基础教程. 注意是免费的哦 不要上当了 有些盗视频的特意收费了
免费的良心up主免费的良心up主免费的良心up主、重要的事情嗦三遍

不要过于注重于概念表面

markdown语法

标题

  • #表示一级标题
  • ##表示二级标题
  • ###表示三级标题
  • 以此类推最高为六级标题

字体

  • 加粗:** 要加粗的字体 **

  • 斜体:* 字体*

  • 斜体+加粗:** * 字体 ***

  • 删除线:~~ 字体 ~~

引用

  • > 字体

分割线

  • —表示分割线

  • ***表示分割线

图片

  • ! [ ] ()

超链接

[超链接名称]+()

列表

有序列表 1.(空格后自动生成)

无序列表-(空格后自动生成)

表格

名字|性别|生日

–|--|–|

输入对应信息

代码

```表示代码块

至于这里为什么要简要说明markdown语法,主要原因就是为了做笔记和写博客方便,这两者的重要性就补过多赘述了

基本的DOS指令

  • 命令提示符win键+R 后输入cmd

  • cd    #目录切换
    dir   #查看当前目录下的所有文件
    cd .. #返回上一级目录
    cls   #清理屏幕
    exit  #退出终端
    ipconfig #查看当前的IP
    calc     #打开计算器
    mspaint  #打开画图板
    notepad  #打开记事本
    ping    #ping命令,测试网络是否正常
    md 文件夹名称 #创建文件夹
    cd 文件夹名称 #进入文件夹
    cd>文件名  #(先进入文件夹)在文件夹内创建文件
    del 文件名  #删除文件
    rd 文件夹名称 #删除文件夹(目录)
    

    这些dos命令在以后学习linux时可能会用到(目前大多数服务器是搭建在linux系统上)

Java的特性和优势

  • 简单性
  • 面向对象(万物皆对象)
  • 可移植性(write once,run anywhere)
  • 高性能
  • 分布式(处理TCP/IP协议十分简单)
  • 动态性(反射机制)
  • 多线程
  • 安全性(异常机制)
  • 健壮性(生态良好)

Java的三大版本

JavaSE

标准版,主要用于桌面程序、控制台开发(核心基础,为JavaEE做铺垫)

JavaME

嵌入式开发,手机、小家电开发(目前基本上没必要学习,仅做了解即可)

JavaEE

企业级开发,主要用于web端、服务器端开发

JDK、JRE、JVM

JDK

JDK:Java Development Kit(Java 开发工具包含了JRE和JVM)

如何卸载JDK(仅供参考)

  1. 删除Java的安装目录

  2. 删除JAVA_HOME

  3. 删除path下关于Java的目录

  4. 可以在命令提示输入java -version查看是否成功删除

如何安装JDK

其实安装步骤安装步骤和卸载差不多,刚好反过来而已,详细地在网上很容易搜到,我这里为了保证笔记地完整性就简单概述下

  1. 选择安装路径(建议在非c盘下创建个文件夹environment,方便查找管理环境变量)
  2. 右击此电脑,点击属性,点击高级系统配置
  3. 点击环境变量,新建(系统变量下)变量名为 JAVA_HOME(注意一定要大写),变量值即为JDK的安装路径
  4. (系统变量下)在path的原有基础上添加%JAVA_HOME%\bin(即为引用该路径下bin里面的工具,注意该指令为完整指令要用分号和其他完整指令隔开)以及%JAVA_HOME%\jre\bin
  5. 在命令行中输入java -version检查JDK是否安装完成

JRE

Java Runtime Environment(Java运行时环境包含JVM)

JVM

Java Virtual Machine(虚拟机,也是保证其可移植性的原因所在)

我的第一行代码

  • 这里先推荐个软件notepad++,第一行代码目前会用到该软件(该软件在设置语言后会对运行期间错误代码进行报错,当然主要是语法上的)后面会用到编译工具IDEA,这里就当是练手吧

  • 代码:

  • public class Hello(){
           
        public static void main(){
           
         System.out.print("Hello,World");   
        }
    }
  • 注意保存该代码时一定要重命名文件为文件名.java(如果看不见文件后缀名的话,可以win键+E打开资源管理器,然后点击右上角的查看,勾选上文件扩展名即可)

  • 在命令行跑起该代码:

    1. 找到文件保存路径,在该路径最前面加上cmd(要空一格和路径分开),按enter即可在命令行中进入该路径
    2. 输入javac 文件名.java(编译java代码)
    3. java 文件名(如果出错的话就自行分析下代码可能出错的可能)
  • 可能出现的错误

    1. 大小写错误(Java严格区分大小写,如System开头大写)
    2. 符号使用了中文(尽量在英文下输入代码,尽量使用英文)
    3. 文件名和类名保证一致,并且首字母大写(规范写法,后面会讲到大驼峰和小驼峰写法)
    4. 以上如果检查都没错的话,建议检查环境变量是否配置成功
  • Java的运行机制

    • 编译型

    • 解释型

      这两者最大的区别无非就是时机,以中英语言交流为例,前者(编译型)就是手里有一个翻译机器,后者请了个翻译官,显然前者可能会出错(运行速度块,多用于服务器搭建),后者代码就比较大(运行速度慢),java则是二者的结合(接近解释型)

    • 从上述我们便可以引入Java程序运行机制

    • 源文件(.java文件)经编译器compile后生成字节(.class文件)再通过解释器解释给操作系统,说明我们想要执行的操作

IDEA

之前用了文本文档来进行编码,但是显然用起来没有IDE方便,这里便推荐一款不错的IDE–IDEA,目前是业界最受欢迎的java开发环境。直接官网下载。傻瓜式安装。这里就不过多赘述了。

IDEA的优化

  • 显示工具条
    • View–>Appearance->Toolbar
  • 设置鼠标悬浮提示:鼠标悬浮显示提示文档信息
    • File–>settings–>General–>show quick documentation
  • 显示方法分隔符:方法分割线方便查代码
    • File–>settings–>General–>Appearance–>show method separators
  • 忽略大小写提示
    • File–>settings–>Editor–>General–>Code Completion
  • 自动导包
    • File–>settings–>Editor–>General–>Auto Import
  • 单行显示多个Tabs
    • File–>settings–>Editor–>General–>Editor Tabs
  • 设置字体
    • File–>settings–>Editor–>Font

Java基础语法

1.注释、标识符、关键字

1.1 注释

  • 注释即笔记,否则代码少的时候可能你会看懂,但是过多的时候可能你自己都读不懂,就别谈其他人了。所以一定要习惯写注释(注释并不会被执行)

  • 注释的几种格式

    1. 单行注释://表示单行注释

    2. 多行注释:/* 多行注释 */

    3. 文档注释:/**

      @Description

      ​ */

    注意,文本注释会被读取到,这里在JavaDoc里面会讲到

    这里有些有意思的注释,大家可以自行去百度上搜索有趣的注释

2.数据类型

  • 标识符

    Java所有的组成部分都需要名字。无论是类名、变量名以及方法名都被称为标识符

    • 关键字

      关键字在Java中相当于是已经被大佬们所开发占用的一系列名字,这里我们取名最好不要和大佬们闹冲突,以下为关键字

    • 标识符注意点

      • 所有的标识符都应该以字母,美元符或下划线开始
      • 首字母之后可以是字母,美元符或下划线或数字的任意组合
      • 关键字不可作为变量名或方法名
      • 标识符是大小写敏感
      • 可以用中文取名但不建议

3.数据类型

  • 强类型语言

    Java是一种强类型语言。即使用变量要严守规范,所有变量都必须先定义再使用

  • 弱类型语言

    有强便有弱,当然两者是相对的。弱类型语言使用变量时可以不严守规范(如JS),当然这里这的是我们使用时可以不用严守规范,但是编译器肯定有自己的一套规范

  • 两大数据类型

    • 基本类型

Java学习笔记_01_Java基础篇_第1张图片

在这里按照优先级,排列出了基本类型,其范围大小可以自行查看,当然在后面也会慢慢熟悉的

  • 基本类型拓展

    • 书写规范

      • long一般要在数字后面写上L(最好大写)表示long型
      • float一般要在数字后面写上f表示float型
    • 整数拓展
      即一些进制的表示,二进制0b开头 十进制 八进制0开头 十六进制0x开头

    • 浮点数拓展

      • 这里先引入一个问题 银行业务的怎么怎么表示?

        //诡异的例子1
        float f = 0.1f;
        double d = 1.0 / 10;
        System.out.println(f);
        System.out.println(d);
        System.out.println(f == d);//false
        float d1=2313131313131313131f;
        float d2=d1+1;
        System.out.println(d1 == d2);//true

      显然两个的输出结果刚好错过了正确答案,这里是因为float和double有舍入误差

      • 因此在java中定义了BigDecimal 数学工具类来进行银行业务
    • 字符拓展
      所有的字符本质还是数字

      //骚操作  后续会通过底层来分析描述到
      System.out.println("============================================================");
      String sa=new String("Hello world");
      String sb=new String("Hello world");
      System.out.println(sa == sb);
      
      String sc="Hello world";
      String sd="Hello world";
      System.out.println(sc == sd);
      //这个需要从内存分析
      //后面会详细描述
      
  • 引用类型

    • 除了基本类型就是引用类型了
  • 数据类型拓展

  • 类型转换

    • 运算中,不同类型的数据先转化为同一类型,然后进行运算(从容量低到高)

    • 强制转换
      高–>低

    • 自动转换

      低–>高

    • 类型转换注意点

      1不能对布尔值进行转换
      2.不能把对象类型转换为不相干的类型
      3.转换的时候可能存在内存溢出或者精度问题
      
      //操作比较大的数的时候,注意溢出问题
      //类型转换的一个经典例子
      //JDK新特性,数字之间可以用下划线进行分割,且下划线不会被输出
      int money=10_0000_0000;
      int years=20;
      int total =money*years;
      long total2=money*years;//默认是int,之后再转换为long,但是转换之前就存在问题
      long total3=money*(long)years;//正确做法,先转换为long
      System.out.println(money);
      System.out.println(total);
      System.out.println(total2);
      System.out.println(total3);

4.变量、常量

  • 变量:可以变化的量

    • 强类型语言,每个变量都必须申明其类型,其要素包括变量名、变量类型和作用域

    • 变量作用域

      • 类变量 :定义在类里面,且有static修饰(在该类中都可以使用)

      • 实例变量:定义在类里面,但没有static修饰,从属于对象;如果不自行初始化,这个类型的默认值是 0 0.0;布尔值:默认是false;了基本类型,其余的默认值都是null(使用该方法要对象实例化)

      • 局部变量:定义在方法里面的变量,必须声明和初始胡值(只能在方法中使用)

      • 代码展示

      • public class Demo06 {
                   
            static int allClicks=0; //类变量
            String name="lee";//实例变量
            void method(){
                   
                int i=0;//局部变量
            }
        }
  • 常量:初始化后不可再改动的值,用final来修饰

    • 常量名一般使用大写字符
    • 修饰符,不存在先后顺序
  • 变量的命名规范

    1. 所有变量、方法、类名:见名知意
    2. 类成员变量:小驼峰原则
    3. 局部变量:小驼峰
    4. 常量:大写字符和下划线
    5. 类名:大驼峰
    6. 方法名:小驼峰

5.运算符

  • 算术运算符:+、-、*、/、%、++、–

    • //字符串连接符   即+左右出现String类型就会转换为String类型
      System.out.println("" + a + b);//输出为1020
      System.out.println(a + b + "");//输出为20
  • 赋值运算符:=

  • 关系运算符:>、<、>=、<=、==、!=、instanceof

  • 逻辑运算符:&&、||、!

    • 代码演示&&的特点

    • //&&短路运算
      int c=5;
      boolean d=(c<4)&&(c++<4);
      //巧妙运算自增自减运算符来检验&&是否为短路运算
      //短路运算:前面的判断若为假,直接返回结果false,不运算后面的判断
      //只需要输出下c,如果为5则说明是短路,如果是6则非短路运算
      System.out.println(c);//c=5
      System.out.println(d);//false
  • 位运算符:&、|、^、~、>>、<<、>>>(了解即可)

    • 面试题拓展:如何运算2*8最快

    • 代码展示

    • //<<  >>  效率极高!!!
      // << *2
      // >> /2
      System.out.println(2 << 3);
  • 条件运算符:? :

  • 赋值运算符拓展:+=、-=、*=、/=

  • 当然更多的运算我们可以用Math等工具类来运算

6.包机制、JavaDoc

  • 包机制

    • 包的本质就是文件夹
    • 规范:一般利用域名倒置作为包名如www.baidu.com(建包就是com->baidu->www)
    • 想要顶层分层显示,就要去点compact middle package(show options menu里面)
    • 导入的包(import)必须在package下,Ctrl+Enter可以自动导包
    • 可以用*通配符导入该包内所有的类
  • JavaDoc

    • 用来生成API文档

    • 代码展示(使用命令行生成JavaDoc文档)

      1. Java代码

        package com.lee.base;
        
        /**
         * @author lee
         * @version 1.0
         * @since 1.8
         */
        public class Doc {
                   
            String name;
        
            /**
             * @author lee
             * @param name
             * @return
             * @throws Exception
             */
            public String test(String name) throws Exception{
                   
                return name;
            }
        }
      2. 找到该文件(右键->show in explorer)

      3. 进入该文件夹的命令行

      4. 输入指令

        javadoc -encoding UTF-8 -charset UTF-8 Doc.java//设置编码格式防止乱码
    • 代码展示(使用IDEA生成JavaDoc文档)

      1. Tools->Generate JavaDoc
      2. 设置编码格式和输出位置即可(注意JDK版本一定要和当前的相对应)

e
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
```

2. 找到该文件(右键->show in explorer)

3. 进入该文件夹的命令行

4. 输入指令 

   ~~~c
   javadoc -encoding UTF-8 -charset UTF-8 Doc.java//设置编码格式防止乱码
   ~~~
  • 代码展示(使用IDEA生成JavaDoc文档)

    1. Tools->Generate JavaDoc
    2. 设置编码格式和输出位置即可(注意JDK版本一定要和当前的相对应)

你可能感兴趣的:(myJava)