Java——语言概述和基本语法

第一章——java语言概述

图形化界面

图形化界面操作:效率低

命令行操作:效率高

md 创建文件夹

rd 删除文件夹

cd .. 返回上一级目录

  • 游戏、办公软件——应用软件
  • win7——系统软件
  • 电脑——硬件

1、Java简介

  • 是SUN,一门高级程序语言。

  • 是一种面向Internet的编程语言。

  • 随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。

  • 简单易学,完全面向对象,安全可靠,与平台无关的编程语言。

2、Java语言平台版本

  1. JAVA SE标准版

    1、支持桌面级应用的开发,提供了一套完整的java核心API文档说明

  2. JAVA EE企业版

    1. 是为开发企业环境下的应用程序提供的一套解决方案

    2. 该技术体系中包含的技术如Servlet Jsp等,主要针对于Web应用程序开发

  3. JAVA ME小型版

    1. 是为机顶盒,移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台

    2. 包含虚拟机和一系列标准化的Java API

3、Java语言的特点

  • 简单性

  • 面向对象

  • 跨平台

    什么是跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。

    原理是什么:只要在需要运行的java应用程序的操作系统上先安装一个Java虚拟机(JVM)即可由JVM来负责Java程序在该系统中的运行。

4、Java语言的环境搭建

JRE(Java运行环境)包含Java虚拟机和java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JDK(Java开发工具包)JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE开发工具:编译工具(java.exe)打包工具(jar.exe)等

JDK
JDK-JRE-JVM三者关系

 

1、下载jdk,修改安装路径,安装(不用安装JRE)

2、配置Java运行环境(在任意路径下都可以运行java.exe软件)

Path %JAVA_HOME%\bin;

JAVA_HOME C:\Program Files\Java\jdk1.8.0_241

5、入门程序

G:\javacode>javac HelloWorld.java   (生成HelloWorld.class可执行文件)
    
G:\javacode>java HelloWorld     (执行)
Hello World

第二章——java基本语法

1、关键字

class public static void  都得小写

2、标识符

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

规则:

由26个英文字母大小写,09,或$组成

数字不可以开头。 不可以使用关键字和保留字,但能包含关键字和保留字。 Java中严格区分大小写,长度无限制。 标识符不能包含空格。

3、注释

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

提高了代码的阅读性

Java中的注释格式

  • 单行注释 // //
  • 多行注释 /* */
  • 文档注释 /** */

4、二进制常识

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

十进制:0-9,满10进1

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

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

5、常量和变量

常量的概念:

在程序执行的过程中,其数值不可以发生改变的量

Java中常量的分类:

1,整数常量。所有整数

2,小数常量。所有小数

3,布尔( boolean)型常量。较为特有,只有两个数值。 true false

4,字符常量。将一个数字字母或者符号用单引号(' ')标识。

5,字符串常量。将一个或者多个字符用双引号(" ")标识。

6,null常量。只有一个数值就是:null

变量的概念:

内存中的一个存储区域

该区域有自己的名称(变量名)和类型(数据类型)

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

使用变量注意:

变量的作用范围(一对之间有效) 初始化值问题;

定义变量的格式: 数据类型 变量名 = 初始化值;

6、数据类型

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

数据类型
数据类型

隐式数据类型转换问题:byte ,short ,char——> int ——> long ——> float——>double

强制类型转换(显式数据转换)

byte b = 5;
double i = 6;
float f = (float)(b+i);

字符类型数据转换问题:ASCII码表

7、运算符

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

  1. √算术运算符

  2. √赋值运算符

  3. √比较运算符逻辑运算符

  4. √三元运算符

++ -- 的使用规律

单独使用的时候,++或--在变量的左或者右,都无所谓,结果都一样

参与了别的操作运算:

如果++(--)在变量的左边,先做++(--)运算,再做其他运算

如果++(--)在变量的右边,先做变量左边的操作,再做++(--

三元运算符

格式

(条件表达式)?表达式1:表达式2;

如果条件为true,运算后的结果是表达式1;

如果条件为 false,运算后的结果是表达式2;

示例:

获取两个数中大数。 int X=8, y=9, Z;

z=(x>y)? x:y;//变量存储的就是两个数的大数。

8、语句

switch语句(具有穿透性,直到break结束)

“\t” 制表符

break 退出当前循环

continue跳出本次循环,继续下一次循环

9、函数

什么是函数:

函数就是定义在类中的具有特定功能的一段独立小程序

函数的格式:

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,,,,,)

{

    执行语句;

    return返回值;

}

返回值类型:函数运行后的结果的数据类型

参数类型:是形式参数的数据类型

形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数

实际参数:传递给形式参数的具体数值

return:用于结束函数

返回值:该函数运算后的结果,该结果会返回给调用者。

函数重载

*在同一个类中,可以存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。

  1. 重载的特点:

    函数名相同

    参数的个数不同或者参数的类型不同

    与参数的返回值类型无关

    与返回值类型无关,只看参数列表。

  2. 重载的好处

    便于阅读,优化程序设计

  3. 重载示例

//返回两个整数的和

int add(int a,int b) {return a+b;}

//返回三个整数的和

int add(int a,int b,int c) { return a+b+c;}

10、数组

概念:同一种类型数据的集合,其实数组就是一个容器。

数组的好处:可以自动给数组的元素从0开始编号,方便操作这些元素

内存划分:

  1. 寄存器

  2. 本地方法区

  3. 方法区

  4. 栈区

    存储的都是局部变量

    作用范围:函数一执行完毕,该变量也随即释放掉

  5. 堆区

    1. 存储的是数组和对象。只要是new出来的东西都在堆存储

    2. 特点:

      1. 每一个实体都有地址值

      2. 堆内存中的每一个变量都有默认初始化值

        整数是0 ,小数是0.0 , boolean false

 

1、一维数组遍历

class ArrDemo{
	public static void main(String[] args){
		
		int[] arr = {8,7,4,9,2};
		
		printArr(arr);	//实参
	}
	
	public static void printArr(int[] arr){	//arr形参
		
		//获取数组的长度。	数组名.length
		for(int i =0;i<arr.length;i++){
			System.out.println(arr[i]);	//获取数组中每一个值
		}
	}
}

2、获取数组的最值(最大值)

class ArrDemo2{
	public static void main(String[] args){
		
		int[] arr = {8,7,4,9,2};
		
		getMax(arr);	//实参
	}
	
	
	public static void getMax(int[] arr){	//arr形参
		
		//获取数组的长度。	数组名.length
		int max = arr[0];
		for(int i =1; i< arr.length;i++){
			
			if(max < arr[i]){
				max = arr[i];
			}
		}
		System.out.println(max);	//获取数组中最大值
	}
}

3、选择排序(升序排序)

class ArrDemo3{
	public static void main(String[] args){
		
		int[] arr = {8,7,4,9,2};
		
		selectSort(arr);	//实参
	}
	
	
	public static void selectSort(int[] arr){	//arr形参
		
		//获取数组的长度。	数组名.length
		for(int i = 0; i< arr.length-1; i++){
			
			for(int j=i+1; j<arr.length; j++){
				if(arr[i] > arr[j]){
					int temp = arr[j];	//temp临时变量
					arr[j]=arr[i];
					arr[i]=temp;
				}
			}
		}
		
		//循环遍历输出
		for(int i = 0; i< arr.length; i++){
			System.out.println(arr[i]);
		}		
	}
}

4、冒泡排序(降序)

class ArrDemo4{
	public static void main(String[] args){
		
		int[] arr = {5,100,58,69,32};
		
		//冒泡排序
		bubbleArr(arr);	//实参
	}
	
	public static void bubbleArr(int[] arr){	//arr形参
		//获取数组的长度。	数组名.length
		for(int i = arr.length-1; i>0 ; i--){
			for(int j=0; j<i; j++){
				if(arr[j] > arr[j+1]){
					int temp = arr[j+1];	//temp临时变量
					arr[j+1]=arr[j];
					arr[j]=temp;
				}
			}
		}
		printArr(arr);
	}
	
	//循环遍历输出
	public static void printArr(int[] arr){
		for(int i = 0; i< arr.length; i++){
			System.out.println(arr[i]);
		}		
	}
	
	//交换数组中两个位置
	public static void swap(int[] arr , int from , int to){
		int temp = arr[from];
		arr[from] = arr[to];
		arr[to] = temp;
	}
}

5、折半查找

class ArrDemo5{
	public static void main(String[] args){
		
		int[] arr = {32,35,56,89,99,100};
		int index = halfSearch(arr,100);
		System.out.println(index);
	}
	
	public static int halfSearch(int[] arr , int key){	//arr形参
		int min = 0;
		int max = arr.length-1;
		int mid = (min+max)/2;
		while(key != arr[mid]){
			if(key > arr[mid]){
				min = mid+1;
			}
			if(key < arr[mid]){
				max = mid-1;
			}
			if(min > max){
				return -1;
			}
			//重新计算中间下标
			mid = (mid+max)/2;
		} 
		return mid;
	}
}

6、利用程序输出如下图形:

利用程序输出如下图形:
   *
   * * *
   * * * * *
   * * * * * * *
   * * * * *
   * * *
   *
class Asterisk {  
    public static void main(String[] args) {  
        for (int i = 1; i <= 13; i += 2) {  
            for (int j = 1; j <= i && i + j <= 14; j++) {  
                System.out.print("* ");  
            }  
            System.out.println(); // 换行  
        }  
    }  
} 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值