java基础

java基础

2020/9/2 17:22:23


计算机常识

硬件
	CPU、内存(临时存储数据,例如:变量...)、硬盘(永久存储数据,例如:记事本文件、mp4影音文件...)、
	主板、显卡、电源、风扇、鼠标、键盘...
软件
	系统软件 --> 	windows家族,mac家族、Unix、Linux、Dos(字符命令)、安卓、苹果、塞班、其他
	应用软件 -->	wps、暴风影音、...

Java 常识

Java SE --  基础、可实现桌面程序开发
Java EE	--  企业及开发,可实现互联开发
Java ME --  移动端开发(被安卓替换了)

常见名词
JDK --	java的开发(编译)环境,官网下载安装
JRE	--	java的运行(执行)环境,安装jdk后即拥有。
JVM	--	java虚拟机,安装jdk后即拥有
API	--	官网文档
IDE	--	集成开发环境,例如 eclipse、IDEA、nbncre

java环境安装与配置

(1)去官网下载,JDK-1.8.162
(2)安装JDK
(3)配置环境变量(告知dos你的jdk在哪里存放)
	找打jdk的bin路基:C:Program FilesJavajdk1.8.0_162in
	我的电脑--属性--高级系统设置--高级--环境变量--Path,
		编辑path ,值首字符前追加,C:Program FilesJavajdk1.8.0_162in; (注意以分号做结束)
	测试环境
		开始-- 运行-- cmd
		javac -version
		成功可看到:javac 1.8.0_162

java的第1个小程序

编写java源码,打印Hello World

	第1步:创建记事本,修改文件名HelloWorld ,修改扩展名.java
	第2步:创建HelloWorld类
		public class 自定义类名{

		}
		注意:
			公共类的类名称必须与所在文件的文件名一致(区分大小写)
			1个源文件中只能有1个公共类,1个源文件中可以有多个非公共类。

	第3步:编写main方法
		public class 自定义类名{
			
			public static void main(String[] args){
				
			}
			
		}

	第4步:下达命令,打印Hello World
		public class 自定义类名{
			
			public static void main(String[] args){
				
				System.out.println("原样输出字符");
			
			}
			
		}
		注意:
			java语句命令以;分号做结束
			
	英文名词解析
		public公共的		class类			static静态的
		void无返回的		main主方法(入口)	String字符串数据类型
		System系统的		out输出端		println带有换行的打印方法

java是如何实现跨平台

		Java字节码可以通过JVM翻译为具体平台能够执行的机器指令。
		由于Sun定义了JVM规范,而且不同的操作系统大多提供了JVM实现,
		才使得相同的一个字节码文件可以在不同的系统上运行,
		从而使Java赢得了“一次编译,到处使用”的美名。

	
	执行源码,需要先javac命令编译,产生字节码后,通过java命令执行
	编译命令
		javac 文件名.java

		此时如源文件正确被编译后生产 文件名.class 的字节码


	执行java程序
		java 文件名/公共类的类名

变量声明与赋值

Java强语言规则,变量必须先声明后使用。
语法: 
	数据类型 变量名 = 初始值 ;
	
	数据类型 变量名1 = 初始值 , 变量名2 = 初始值 ,... , 变量名N = 初始值 ;
	int num1 = 10; 
	int num2,num3, num4;

标识符命名规则

1.变量名由大写字母A~Z、小写字母a~z、数字0~9、_和$符组成
2.变量名不能以数字做开头
3.变量名应避免与关键字重名
4.变量名要见名知意
5.变量名支持中文,但不推荐使用
6.变量名编写习惯第一个单词首字母小写,其后每个单词首字母大写。
7.类名称与变量名命名规范雷同,但是类名称每个单词的首字母都大写。

int num;  float n1;   int 数1;  int $sys_n1;	int _x;   
int system;

变量的输出

语法
	System.out.println(“原样字符”+变量名+“原样字符”+... +变量名+...);
举个例子:
	设两个整数变量存储1和2,输出2数之和,格式“1+2=3”
	int a=1,b=2;
	int sum = a + b;
	System.out.println( a+  “+”  +b+  “=”  +sum );

变量的输入

步骤 含义 代码
1 导入类型 import java.util.Scanner;
2 创建Scanner输入类型对象 Scanner scan = new Scanner(System.in);
3 调用方法输入数据 输入整数:scan.nextInt();
输入单精度小数:scan.nextFloat();
输入双精度小数:scan.nextDouble();
输入字符串:scan.next();
scan.nextLine();

基础数据类型

类型 字节 包装类型
byte 1 8 Byte
int 4 32 Integer
long 8 64 Long
short 2 16 Short
float 4 32 Float
double 8 64 Double
char 2 16 Character
boolean 1 8 Boolean
数据类型自动转换:		小数据类型赋值给大数据类型,整数赋值给小数
数据类型的强制转换:	大数据类型赋值给小数据类型,小数赋值给整数
					小数据类型 变量名 = (小数据类型)大变量;

运算符与表达式

赋值运算符 =

	等号后的赋值给等号前的,注意在Java中一个等号表示赋值运算,两个等号表示比较是否相等。

	举个例子:
		 int a=10,b=20;
		 int t=a;

数学运算符

	+加法  、  -减法、  *乘法、  /除法、      %取余

	运算时需要考虑数据类型,
		 除数	被除数		商
		 int		int			int
		 int		double		double 
		 double	int			double
		 double 	double		double
	
	举个例子:
		商		余数
		5.0/2	2.5		1.0
		5/2.0	2.5		1.0
		5/2		a=2		b=1
		int a=5/2;
		int b=5%2;

连接符

		加号+在Java中有两种作用,一种是加法运算,一种是连接符。 
		当加号两边运算数都是数值型数据时,加号做加法运算。
		当加号两边有任意一遍是字符串时,加号做链接操作。

	举个例子:
运算数1 + 运算数2 结果
1(int) + 2(int) 3(int)
"abc"(String) + 123(int) "abc123"(String)
"a"(String) + 123(int) "a123"(String)
"123"(int) + #(String) "123#"(String)

关系运算符

	举个例子:
运算符 含义 表达式 结果
> 大于 1>2 false
>= 大于等于 1>=1 true
< 小于 1<2 true
<= 小于等于 1/2<=5 true
== 等于 4%2==0 true
!= 不等于 5%2!=0 true
	拓展,三目运算符
		条件表达式 ? 表达式1 : 表达2
	含义:
		当条件表达式成立时,执行问号后的表达式1,
		当条件表达式不成立时,执行冒号后表达式2
	举个栗子:找出两个数a与b中的最大值
		public static void main(String[] args){
			int  a=10,b=20;
			int max =  a>b?a:b;	//当a比b大时max=a.  当a小于等于b时执行max=b;
			System.out.println(a + “与” + b + "最大值是"+ max);
		}

逻辑运算符

	逻辑与(&&):  条件表达式1   &&   条件表达式2
		当两个条件都成立时返回true
条件1 && 条件2 结果
true && true true
false && true false
true && false false
false && false false
	逻辑或(||):	条件表达式1   ||  条件表达式2
		当有任意一个条件成立时返回true(由于md语法"||"符号是表格语法无法显示,笔者暂时还未找到解决冲突的方案,暂时用"或"代替)
条件1 条件2 结果
true true true
false true true
true false true
false false false
	逻辑非(!):	
		!true	== flase	
		!false	== true

	判断是否是闰年(经典题目):
		年能被4整除并且不能被100整除时,或者年能被400整除
		2000年是闰年,2000%400==0
		2004年是闰年,2004%4==0 并且 2004%100!=0
		
		public static void main(String[] args){
			int year =2004;
			String isOk =   (year%4==0&&year%100!=0) || (year%400==0) ?  "闰年"  :  "平年"  ;
			System.out.println( year +”是”+ isOk)
		}

自增++与自减--运算符

	++ 是自加1运算,		-- 是自减1运算

		1.public void add(){
			int a = 1;
			a++;
			System.out.println(a); //结果为2
		  }

		2.public void add(){
			int a = 1;
			++a;
			System.out.println(a); //结果为2
		  }

		3.public void add(){
			int a = 1;
			System.out.println(a++); //结果为1
		  }
			因为++号在后,代码会先输出a的值,然后再执行++的操作
			public void add(){
				int a = 1;
				System.out.println(a++); //结果为1
				System.out.println(a);   //结果为2
		  	}

		4.public void add(){
			int a = 1;
			System.out.println(++a); //结果为2
		  }
			因为++号在前,代码会执行++的操作,然后再输出a的值

	--也是同理

条件结构

	单if结构
	语法:
		if( 条件表达式 ){
		.... 语句体M ...;
		}
		
		... 语句体Z ...;

	语法解析:
		当if后()小括号内条件表达式成立返回true时,执行if后{}花括号内语句体M
		当if后()小括号内条件表达式不成立时,if后{}花括号内语句体m不执行。
		
		语句体z与条件无关,条件成立与否都执行。

代码示例:找出2个数的最大值
public void comapreAB(){
	int a=20,b=10;
	int max=0;
	//判断a比b大吗?
	if( a>=b ){
	     max=a;  //条件成立时max=a
	}
	else{
	     max=b;   //条件成立时max=b
	}
	
	System.out.println(a +“与”+  b  +”最大值”+max);
}

alt if-else

for循环

语法,循环规则
语法 表达式含义 循环执行过程
for( 表达式1; 表达式2; 表达式3 ){
... 循环体...
}
表达式1: 设置循环条件变量初始值
表达式2:设置循环条件(满足什么条件重复下一次)
表达式3: 循环条件变量值得变更
alt for

非循环版
public class Demo01{
	public static void main(String[] args){
	    System.out.println(“Java我爱你 1”);
	    System.out.println(“Java我爱你 2”);
	    ... ...
	    System.out.println(“Java我爱你 100”);
	    ... ...
	    System.out.println(“Java我爱你 10000”);
	
	}
} 

循环版
public class Demo01{
	public static void main(String[] args){
	    int i ;
	    for( i=1;  i<=10000;  i=i+1 i++ ){
	        System.out.println(“Java我爱你 ”+i)
		} 
	}
} 

循环当中的break

break 用于终止循环,一般与条件结构结合使用。

循环当中的continue

continue 用于跳出本次循环,继续下一次循环,一般结合条件结构使用

数组的声明与使用

数组是相同数据类型的多个元素的容器,元素按线性顺序排列。

数组声明的语法
	数据类型[]	数组名=  new   数据类型[ 元素个数 ];
	或
	数据类型 	数组名[] = new 	数据类型[ 元素个数 ];

举个例子	存储5个整数	
int[] ns = new int[5];

给数组元素值
	数组名[ 下标 ]  =  值;

	注意: 
	下标从0开始,到数组元素个数-1终止。
	例如,int[] ns=new int[5],有效的数组元素ns[0],ns[1],ns[2],ns[3],ns[4] 
	无效的数组元素 ns[5]
	数组元素的值类型<=数组元素声明的类型

数组元素的输入与输出
	1.数组必须先声明后使用
	2.数组元素下标从0 开始,到  元素个数-1  终止

	输入
	int[]  ns =   new int[ 5 ];
	ns[0] = 1;
	ns[1] = 1;
	ns[2] = 1;
	ns[3] = 1;
	ns[4] = 1;

	输出
	for(i=0;  i<ns.length; i++ ){
		System.out.println("ns["+i+"]=" + ns[i] );
	}

数组元素的初始化
	声明数组同时赋予初始值,方式1 -- 完整版
		数据类型[] 数组名 = new 数据类型[]{值1,  值2,  值3,  ... ...  , 值N};
		例如,声明数组存放10,20,30,40,50这5个整数
	int[]  ns = new int[]{ 10, 20, 30, 40, 50};

	声明数组同时赋予初始值,方式2 -- 简化版
		数组类型[]  数组名  = 	{值1, 值2,值3, ... ... ,   值N};
		例如:int[]  ns =  { 10, 20, 30, 40, 50};
原文地址:https://www.cnblogs.com/lzy1212/p/13606870.html