Java了解与简单入门

Java总结】-【入门篇(第一周)后续每周总结一次

JAVA概述与环境变量的搭建

一、概述

1.1 编程语言分类:

  • 分类:
  • 机器语言
  • 汇编语言
  • 高级语言
高级语言分类:
  • c / c++
  • c#
  • java
  • python
  • php
  • javascript
  • …等等

1.2 编程语言作用

  • 通过编码实现与计算机之间的交互 难易程度 从难到易 机器语言>汇编语言>高级语言
1.2.1机器语言

机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。

1.2.2汇编语言

为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码(如用ADD表示运算符号“+”的机器代码),于是就产生了汇编语言。所以说,汇编语言是一种用助记符表示的仍然面向机器的计算机语言。汇编语言亦称符号语言。汇编语言由于是采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码, 而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

1.2.3高级语言

不论是机器语言还是汇编语言都是面向硬件的具体操作的,语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉,这对非计算机专业人员是难以做到的,对于计算机的推广应用是不利的。计算机事业的发展,促使人们去寻求一些与人类自然语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言。这种与自然语言相近并为计算机所接受和执行的计算机语言称高级语言。高级语言是面向用户的语言。无论何种机型的计算机, 只要配备上相应的高级语言的编译或解释程序,则用该高级语言编写的程序就可以通用。

所以我们选用高级语言学习

1.3为何选择Java?

1.3.1 Java的优点
java语言是一种优秀的编程语言。它最大的优点就是与平台无关,在Windows 、Linux、MacOS以及其它平台上,都可以使用相同的代码。“一次编写,到处运行”的特点,使其在互联网上广泛采用。

由于Java语言的设计者们十分熟悉C++语言,所以在设计时很好地借鉴了C++语言。可以说,Java语言是一种比C++语言“还面向对象”的一种编程语言。Java语言的语法结构与C++语言的语法结构十分相似,这使得C++程序员学习Java语言更加容易。

当然,如果仅仅是对C++改头换面,那么就不会有今天的Java热了。Java语言提供的一些有用的新特性,使得使用Java语言比C++语言更容易写出“无错代码”。

而且java是一门纯面相对象的语言!!!目前为止使用最广!!!

1.3.2 java的特点
  • 简单:相对C、C++、C#,不易造成内存溢出、自动回收机制、减少代码量、代码可读性强。
  • 跨平台:操作系统、服务器、数据库
  • 高可移植性
  • 面向对象:使用计算机模拟现实世界,解决现实问题,贴近人类思维模式
  • 解释型
  • 适合分布式计算
  • 拥有比较好的性能,适合中大型互联网开发
  • 健壮
  • 具有多线程处理能力等
1.3.3 java的发展历史
  • 1995年5月23日 sun公司发布了Java产品
  • 1998年12月 sun公司发表了Java2版本
  • 2004年12月 发表了Java5
  • 2009年 sun公司被Oracle收购
  • 2011年 由Oracle(甲骨文)公司开始维护发布Java8.0
  • 2014年 Oracle 发布Java8.0
  • 2017年 9月 发布了 JavaSE9
  • 2018年 3月 发布了 JavaSE 10(18.3)
  • 2018年 9月 发布了 JavaSE 11
  • 2019年3月 发布了Java SE12
1.3.4 Java执行机制
  • 编译执行:将源文件编译成机器码,一次编译,处处执行。执行效率高,不可跨平台。
  • 解释执行:将源文件一行一行解释,一行一行执行。不同的操作系统有不同的解释器。执行效率低,可跨平台。
  • Java是先编译、再解释:
    • 将源文件( .java )编译成字节码文件( .class ),再将字节文件进行解释执行
  • 名词解释:
  • JVM:虚拟机: 使用软件在不同的操作系统中,模拟相同的环境。
  • JRE:运行环境: 包含JVM和解释器,完整的Java运行环境。
  • JDK:开发环境: 包含JRE+类库+开发工具包(编译器+调试工具)

二、java环境运行环境的搭建

2.1提前了解
  • Dos命令的操作:
    • 更换盘符: 盘符: 例如 e:
    • 查看当前目录下的内容: dir
    • 进入文件夹: cd 文件夹的名字
    • 返回上一级目录: cd …
    • 清空命令窗口: cls
    • 删除文件: del
    • 删除文件夹: rd 文件夹名称
    • 退出: exit
2.2 JDK安装

JDK官方下载地址
下载注意:选择与自己电脑匹配的32Bit或者64Bit,并选择自己想要下载的JDK版本
下载后一键式安装即可,记住自己安装JDK的路径即可
这里推荐用默认安装地址

2.3 环境变量的配置
  • 作用
    Java_Home: 同之其他应用装了JDK,并告诉他们JDK装在哪里
    Path系统变量: bin目录里装了很多java命令和工具,如果想在任何目录里找到这些命令,就要把bin目录放到path中,这是Windows的要求。
    classPath: 提示虚拟机要运行的.class文件的路径,再操作系统中"."表示当前目录 "…"表示上一级目录
  • 注意:
    公开类的文件名必须和类名完全一致,因此一个源文件中只能有一个公开类
  • 配置: 这里以windows10为例子
    右击此电脑->属性->高级系统设置->高级->环境变量(N)->系统变量中点击新建
    输入:
    变量名 CLASSPATH 变量值 %JAVA_HOME%\lib;
    再次新建:
    变量名 JAVA_HOME 变量值 JDK安装的绝对路径
    点击Path 变量: %JAVA_HOME%\bin输入
    确定即可
  • 打开doc 窗口输入javac 如有以下显示为,表示成功
    jdk环境变量配置成功
2.4第一个Java程序的运行

在创建一个Hello.java的文件 【注意】 打开文件拓展名

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

打开doc窗口(快捷键 win+r 输入 cmd) 切换到文件同级目录:
输入javac Hello.java 进行编译 生成 Hello.class 文件
再输入 java Hello 执行字节码文件

三、Java语言入门

3.1 保留字

	abstract 、assert、boolean、break、byte、case
	catch、 char、class 、const、continue、default
	do、double、else、enum、extends、final、finally
	float、for、goto 、if、implements、import
	instanceof、int、while、interface long native 
	new、package、private 、protected、switch
    public return short static strictfp super 
    synchronized this throw throws transient try 
    void volatile 

以上所有列出的就是java的关键字

3.2 Java基本语法
  • 大小写敏感: Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
  • 类名: 对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyHelloWorld 。
  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
  • 源文件名: 源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口: 源文件名必须和类名相同。保存文件的时,你应该使用类名作为文件名保存(Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
3.3 Java标识符

Java 所有的组成部分都需要名。类名、变量名、方法名都被称为标识符。
注意:

  • 所有的标识符由字母(A-Z a-z),美元符号($),数字(0-9),下划线(_)组成
  • 首字母不能是数字
  • 关键字不能当作标识符
  • 标识符大小写敏感
3.4 Java 注释

Java注释有三种:

  • 单行注释 //
// 单行注释
  • 多行注释
/*这里是多行注释*/
  • 文档注释
/**
	文档注释 用于生成api文档
*/
3.5 Java数据类型

Java数据类型分为基本数据类型引用数据类型 两大类

3.5.1内置数据类型

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

数据类型 字节占用 范围
byte 1 -128(-2^7) ~ 127(2 ^7-1)
short 2 -32768(-2^15)~ 32767(2 ^15-1)
int 4 -2,147,483,648(-2^31)~2,147,483,647(2 ^31 - 1)
long 8 -9,223,372,036,854,775,808(-2^63)~9,223,372,036,854,775,807(2 ^63 -1)
float 4
double 8
char 2 Unicode的范围 \u0000~\uffff
boolean 1 true/false
3.6 Java 自动类型转换和强制类型转换

自动类型转换
自动类型转换顺序又叫隐式类型转换
顺序是: byte->short->int->long->double
byte->short->int->float->double
char->int

强制类型转换
以上类型逆向转换 也就是A类型范围比B类型范围大,则A赋值给B就得强制转换
格式
(数据类型)数值
例如:

 double a = 222.22;
 float b =(float)d;
3.7 Java中的运算符:

运算符分成以下几组:

  • 算术运算符
操作符 描述
+ 加法 相加运算符两侧的值
- 减法 - 左操作数减去右操作数
* 乘法 - 相乘操作符两侧的值
/ 除法 - 左操作数除以右操作数
% 取余 - 左操作数除以右操作数的余数
++ 自增: 操作数的值增加1
自减: 操作数的值减少1
publi class Demo(){
	public static void main(String[] args){
		int integera = 8;
		int integerb = 3;
		int sum = 0;
		sum = integera + integerb;// +
		sum = integera - integerb;// -
		sum = integera - integerb;// *
		sum = integera - integerb;// /
		sum = integera - integerb;// %
		sum = integerb++;// ++在前先自增在赋值,在后先赋值再自增
		sum = ++integerb;
		sum = integerb--;// --在前先自减在赋值,在后先赋值再自减
		sum = ++integerb;
	}
}
  • 关系运算符
运算符 描述
== 检查如果两个操作数的值是否相等,如果相等则条件为真。
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真
> 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
<== 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。
publi class Demo(){
	public static void main(String[] args){
		int integera = 8;
		int integerb = 3;
		System.out.println("integera==integerb  ="+(integerb == integera));// ==
		System.out.println("integera!=integerb  ="+(integerb != integera));// !=
		System.out.println("integera>integerb  ="+(integerb > integera));// >
		System.out.println("integera<integerb  ="+(integerb < integera));// <
		System.out.println("integera>=integerb  ="+(integerb >= integera));// >=
		System.out.println("integera<=integerb  ="+(integerb <= integera));// <=
	}
}
  • 位运算符
操作符 描述
& 如果相对应位都是1,则结果为1,否则为0
^ 如果相对应位值相同,则结果为0,否则为1
~ 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
publi class Demo(){
	public static void main(String[] args){
		int integera = 8;
		int integerb = 3;
		int integerc = 0;
		integerc = integera & integerb;
		System.out.println("integera&integerb  ="+integerc);// &
		integerc = integera | integerb;
		System.out.println("integera|integerb  ="+integerc);// |
		integerc = integera ^ integerb;
		System.out.println("integera^integerb  ="+integerc);// ^
		integerc = ~integera ;
		System.out.println("~integera="+integerc);// <
		integerc = integera << 4;
		System.out.println("integera << 4 ="+integerc);// >=
		integerc = integera >> 4;
		System.out.println("integera >> 4 ="+integerc);// >=
		integerc = integera >>> 4;
		System.out.println("integera >>> 4 ="+integerc));// <=
	}
}
  • 逻辑运算符
操作符 描述
&& 逻辑与运算符。当且仅当两个操作数都为真,条件才为真。
|| 逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。
逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。
publi class Demo(){
	public static void main(String[] args){
		boolean booleanA =false;
		boolean booleanB =true;
		System.out.println("booleanA&&booleanB  ="+(booleanB && booleanB));// &&
		System.out.println("booleanA||booleanB  ="+(booleanB || booleanB));// ||
		System.out.println("!(booleanA&&booleanB)  ="+ !(booleanB && booleanB));// !
	}
}
  • 赋值运算符
操作数 描述
= 将右操作数的值赋给左侧操作数
+= 它把左操作数和右操作数相加赋值给左操作数
-= 它把左操作数和右操作数相减赋值给左操作数
*= 它把左操作数和右操作数相乘赋值给左操作数
/= 它把左操作数和右操作数相除赋值给左操作数
(%)= 它把左操作数和右操作数取模后赋值给左操作数
<<= 左移位赋值运算符
>>= 右移位赋值运算符
&= 按位与赋值运算符
^= 按位异或赋值操作符
=
publi class Demo(){
	public static void main(String[] args){
		int integera =20;
		int integerb =10;
		int integerc =0;
		integerc = integera + integerb;
        System.out.println("integerc = integera + integerb = " + integerc );
        integerc += integera ;
        System.out.println("integerc += integera  = " + integerc );
        integerc -= integera ;
        System.out.println("integerc -= integera = " + integerc );
        integerc *= integera ;
        System.out.println("integerc *= integera = " + integerc );
        integera = 10;
        integerc = 15;
        integerc /= integera ;
        System.out.println("integerc /= integera = " + integerc );
        integera = 20;
        integerc = 15;
        integerc %= integera ;
        System.out.println("integerc %= integera  = " + integerc );
        integerc <<= 24;
        System.out.println("integerc <<= 2 = " + integerc );
        integerc >>= 4 ;
        System.out.println("integerc >>= 2 = " + integerc );
        integerc >>= 4 ;
        System.out.println("integerc >>= 2 = " + integerc );
        integerc &= integera ;
        System.out.println("integerc &= integera  = " + integerc );
        integerc ^= integera ;
        System.out.println("integerc ^= integera   = " + integerc );
        integerc |= integera ;
        System.out.println("integerc |= integera   = " + integerc );
	}
}
  • 三目等其他运算符
操作数 描述
?: 三元运算符 布尔表达式?结果1: 结果2; 布尔表达式正确则结果1 反之结果2
publi class Demo(){
	public static void main(String[] args){
		int integera=1,integerb=2,integerc=0;
		System.out.println("integera==integerb?1:2"+integerc);	
	}
}
3.8 Java的条件语句和switch case
  • if
    一个 if 语句包含一个布尔表达式和一条或多条语句。
    if 语句的语法如下:
if(布尔表达式)
{
   //如果布尔表达式为true将执行的语句
}
public class IfDemo(){
	public static void main(String[] args){
		int integerA = 100;
		if(integerA>150){
			 System.out.println("体验 if 语句");
		}
	}
}
  • if…else
    if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。

语法:

if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}
public class IfDemo(){
	public static void main(String[] args){
		int integerA = 100;
		if(integerA>50){
			 System.out.println("体验 if 语句");
		}else{
		 System.out.println("体验 if else 语句");
		}
	}
}
  • if…else if … else
    if 语句后面可以跟 else if…else 语句
if(布尔表达式 1){
   //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
   //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
   //如果布尔表达式 3的值为true执行代码
}else {
   //如果以上布尔表达式都不为true执行代码
}
public class IfDemo(){
	public static void main(String[] args){
		int integerA = 100;
		if(integerA<50){
			 System.out.println("体验 if 语句");
		}else if(integerA<100){
		 System.out.println("体验 if else 语句");
		}else{
			System.out.println("体验 if else if else 语句");
		}
	}
}
  • 嵌套的 if…else
    可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。
    语法:

if(布尔表达式 1){
   ////如果布尔表达式 1的值为true执行代码
   if(布尔表达式 2){
      ////如果布尔表达式 2的值为true执行代码
   }
}
public class IfDemo(){
	public static void main(String[] args){
		int integerA = 100;
		if(integerA<150){
			if(integerA<100){
				System.out.println("体验 if  嵌套语句1");
			}else{
				System.out.println("体验 if  嵌套语句2");
			}
		}else{
			System.out.println("体验 if 嵌套语句3");
		}
	}
}
3.9 Java循环结构:
  • while循环
	格式:
 	while( 布尔表达式 ) {
  		//循环内容
	}
public class Demo1(){
	public static void main(String[] args){
		int integerA =3;
		while(integerA>1){
			integer--;
			System.out.print("我是while");
		}
	}
}
  • do…while循环
    注意: 对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
    do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
    格式:
	do{
	//代码语句
	}while(布尔表达式)
	
public class Demo1(){
	public static void main(String[] args){
		int integerA =3;
		do{
			integer--;
			System.out.print("我是do...while");
		}while(integerA>1);
	}
}
  • for循环
    所有循环结构都可以用 while 或者 do…while表示,但是 for 循环,使一些循环结构变得更加简单。
    for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化; 布尔表达式; 更新) {
    //代码语句
}
public class Demo1(){
	public static void main(String[] args){
		for(int integeri = 1; integeri < 20; integeri++) {
         System.out.println("我是for循环");
      }
	}
}
3.10 循环小助手break与continue关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。
语法:

break;

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中,continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
语法:

continue;
public class Demo1(){
	public static void main(String[] args){
      for(int integera =0;integera<100;integera++) {
         // integera 等于 50 时跳出循环
         if( integera == 50 ) {
            break;
         }
         System.out.println(integera );
      }
      for(int integera =0;integera<100;integera++) {
         // integera 等于 50 时跳出本次循环,本次循环以下代码不执行
         if( integera == 50 ) {
            continue;
         }
         System.out.println( integera );
      }
	}
}
3.11 switch case:

witch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
语法:

switch(expression){
    case value :
       //代码
       break; //可选
    case value :
       //代码
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //代码
}
public class Demo1(){
	public static void main(String[] args){
	int grade = 1;
      switch(grade)
      {
         case 1 :
            System.out.println("周一"); 
            break;
         case 2 :
         	System.out.println("周二");
            break;
         case 3 :
            System.out.println("周三");
            break;
         case 4 :
            System.out.println("周四");
            break;
         case 5 :
            System.out.println("周五");
            break;
         case 6 :
            System.out.println("周六");
            break;
         case 7 :
            System.out.println("周天");
            break;
         default :
            System.out.println("黑色星期八");
      }
	}
	
}

学习心得

经过一周的学习个人梳理总结如上,再次重新将Java基础完完整整梳理一遍,有利于将个人的知识树修建完善。本人每周会修建一次知识树。将自己所学所思整理并于大家一起讨论学习。

发布了6 篇原创文章 · 获赞 9 · 访问量 427

猜你喜欢

转载自blog.csdn.net/lxn1214/article/details/104226296