java基础

java基础知识图解

软件开发

软件开发

软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件和应用软件之分。

人机交互方式

图形化界面(Graphical User Interface GUI):这种方式简单直观,使用者易于接受,容易上手操作。

命令行方式(Command Line Interface CLI):需要有一个控制台,输入特定的指令,让计算机完成一些操作。

应用程序=算法+数据结构

命令行

常用的DOS命令

dir : 列出当前目录下的文件以及文件夹

md : 创建目录

rd : 删除目录

cd : 进入指定目录

cd.. : 退回到上一级目录

cd: 退回到根目录

del : 删除文件

exit : 退出 dos 命令行

补充:echo javase>1.doc 创建新文件

常用快捷键

← →:移动光标

↑ ↓:调阅历史操作命令

Delete和Backspace:删除字符

java语言

java版本历史迭代

SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。

1991年 Green项目,开发语言最初命名为Oak (橡树)

1996年,发布 JDK 1.0,约8.3万个网页应用Java技术来制作

2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0

2009年,Oracle公司收购SUN,交易价格74亿美元

2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本

Java技术体系平台

java基础

Java在各领域的应用

企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电信、交通、电子商务等。

Android平台应用:Android应用程序使用Java语言编写。Android开发水平的高低很大程度上取决于Java语言核心能力是否扎实。

大数据平台开发:各类框架有Hadoop,spark,storm,flink等,就这类技术生态圈来讲,还有各种中间件如flume,kafka,sqoop等等 ,这些框架以及工具大多数是用Java编写而成,但提供诸如Java,scala,Python,R等各种语言API供编程。

移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手机、PDA、机顶盒、汽车通信设备等。

Java语言运行机制及运行过程

Java语言的特点

java基础

跨平台性

java基础

Java两种核心机制

Java虚拟机 (Java Virtal Machine)

垃圾收集机制 (Garbage Collection)

核心机制—Java虚拟机

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

对于不同的平台,有不同的虚拟机。

只有某平台提供了对应的java虚拟机,java程序才可在此平台运行

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

核心机制—垃圾回收

不再使用的内存空间应回收—— 垃圾回收。

1、在C/C++等语言中,由程序员负责回收无用内存。

2、Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。

垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。

Java程序还会出现内存泄漏和内存溢出问题吗?Yes!

Java语言的环境搭建

什么是JDK,JRE

java基础

java基础

下载并安装JDK

官方网址:www.oracle.com

配置环境变量

java基础

开发HelloWorld

java基础

开发HelloWorld

1.将编写的java代码保存在以’.java’结尾的源文件中

class HelloChina{
    public static void main(String[] args){
        //args:arguments参数;可以更改
        System .out.println("Hello,World!");
        //输出语句System .out.println()先输出后换行
    }
}

2.通过编译工具javac.exe编译为字节码文件,格式为javac 源文件名.java

3.通过java.exe运行字节码文件,格式为java 字节码文件名

注意:

1、在一个源文件中可以声明多个类(class),但是只能最多有一个类声明为public的。而且,要求声明为public的类的类名必须与源文件名相同。

2、程序的入口是main()方法,格式是固定的。

3、每一个执行语句都以分号;结束。

4、编译以后会生成一个多个字节码文件,字节码文件名与源文件中声明的类名相同。

注释(Comment)

用于注解说明解释程序的文字就是注释。

/*
1、java规定了三种注释:
单行注释 多行注释 文档注释(java特有)
2、 单行注释和多行注释的作用:
a.对所写的程序进行解释说明,增强可读性。 b.可以调试所写的代码
3、特点:
单行注释和多行注释的内容不参与编译。(编译后生成的 字节码文件不包含注释信息。)
4、多行注释不可以嵌套使用。
*/
class HelloJava {
    /*
    多行注释:
    如下的main方法是程序的入口!
    main的格式是固定的!
    */
    public static void main(String[] args) {
        //单行注释:如下的语句表示输出到控制台
        System.out.println("Hello World!");
    }
}

文档注释

文档注释的作用:

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

使用/* 文档注释/的格式

使用javadoc.exe解析

dos命令行解析方法:

javadoc -d myHello -author -version HelloJava.java 其中的myHello为文件名,HelloJava.java为源文件名

Java API文档

API (Application Programming Interface,应用程序编程接口)是 Java 提供 的基本编程接口)(类库)。

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

关键字与保留字

关键字

定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)

特点:关键字中所有字母都为小写

官方地址:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

java基础

java基础

保留字

Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字。

goto 、const

标识符(Identifier)

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

凡是自己可以起名字的地方都叫标识符。

定义合法标识符规则:

  1. 由26个英文字母大小写,0-9 ,_或 $ 组成
  2. 数字不可以开头。
  3. 不可以使用关键字和保留字,但能包含关键字和保留字。
  4. Java中严格区分大小写,长度无限制。
  5. 标识符不能包含空格。

Java中的名称命名规范

包名:多单词组成时所有字母都小写:xxxyyyzzz

类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz

变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz

常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

注意1:在起名字时,为了提高阅读性,要尽量有意义,”见名知意”。

注意2:java采用unicode字符集,因此标识符也可以使用汉字声明,但是不建议使用。

变量

变量的概念:

内存中的一个存储区域

该区域的数据可以在同一类型范围内不断变化

变量是程序中最基本的存储单元。包含 变量类型、变量名和存储的值 。

变量的作用:

用于在内存中保存数据

使用变量注意:

  1. Java中每个变量必须先声明,后使用
  2. 使用变量名来访问这块区域的数据
  3. 变量的作用域:其定义所在的一对{ }内
  4. 变量只有在其作用域内才有效
  5. 同一个作用域内,不能定义重名的变量

声明变量

语法:

例如:int var;

变量的赋值

语法:

例如:var = 10;

声明和赋值变量

语法:

例如:int var = 10;

class VariableTest {
  public static void main(String[] args){
    //变量的定义
    int myAge=12;
    //变量的使用
    System.out.println(myAge);
    //变量的声明intmyNumber;
    //变量的赋值
    myNumber=1997;
    //变量的使用
    System.out.println(myNumber);
  }
}
输出
12
1997

变量的分类-按数据类型

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

java基础

整数类型:byte、short、int、long

Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保 证java程序的可移植性。

java的整型常量默认为 int 型,声明long型常量须后加’l’或’L’

java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long

java基础
class VariableTest1{
  public static void main(String[] args){
    byte b1=24;
    byte b2=-128;
    //b2=128;   编译不通过,byte类型-128~127
    System.out.println(b1);
    System.out.println(b2);
    short s1=128;
    int s2=1234;
    long s3=12345678L;
    System.out.println(s1);
    System.out.println(s2);
    //声明:long型变量,必须以"l"或"L"结尾
    System.out.println(s3);
  }
}
输出
24
-128
128
1234
12345678

浮点类型:float、double

与整数类型类似,Java 浮点类型也有固定的表数范围和字段长度,不受具体操作系统的影响。

浮点型常量有两种表示形式:

十进制数形式:如:5.12 512.0f .512 (必须有小数点)

科学计数法形式:如:5.12e2 512E2 100E-2

float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。

double:双精度,精度是float的两倍。通常采用此类型。

java基础
class VariableTest1{
  public static void main(String[] args){
    double s1=123.3;
    System.out.println(s1);
    //定义float类型值的末尾要以'f'或'F'结尾
    float s2=12.3F;
    System.out.println(s2);
  }
}
输出
123.3
12.3

字符类型:char

char 型数据用来表示通常意义上”字符”(2字节)

Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。

字符型变量的三种表现形式:

  1. 字符常量是用单引号 ‘ ’括起来的单个字符。例如:char c1 = ‘a’; char c2= ‘中’; char c3 = ‘9’;
  2. Java中还允许使用转义字符 \来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’; \n表示换行符。
  3. 直接使用 Unicode 值来表示字符型常量:’\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a 表示\n。

char类型是可以进行运算的。因为它都对应有Unicode码。

class VariableTest1{
  public static void main(String[] args){
    char c1='a';
    System.out.println(c1);
    char c2='中';
    System.out.println(c2);
  }
}
输出a中

转义字符

java基础

布尔类型:boolean

boolean类型数据只允许取值true和false,无null。

boolean 类型用来判断逻辑条件,一般用于程序流程控制:

if条件控制语句;

while循环控制语句;

do-while循环控制语句;

for循环控制语句;

变量的分类-按声明的位置的不同

在方法体外,类体内声明的变量称为成员变量。

在方法体内部声明的变量称为局部变量。

java基础

二者在初始化值方面的异同:

同:都有生命周期

异:局部变量除形参外,需显式初始化。

基本数据类型转换

前提: boolean类型不能与其它数据类型运算。

自动类型提升

容量小的类型自动转换为容量大的数据类型。数据类型按容 量大小排序为:(容量的大小表示数的范围的大小)

java基础

byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。

class VariableTest2{
  public static void main(String[] args) {
    byte b1=2;
    int i1=129;
    //byte i2 = b1 + i1;  解析不通过
    inti2=b1+i1;    //使用容量较大的类型int
    System.out.println(i2);
  }
}
输出
131

强制类型转换

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:(),但可能造成精度降低或溢出,格外要注意。

class VariableTest2{
  public static void main(String[] args) {
    double d1=12.3;
    int i1= (int)d1;          //使用强转符(),截断操作损失精度
    System.out.println(i1);
  }
}
输出
12

字符串类型:String

String不是基本数据类型,属于引用数据类型,声明String变量的是,使用一对双引号””

一个字符串可以串接另一个字符串,也可以直接串接其他类型的数据。例如:

str=str+"xyz";
intn=100;
str=str+n;

String类型可以和八种基本数据类型进行运算,且 只能是连接运算,运算结果仍然是String类型。

class VariableTest2{
  public static void main(String[] args){
    String numberStr="学号:";
    int number=1997;
    String info=numberStr + number;
    System.out.println(numberStr + number);
  }
}
输出学号:1997

String类型索引、长度

String a="12345";
//获取字符串的长度
int long=a.length();
//索引指定位置的字符
char b=a.charAt(0);

获取指定索引的数字,并且用来运算

可以使用字符减去字符0,获得编码的差

String a="12345";
char b=a.charAt(2);
int num=b - '0';
输出
3

比较字符串是否相等

String a="yes";
String b="no";
boolean c=a.equals(b);
System.out.println(c);
输出
false

进制

所有数字在计算机底层都以二进制形式存在。

二进制(binary):0,1 ,满2进1.以0b或0B开头。

十进制(decimal):0-9 ,满10进1。

八进制(octal):0-7 ,满8进1. 以数字0开头表示。

十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。 如:0x21AF +1= 0X21B0

二进制转换十进制,以及负数的原码、反码、补码

计算机底层都以补码的方式存储数据!

运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

算术运算符

赋值运算符

符号:=

当”=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。

支持连续赋值。

比较运算符

逻辑运算符

变量的类型全部都是boolean类型的

区分&和&&:

相同点:

1、&和&&运算的结果相同

2、当符号左边是true时,都会运行符号右边的运算

不同点:

当符号左边是false时,&符号右边的运算继续执行,&&右边的运算不再执行。

区别 |和||:

相同点:

1、|和||运算的结果相同

2、当符号左边是false时,都会执行符号右边的运算

不同点:

当符号左边是true时,|符号右边的运算继续执行,||右边的运算不再执行。

位运算符

结论:

1、位运算符操作的都是整形数据

1、<

Original: https://www.cnblogs.com/am0304/p/16481636.html
Author: 超甜的小布丁
Title: java基础

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/574267/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球