Java——简介和基础语法

本文详细介绍了Java语言的起源、广泛应用、核心特性和优势,包括面向对象、健壮性、跨平台性,以及JDK、JRE和JVM的关系。涵盖了Java开发环境搭建、HelloWorld示例、编译机制、IDEA使用、基础语法和类型转换等内容。
摘要由CSDN通过智能技术生成

JavaSE(1)

前言

  • 詹姆斯.高斯林就是Java语言的语言之父。
  • Java是SUN 1995年推出的一门高级编程语言。

1. Java用途广泛

  • 银行系统,支付系统,政企信息系统,大数据平台,网站后台,SaaS云,手机APP,云系统后台,电商系统,桌面工具

Java/c python

2.Java特性和优势

  • 使用人多
  1. 简单性
  2. 面向对象 万物皆对象
  3. 可移植性
  4. 高性能
  5. 分布式
  6. 动态性
  7. 多线程
  8. 安全性
  9. 健壮性

解释Java三个特性:

(1)特点一:面向对象。
1、俩个基本概念:类、对象。
2、三大特性:封装、继承、多态。
(2)特点二:健壮性。
吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。
(3)特点三:跨平台性。
1、跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Wrrite once,Run Anywhere”
2、原理:只需在需要运行Java应用程序的操作系统上,先安装一个Java虚拟机(Jvm Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。

思考:Java为什么能成功?

3.Java三大版本

  • JavaSE:标准版 (桌面程序,控制台开发…)
  • JavaME:嵌入式开发 (手机,小家电…)知道即可,使用少
  • JavaEE:E企业级开发(web端,服务器开发…)广泛

4.JDK、JRE、JVM

  • JDK: Java Development Kit
  • JRE: Java Runtime Environment
  • JVM: Java Virtual Machine

JVM解释:

(1)JVM称为Java虚拟机,在Java平台有着举足轻重的地位。
(2)JVM可以理解为Java编辑器和操作系统间的虚拟处理器。
(3)JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。

注:JDK包含着JRE和JVM

5.Java开发环境搭建

  • JDK下载与安装 Oracle收购了

    配置环境变量

    JDK的安装:

    (1) 百度 搜索JDK8 ,找到下载地址,同意协议,下载电脑对应的版本,双击安装JDK,傻瓜式安装,下一步即可。
    (2)记住安装路径,配置环境变量
    (3)配置方法:
    1、我的电脑(计算机) 右键——属性——高级系统配置——环境变量。
    2、编程Path环境变量,在变量值开始处加上JDK所在目录,后面用“;”和其他分隔开。(也可以新建一个变量名Java_HOME,变量值为JDK路径)
    3、打开DOS命令行,任意目录下敲入Javac。

    ​ 4、测试JDK是否安装成功:打开cmd,输入Java -version

JDK的卸载:

(1)删除Java安装目录

(2)删除Java_HOME

(3)删除path下关于Java目录
  • JDK目录介绍

  • HelloWord及简单语法规则

  • Notepad++ 安装与使用(使用于初学者,易牢记代码)

6.第一个Java程序 HelloWord

public class HelloWord {
    public static void main(String[] args) {
        System.out.println("HelloWord");
    }
}

helloword

  • 打开cmd,进入到HelloWord所在路径输入javac HelloWord.java 编译为.class文件,在输入java HelloWord 也可以运行

注:可能遇到的情况:1.java是大小写敏感的2.尽量使用英文3.文件名和类名必须保持一致,并且首字母大写4.符号使用了中文

7.Java程序运行机制

  • 编译型
  • 解释型

java程序运行机制图:

java程序运行机制图

8.IDEA安装

  1. 什么是IDEA?
    • 集成开发环境
  2. IDEA介绍
    • IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gitsvn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。

9.Java基础语法

  1. 注释:

    • 书写注释一种非常好的习惯,平时写代码一定要注意规范
  2. Java三种注释:

    • 单行注释:// 注释一行文字
    • 多行注释:/* */ 注释多行文字
    • 文档注释:/** */
    //单行注释
    /*多行
      注释
    */
    /**文档注释*/
    
  3. 标识符:

    • 关键字:(50个)

    (1)用于定义数据类型的关键字。
    class、interface、enum、byte、short、int 、long、float、double、char、boolean、void
    (2)用于定义流程控制的关键字。
    if、else、switch、case、default、while、do、for、break、continue、return
    (3)保留关键字。
    const、goto
    (4)用于定义访问权限修饰的关键字。
    private、protected、public
    (5)用于定义类、函数、变量修饰的关键字。
    abstract、final、static、synchronized
    (6)用于定义类与类之间的关键字。
    extends、implements
    (7)用与定义建立实例及引用实例的关键字。
    new、this、super、instanceof
    (8)用于异常处理的关键字。
    try、catch、finally、throw、throws
    (9)用于包的关键字
    package、import
    (10)其他修饰符关键字
    native、strictfp、transient、volatile、assert

  4. 标识符注意点:

  • 所有的标识符都应该从字母(AZ或者az),美元($),下划线(_)开始
  • 首字符之后可以是字母(AZ或者az),美元($),下划线(_)或数字的任何字符组合
  • 不能使用关键字作为变量名或方法名
  • 标识符是大小写敏感的

例子:

  • 合法标识符举例:age,$salary,_value…
  • 非法标识符聚类:123abc,-salary,#abc…

可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

  1. 数据类型

    • Java 强类型语言:要求变量的使用要严格符合规范,所有变量都必须先定义后才能使用

      特点:安全性提升,速度下降

    • 弱类型语言:可以不符合规范

      特点:安全性下降,速度提升

java数据类型图

long num=30L;//long类型要在数字后加个L,也可以不加(推荐加)
float num1=50.1F;//float类型要在数字后面加个F,也可以不加(推荐加)
//String不是关键字,是类

10.什么是字节

  • 位:(bit)是计算机内部数据储存的最小单位,11001100是一个二进制数

  • 字节:(byte)是计算机数据处理的基本单位,习惯上用大写B来表示

    1B(byte,字节)=8bit(位)

  • 字符是指计算机使用的字母,数字和符号

    1bit表示1位,1Byte表示一个字节,1B=8b

    1024B=1KB,1024KB=1M,1024M=1G

思考:电脑的32位和64位的区别是什么呢?

11.扩展

  1. 整数扩展

    • 进制 二进制B 八进制O 十进制D 十六进制H

      int i=10;
      int i1=010;
      int i2=0x10;
      System.out.println(i);
      System.out.println(i1);
      System.out.println(i2);
      

整数扩展

  1. 浮点数扩展

    1. 银行业务怎么表示?钱
    2. BigDecimal数字工具类
    • float 有限 离散 舍入误差 大约 接近但不等于

    • double

    • 最好避免是由浮点数进行比较

    float f=0.1F;
    double d=1.0/10;
    System.out.println(f==d);
    float d1=2437348343F;
    float d2=d1+1;
    System.out.println(d1==d2);
    

浮点数扩展图

  1. 字符扩展

    char c1='a';
    
    
    
    char c2='中';
    System.out.println(c1);
    System.out.println((int)c1);
    System.out.println(c2);
    System.out.println((int)c2);
    

    字符扩展

    • 所有的字符本质还是数字

    • 编码 Unicode表:(a=97,A=65)2字节0~65536 Excel 2^16=65536

    • U0000 UFFFF

      char c3='\u0061';
      System.out.println(c3);
      

    字符扩展2

    1. 转义字符
      • \t 制表符
      • \n 换行
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);

字符扩展3

对象 从内存分析

  1. 布尔值扩展

    boolean flag=true;
    if (flag==true){//新手写法
        
    }
    if (flag){//老手写法
    
    }
    //less is More! 代码要精简易懂
    

12.类型转换

类型转换

  • 运算中,不同类型的数据先转化为同一类型,然后进行运算

  • 强制类型转换:(类型)变量名 高——低

  • 自动类型转换: 低——高

  • 注意点:

    1. 不能对布尔值进行转换
    2. 不能把对象类型转换为不相干的类型
    3. 在把高容量转换到低容量的时候,强制转换
    4. 转换的时候可能存在内存溢出或者精度问题
  • 操作比较大的数的时候,注意溢出问题

  • JDK7新特性,数字之间可以用下划线分割

    int money=10_0000_0000;
    int years=20;
    int total=money*years;//计算的时候已经溢出了
    long total1=money*years;//默认是int,转换之气那已经存在问题了
    long total2=money*((long)years);//先把一个数转换为long
    System.out.println(total);
    System.out.println(total1);
    System.out.println(total2);
    

    类型转换2

13.变量

  1. 数据类型 变量名=值;

    int years=20;
    
    • 注意:
    1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型
    2. 变量名必须是合法的标识符
    3. 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
  2. 变量作用域

    • 类变量,实例变量,局部变量

      public class Variable {
          static int allClicks=0;//类变量 static
          String str="hello world";//实例变量  从属于对象,如果不自行初始化,这个类型的默认值0,0.0。布尔值:默认值是false。除了基本类型,其余的默认都是null
      
          public void method(){
              int i=0;//局部变量
          }
      }
      

14.常量

  1. 变量

    • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值

    • 所谓的常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变

    • final 常量名=值;

    final double PI=3.14;
    
    • 常量名一般使用大写字符

    • static final //修饰符,不存在先后顺序

  2. 变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则。例子:monthSalary,lastName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线。例子:MAX_VALUE
  • 类名:首字母大写和驼峰原则。例子:Man,GoodMan
  • 方法名:首字母小写和驼峰原则。例子:run(),runRun()

15.运算符

  1. 运算符

    • 算术运算符:+,-,*,/,%(取余,模运算),++(自增),–(自减)
    • 赋值运算符:=
    • 关系运算符:>,<,>=,<=,==,!=,instanceof
    • 逻辑运算符:&&,||,!
    • 位运算符:&,|,^,~,>>,<<,>>>(了解即可)
    • 条件运算符:? :(三元运算符)
    • 扩展赋值运算符:+=,-=,*=,/=,

    ctrl+D,把鼠标拖到下一行 实现复制当前行到下一行

  2. 实例

    • ++ –
    //++ 自增 --自减  一元运算符
            int a = 3;
            int b = a++;//执行玩这行代码后,先给b赋值,再自增
            int c = ++a;//执行完这行代码前,先自增,再给b复制
            System.out.println(a);
            System.out.println(b);
            System.out.println(c);
    

    运算符

    • 幂运算

      1. 2^3 三个2相乘 Java没有^,有Math

        double pow=Math.pow(2,3);
        System.out.println(pow);
        

        很多运算,我们会使用一些工具类来操作!

    • 逻辑运算符

      • && 与(and) || 或 (or) ! 非(取反)

      • 逻辑运算符 :两个变量都为真,结果才是true

      • 逻辑或运算:两个变量有一个为真,则结果才为true

      • 逻辑非运算:如果是真,则变为甲;如果是假,则变为真

      • 短路运算

        int d=5;
        boolean e=(d<4)&&(d++<4);
        System.out.println(e);
        

 短路运算

注意:逻辑与运算&& 如果一上来发现前面一个是加,就不用看后面,结果为false

  • 位运算符

    /*
            A   = 0011 1100
            B   = 0000 1101
            A&B = 0000 1100  与,两个对应都为1,结果才为1
            A|B = 0011 1101  或,有一个为1,结果才为1
            A^B = 0011 0001  取余,两个对应的一样,结果为0,否则为1
            ~B  = 1111 0010  取反,与对应的B完全不一样
            */
    //2*8=16  四个2相乘 ,2*8怎么算最快,位运算符
    //右移  <<   代表*2
    //左移  >>   代表/2  效率极高
    System.out.println(2<<3);//结果为16
    
  • 扩展赋值运算符

    int f=16;
    int h=8;
    f+=h;//f=f+h
    System.out.println(f);//24
    f-=h;//f=f-h
    System.out.println(f);//16
    f*=h;//f=f*h
    System.out.println(f);//128
    f/=h;//f=f/h
    System.out.println(f);//16
    
  • 字符串连接 +,String String出现在前面,结果为字符串拼接;后面,怎为运算

    int k=10;
    int l=20;
    System.out.println(""+k+l);//1020
    System.out.println(k+l+"");//30
    

    思考:如果出现在中间呢?(k+""+l)

    System.out.println(k+""+l);//1020
    
  • 三元运算符

    格式:x?y:z;

    x为条件,如果x为true,则结果为y,否则为z

    boolean y=  (10>20) ? true:false;
    System.out.println(y);//false
    

16.包机制

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间

  • 语法格式:

    package pkg1{·pkg2{·pkg3…}}

  • 一般利用公司域名倒置作为包名,例:www.baidu.com 为com包下baidu包下www

  • 为了能使用某一个包的成员,导入该包,用“import”语句完成此功能

    import java.util.List;
    

注:.*,导入这个包下所有的类!

17.JavaDoc

  • JavaDoc命令是用来生产自己API文档的
  • 参数信息:
    • @author作者名
    • @version版本号
    • @since指明需要最早使用的JDK版本
    • @param参数名
    • @return返回情况
    • @throws异常抛出情况
  • cmd ——javadoc -encoding UTF-8 -charset UTF-8 Doc.java 生成文档
  • 作业:学会查找使用IDEA生成JavaDoc文档! 面向百度编程!
  • Javadoc 参数 Java文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值