栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaSE

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaSE

一、Java介绍 1、Java三大平台
  • Java SE:java标准版,用于桌面应用的开发,是其他两个版本的基础

  • java EE:Java企业版,用于Web方向的网站开发。

    网页:英语数据展示

    网站:网页+后台服务器

  • java ME:Java小型版,用于嵌入式消费类电子设备

2、Java的跨平台
  • 跨平台

    Java 程序可以在任意操作系统上运行。

  • 原理

    在需要运行 Java 应用程序的操作系统上,安装有与操作系统对应的 JVM(Java virtual Machine, Java虚拟机)

  • JVM 虚拟机本身不允许跨平台,允许跨平台的是 Java 程序

3、JDK、JRE、JVM
  • JVM:Java虚拟机,Java程序运行在虚拟机中。
  • JRE:Java运行环境,内部包含JVM虚拟机、Java核心类库。
  • JDK:Java开发工具包,内部包含JRE、常用开发工具包(javac 编译工具、java 运行工具)。

jdk目录:

4、Java的两种核心机制
  • Java虚拟机:

    JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器;

    JVM虚拟机机制屏蔽了底层运行平台的差别,实现“一次编译,到处运行”;

  • 垃圾回收机制:

    自动进行,程序员无法精确控制和干预。

5、编译、运行

.java源文件——>javac编译器——>.class字节码文件——>java运行

//public 强制文件名和类名一致
public class HelloWorld{ 
    //主方法,程序入口
    public static void main(String[] args){ 
        System.out.println("HelloWorld");
    }
}

​ 一个源文件中最多只能有一个public类。其它类的个数不限,如果源文件包含 一个public类,则文件名必须按该类名命名。

二、Java基础语法 1、关键字和保留字
  • 关键字:Java中被赋予特定涵义、用作专门用途的字符串(单词),所有单词均为小写;
abstractassertbooleanbreakbyte
casecatchcharclass
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile
  • 保留字:现在未使用,但以后可能会使用的字符串;goto,const;
2、字面量(常量)
  • 整数常量:所有整数

  • 小数常量:所有小数

  • 字符常量:‘a’, ’ ’

  • 字符串常量:“hello”

  • 布尔常量:true,false

  • 空:null

3、注释

​ 对程序的注解说明。

1)单行注释

格式:

//注释内容

2)多行注释

格式:

  • 单行注释和多行注释,被注释的文字不会被 Java虚拟机解释执行。
  • 多行注释里面不允许有多行注释嵌套。
3)文档注释

格式:

注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形 式体现的该程序的说明文档。

操作方式:

javac -d mydoc -author -version HelloWorld.java

4、变量
  • 概念:内存中的存储区域,该区域内的数据可以在一定类型范围内不断变化;

    变量是程序中最基本的存储单元;

  • 作用:在内存中保存数据

  • 声明和赋值:数据类型 变量名 = 初始值;

  • 注意事项:

    1)变量必须先声明,才能使用;

    2)使用变量名来访问区域内的数据;

    3)作用域:定义所在的大括号内;

    4)变量只在作用域内有效;

    5)同一个作用域内,不能定义重名的变量;

1)变量的分类

public class Variable {
    
    static int allClicks = 0;    // 类变量
    String str = "hello world";  // 实例变量
    
    public void method(){
 
    	int i = 0;  // 局部变量 0
    }
}
局部变量

在方法、构造器或者是语句块中定义,声明和初始化都在其中,方法结束后变量自动销毁。

  • 访问修饰符不能用于局部变量;

  • 局部变量只在声明它的方法、构造方法、或者是语句块中可见;

  • 局部变量是在栈上分配的;

  • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化;

    package com.runoob.test;
     
    public class Test{ 
       public void pupAge(){
           //局部变量age的作用域就限定在pupAge方法中
           //必须经过初始化
          int age = 0;
          age = age + 7;
          System.out.println("小狗的年龄是: " + age);
       }
       
       public static void main(String[] args){
          Test test = new Test();
          test.pupAge();
       }
    }
    
成员变量

定义在类中、方法体之外,在创建对象的时候实例化。在堆上分配内存;

实例变量

  • 对象被实例化之后,实例变量的值就跟着确定;

  • 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;

  • 实例变量的值应该至少被一个方法、构造方法或者语句块引用。使得外部可以通过这些方式获取实例变量信息;

  • 实例变量的声明可以在使用前也可以在使用后;

  • 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;

  • 访问修饰符可以修饰实例变量;

  • 实例变量具有默认值。数值类型的默认值是0,布尔类型的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;

  • 实例变量可以通过变量名访问;

  • 在静态方法以及其他类中,使用完全限定名访问;

    import java.io.*;
    public class Employee{
        
        //访问修饰符可以修饰实例变量
       // public对子类可见
       public String name;
       // private仅在该类可见
       private double salary;
        
       //在构造器中对name赋值
       public Employee (String empName){
          name = empName;
       }
       //设定salary的值
       public void setSalary(double empSal){
          salary = empSal;
       }  
       // 打印信息
       public void printEmp(){
          System.out.println("名字 : " + name );
          System.out.println("薪水 : " + salary);
       }
       
       public static void main(String[] args){
          Employee empOne = new Employee("RUNOOB");
           //静态方法中使用完全限定名访问实例变量
          empOne.setSalary(1000.0);
          empOne.printEmp();
       }
    }
    
类变量(静态变量)

声明在类中、方法体之外,声明为static类型。

  • 一个类无论创建了多少对象,类只拥有类变量的一份拷贝;
  • 静态变量除了被声明为常量外很少使用,静态变量是指
5、数据类型

​ 包括:基本数据类型,引用数据类型

1)基本数据类型

​ 7种,字符串String类型属于引用数据类型。

整数类型
  • byte:占1个字节的内存

  • short:占2字节的内

  • int:占4字节的内存

  • long:占8字节的内存

    1、bit和byte

    ​ bit是计算机中最小的存储单位;byte是计算机基本存储单元。

    2、默认值:

    ​ Java中的整型常量默认为int,声明long型常量须后加 ‘l’ 或 ’L‘。

    long num = 123L;
    long d  = 1033888854444444L;
    long d  = 1033888854444444;//报错,整数太大
    
浮点类型

​ 单精度float, 双精度double(默认)

  • float:占4字节的内存,7位有效数字

  • double:占8字节的内存,15~16位有效数字

    1、浮点型常量的两种表示形式:

    ​ 十进制数:5.12 5.120.f .512(必须有小数点)

    ​ 科学计数法:5.12e2 512E2 100E-2

    2、默认值:

    ​ Java 的浮点型常量默认为double型,声明float型常量,须后加 ‘f’ 或 ‘F’。

    float num = 12.3f;
    float d  = 1033.4566676;//报错,可能会丢失精度
    float d  = 1033.4566676f;//输出1033.4567,精度损失
    
字符类型

​ char:取值范围 0~65535

  • char:占2字节的内存,使用单引号

    1、ASCII码

    ​ A 65, a 97

    2、Unicode

    • Unicode:一种编码,将世界上所有的符号都纳入其中。每个符号都给予一个独一无二的编码,使用Unicode没有乱码的问题;
    • Java中所有字符都使用Unicode来编码,故一个字符可以存储一个 字母、一个汉字、或其他书面语的一个字符。

    3、UFT-8

    • 使用最广的Unicode实现方式,可以使用1~6个字节来表示一个符号;
    • 对于单字节的编码,最高位为0,其余7位用来对字符进行编码;
    • 对于多字节的编码,如果包含n个字节,那么第一个字节的前n位为1,第一个字节的第n+1位为0,该字节的剩余各位用来对字符进行编码。其余字节的最高两位都为10,剩余6位对字符进行编码。

    4、转义字符

    转义字符含义
    b退格,将当前位置移到前一列
    n换行
    r回车
    t制表
    "双引号
    单引号
    \反斜线
    空字符(null)
布尔类型
  • boolean:占1字节的内存

  • 取值:true,false

    用来判断逻辑条件,一般用于流程控制。

2)基本数据类型转换 自动类型转换(隐式转换)

​ 容量小的类型自动转换为容量大的数据类型。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fGHuSZ2I-1633883099825)(E:files笔记图片image-20211010114241603.png)]

1、byte, short, char 不会相互转换,它们三者在计算时首先转换为int类型;

int a  = 10;
char b = 'a';
System.out.println(a + b);//输出107

2、因为浮点型的存储更省空间,float比long的容量要大;

3、boolean类型不能和其它数据类型运算;

4、当把任何基本数据类型的值和字符串(String)进行连接运算时,基本数据类型自动转化为String类型。

强制转换

1、将容量大的数据类型转为容量小的数据类型,需要强制转换符 ”()“,可能造成精度降低或溢出。

//强转
byte b1 = 1;
byte b2 = 2;
byte b = (byte)(b1 + b2);

//Java的常量优化机制
byte b = 3 + 4; 

int a = (int)1345463434.54;//精度损失,输出1345463434
int a = (int)13454634346.54;//溢出,任意输出

2、通过基本类型对应的包装类则可 以实现把字符串转换成基本类型。

String a = “43”; 
int i = Integer.parseInt(a);
6、标识符

​ Java中对各种变量、方法、类等要素命名时使用的字符序列称为标识符。

1)标识符命名规则
  • 由26个英文字母大小写,0-9,下划线或 美元符号 $ 组成;
  • 数字不可以开头;
  • 区分大小写;
  • 不限制长度;

2)标识符命名规范

  • 包名:所有字母小写 xxxyyy
  • 类名、接口名:所有单词的首字母大写 XxxYyy
  • 变量名、方法名:第二个单词开始,每个单词的首字母大写 xxxYyy
  • 常量名:所有字母大写 XXX_YYY
7、运算符 1)算数运算符
符号含义
+
-
*
/除(在没有浮点数参与的情况下只保留整数部分)
%取模(取余)
++自增
自减
+字符串连接
  • 注意事项:

    1、字符串连接

    System.out.println("年龄为:"+23+1);//输出为“年龄为:231”
    

    2、取模

    • 如果对负数取模,可以把模数的负号忽略,如:5 % -2 = 1;

    • 被模数的负号不可忽略,如:-5 % 2 = -1,-5 % -2 = -1;

    3、自增、自减

    • 前缀自增自减:先进行自增或自减,再进行表达式运算;

    • 后缀自增自减:先进行表达式运算,在进行自增或自减;

      int a = 10;
      int b = (++a)+(a++)+a*10;
      System.out.println(a);//12
      System.out.println(b);//142
      
2)赋值运算符
符号作用说明
=赋值a=10,将10赋值给变量a
+=加后赋值a+=b,将a + b的值给a
-=减后赋值a-=b,将a - b的值给a
*=乘后赋值a*=b,将a × b的值给a
/=除后赋值a/=b,将a ÷ b的商给a
%=取模后赋值a%=b,将a ÷ b的余数给a
3)逻辑运算符
符号介绍说明
&逻辑与并且, 遇 false 则 false
|逻辑或或者,遇 true 则 true
!逻辑非取反
^逻辑异或相同为 false,不同为 true
&&短路与并且
||短路或或者
  • 注意事项:

    1、& 和 && 的区别

    • 逻辑与 &:无论左边是true还是false,右边都要执行;
    • 短路与 &&:左边是true,右边才会执行;

    2、| 和 || 的区别

    • 逻辑或 |:无论左边是true还是false,右边都会执行;
    • 短语或 ||:左边是false,右边才会执行
4)关系运算符
符号说明
==a==b,判断a和b的值是否相等,成立为true,不成立为false
!=a!=b,判断a和b的值是否不相等,成立为true,不成立为false
>a>b,判断a是否大于b,成立为true,不成立为false
>=a>=b,判断a是否大于等于b,成立为true,不成立为false
<a
<=a<=b,判断a是否小于等于b,成立为true,不成立为false
  • 关系运算符的结果都是boolean类型,要么是true,要么是false
5)三元运算符
  • 格式

    条件表达式 ? 表达式1 : 表达式2

    //求最大值
    int tem = a > b ? a : b;
    int max = tem > c ? tem : c ;
    
6)运算符优先级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-II3TDcwr-1633883099828)(E:files笔记图片image-20211010153326075.png)]

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5EMawwxK-1633883099829)(E:files笔记图片image-20211010163946337.png)]

数字越小,优先级越高。

8、程序流程控制

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

1)三种分支结构

顺序结构、分支结构、循环结构

  • 顺序结构

    • 程序从上而下逐行执行,中间没有任何的跳转和判断
  • 分支结构

    • 根据条件,选择性地执行某段程序

    • 包括 if…else 和 switch…case 两种

      if…else 格式:

      if (判断条件1) {
      
      语句体1; 
      
      } else if (判断条件2) {
      
      语句体2; 
      
      } 
      
      ...
      
      else {
      
      语句体n+1;
      
      }   
      

      switch…case格式

      switch(表达式) {
       case 值1:
      	语句体1;
      	break;
       case 值2:
      	语句体2;
      	break;
       …
       default:	
      	语句体n+1;
      	break;
      }
      
      • break语句使程序执行完一个case分支后跳出switch语句块。如果没有break,程序会顺序执行带switch结尾;

      • switch中表达式的值必须是:byte, short, char, int, 枚举,String;

      • case语句后面的值只能是常量,且不可重复;

      • default语句是可选的,且位置是灵活的;

  • 循环结构

    • 根据循环条件,重复性地执行某段代码

      • while

        格式:

        ①初始化

        while(②循环条件){

        ​ ③循环体部分

        ​ ④迭代部分

        }

        • 循环条件是布尔表达式,表达式的值为true时循环体被执行,如果是false,退出循环;

        • 迭代部分一定要写,否则变成死循环

          int result = 0;
          int i = 1;
          while (i <= 100) {
          	result += i;
          	i++;
          }
          
          
      • for

        格式:

        for(①初始化;②循环条件;③迭代部分){

        ​ ④循环体

        }

        • 初始化部分可以声明多个变量,使用逗号隔开;

        • 循环条件部分为boolean类型表达式,当值为false时,退出循环;

        • 迭代部分可以有多个变量更新,使用逗号隔开;

          int x = 1;
          for (int a = 0, b = 0; a + b < 10; a++, b++) {
          	x++;
          }
          
      • do…while

        格式:

        ①初始化部分

        do{

        ​ ③循环体

        ​ ④迭代

        }while(②循环条件)

        • do…while循环至少会被执行一次
2)break、continue 7、类和对象 1)Java是面向对象的

​ 面向对象的三大特征

  • 封装
  • 继承
  • 多态

​ **面向过程:**强调的是功能行为,以函数为最小单位,考虑怎么做。

​ **面向过程:**强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

2)类和对象的概念

​ 类是一个模板,它描述一类对象的行为和状态,是抽象的。

​ 对象是类的一个实例,有状态有行为,也被称为实例。

3)

一个类可以包含以下类型变量:

局部变量:在方法、构造方法

6、Debug程序调试工具

​ 用于查看程序的执行流程,也可以用于追踪程序过程来调试程序。

​ 添加断点:

​ frames:可以看到程序中执行的方法;

​ Variables:可以看到变量的变化过程;

7、Scanner

​ 从键盘输入数据。

1、导包

import java.util.scanner;

2、创建对象

Scanner sc = new Scanner(System.in);

3、接收

int age = sc.nextInt();//整数
String name = sc.next();//字符串
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/314491.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号