JAVA01_入门

Java基础入门

服务器端语言——没有快捷方式。——运行环境

以后书写的java代码——需要依赖jdk进行运行

在这里插入图片描述

Java介绍

java语言:

服务器端语言——

php python .net…

语言简单分类——

**二进制语言:**计算机最底下:硬件:识别的都是二进制语言。

01010101 01010101 0000001 0001100 – 8个字节分别代表什么含义 ,多个二进制组合又代表什么???????

**汇编语言:**大量的十六进制。 0xaf 0xaf 0xaf 0xaf 0xaf 0xaf —jdk的底层的指令很多都是16进制。

高级语言:

JS java php python .net——面向对象

C:面向过程——是和硬件交互最方便的一种——嵌入式都是用的C

Java语言:就是所谓的高级语言。

高级语言:其实在运行的时候都需要转换成底层指令——一般都是汇编和二进制。

——都需要:中间件——jdk是一个运行环境——就是负责编译解释你的java代码

C语言:嵌入式:内嵌在硬件中:机器人 …

高级语言:Java——手机APP 微信小程序的后台 部分手机端软件 各种应用系统 游戏…

在这里插入图片描述

java的发展史:

1996年1月,Sun公司发布了Java的第一个开发工具包	*(JDK 1.0)*
	
2009年,甲骨文公司宣布收购Sun	
	
**2014年,甲骨文公司发布了Java8正式版**	
	
2017 年 9 月 22 日,Java 9正式发布,带来了很多新特性,其中最主要的变化是已经实现的模块化系统。	

甲骨文:把java——甲骨文原本是搞得是数据库:oracle——

java语言的应用非常的广泛——

运行环境和开发环境

开发环境:写代码的——文本编辑器。java语言的文件:.java文件,也是一个文本文件,所以写代码直接用文本编辑器即可。

txt edplus …,但是写出来的代码不能运行,需要先用jdk进行编译,然后使用jre进行运行。

运行环境:jvm虚拟机——java的运行平台——安装jdk中安装出来的那个jre。

但是java语言.java文件不能直接进行运行,不要通过jdk先进行编译才可以运行。(Jdk)

jdk是一个开发环境+运行环境——内置了一个jre。

编译:

js:文本编辑器进行书写,然后浏览器运行即可——边解释边运行:解释的过程就是将你的高级语言进行底层指令的解析。

Java:编译型语言。

源文件(.java .js)不能直接解释成底层指令进行执行。

需要一个编译工具来将源文件编译成一个中间型的文件(字节码文件)——jdk

然后对字节码文件进行解释运行。——jvm虚拟机:jre
在这里插入图片描述

idea:集成环境:集成了开发环境+运行环境。

JDK的安装和环境变量的配置(重点)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ClassPath:编译的时候如果需要依赖其他类去哪找 默认是当前.
在这里插入图片描述
为了命令提示符下的:java javac命令可用 bin文件是可执行文件
在这里插入图片描述
在这里插入图片描述

Java的常用命令(重点)

java:运行

javac:编译

javadoc:导出文件——API

javap:反编译…s

编写、编译和运行第一个Java应用程序(重点)

创建文件:后缀:.java——源文件—MyClass01.java

//public 固定的? class 固定的? 类名:需要和文件名保持一致		
public class MyClass01{		
	//public static void main(String[] args)--main方法的固定声明格式	
	public static void main(String[] args){	
		//向控制台输出——类似:console.log()---java语句结尾必须书写;
		System.out.print("HelloWorld!!!!!!!!!!!!!!!!!!");
	}	
}		

源文件:
1.public类的类名需要和文件名保持一致

2.如果一个类想运行必须有main方法:main方法是程序的入口。

3.main:语法是固定:public static void main

4.java中向控制台:System.out.print();

5.Java严格区分大小写。

6.每一个语句都必须有;结尾。

7.Java是一次编译多次运行。源代码改变后必须重新编译在运行——如果不编译直接运行,那么还是之前的字节码,新盖的内容没有生效

在这里插入图片描述

Java的运行机制:

首先需要将源文件编译成.class字节码文件—>通过java运行命令,调用的jvm虚拟机对字节码文件进行解释运行,然后出结果。

现在已经是class文件:直接运行就OK,编译一次就行。–Java一次编译多次运行。

java程序:一般都是第一次启动慢

Java的特性:

简单性;面向对象;分布式;编译型语言;稳健性;可移植性;高性能;多线程;

跨平台、开源、垃圾回收

**稳健性:**C# c语言:垃圾回收需要手动控制。——控制不好内存就溢

Java自动垃圾回收——自己底层有一套算法:在查那个对象没人用,自动回收。

跨平台:.class文件—在不同平台:安卓 window liunx 提供了的jvm虚拟机环境——对class解释是一致。——.net不能跨平台,只能在window下使用。

使用Idea来书写Java

1):首先先创建功能

右击run的过程:集成环境:会先编译,然后运行——javac+java
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Java变量

/*		
* Java的前几章:和js基本没有区别——		
*   js:核心语法  BOM  DOM--核心语法:其实所有语言都差不多		
* Java中学习java的核心语法——		
*   其实各个语言的基本都差不多。jsjava都是高级语言,所以都不差不多		
*		
* 1.变量  2.分支  3.循环  4.数组...........		
* */		

3.1 变量的概念

变量的含义其实来源的就是数学。

变量在程序中起到?

在这里插入图片描述

建设我有x元,买了一个包子2 买了一个豆浆 此时2

建设x=9

x=8;

3.2 变量的声明

//java变量的声明		
/*		
 *JS:var x=1;		
 * var name="zahgnsan"		
 * var status=true;		
" * var x,y,z;"		
 *      --弱变量--变量名的权利非常小,自己不当家,别人给我赋值赋值什么,就是什么类型。		
 *      --js使用var定义的变量其实都是全局,有效范围佷乱。--这个咱没用		
 * function a(){		
 *  var info="a"		
 * }		
 * console.log(info);		
 */		
/**		
 * 不是弱变量:		
 *  变量声明先指定数据类型,int age;那么他就只能存储数字。		
 *  Java变量的有效范围:仅在所在的{}内,离开就不能用了		
 */		

Java可以先声明后赋值也可以声明同时做赋值:必须初始化赋值才可以使用,否则语法错误——编译器就报错。

int age=1;//声明同时做赋值		
"int a=1,b=2,c=3;//一次声明多个"		
String name;//先声明 后赋值		
name="赋值";		
String info;		
//System.out.println(info);如果变量没有初始化,没有赋值不可以使用,会直接编译异常		
/**		
 * 变量命名的规范:——硬性要求,如果不符合直接报错		
 *  1.以字母 _  $开头,后边可以跟着字母 数字 _ $		
 *  2.不能使用关键字		
 *  3.变量不能有空格		
 */		
int a1;/*int 1a;*/ int myName; /*int my name;*/ /*int int;*/		
/**		
 * 常规要求:		
 *  1.变量名一般按照驼峰命名来走:首字母小写第二个单词开始首字母大写   myName		
 *  2.类名一般按照大驼峰命名:首字母大写第二个单词开始首字母也大些   MyName		
 *  3.常量命名:统一大写		
 *  4.知名知名		

*/

3.3 标识符的定义规则

类名:大驼峰

变量名:小驼峰

包名:全部小写

常量名:全部大写

3.4 数据类型分类

//第一类:基本数据类型——都是小写		
/*存储数字:整型和浮点型*/		
// byte short int long		
//double float		
/*存储字符:字符型:char*/		
/*布尔型:boolean:true或者false*/		

在这里插入图片描述

在这里插入图片描述

3.4.1 八大基本数据类型

byte short int long–这四个都是整型。长度不一样。

byte:1个字节:0000001—有多少排列组合的可能:256有可能–

float double

char

boolean

public static void main(String[] args) {		
    //第一类:基本数据类型——都是小写		
    /*存储数字:整型和浮点型*/		
    // byte short int long--:数字有关系		
    int a=1;		
    byte byte01=1;		
    //byte byte02=300;		
    short s01=1;		
    //short s02=40000;		
    long l1=1;		
    //如果直接写数字:这个数字就是所谓的数字常量——java中但凡看到这种数字常量,会直接将其作为int来识别。		
    //现在内容超出了20亿的范畴,想用长征性:l		
    long l2=10000000000l;//这个长度没有超出long的范畴。		
		
    //double float		
    //浮点型常量值:系统默认识别成了都double——加f才可以作为float数字		
    float f1=100.1f;//100很小的--4字节		
    double d1=100.1;		
    /*存储字符:字符型:char*/		
    char c='\n';//java中字符型用'' 字符串用“” ''引起来的都是单一字符		
    char c1='a';		
    /*布尔型:boolean:true或者false*/		
    boolean state=true;		
    //引用数据类型:——首字母都是大写		
    String name="ddddd";		
		
}		

3.4.2 引用数据类型:

 //引用数据类型:——首字母都是大写		
String name="";		

3.5 数据类型转换

在这里插入图片描述

小赋值给大可以直接赋值

大给小强转:目标类型 bb=(目标类型) 之前

整形常量值只要不能超出范围可以直接赋值给byte 和short

混合运算的时候按照大的走,但是byte和short混合运算,结果为int

char可以和整形转换但是boolean不可以

在这里插入图片描述

如果从long:大水缸往小的水杯中:int导入内容:如果long的水多,值大,那么多余的部分会溢出 丢失 如果值不大,内容少可以直接放入。

——大的给小的是有风险的。所以程序不许与直接走——强转。
如果从int放入到long中:小水杯的水导入到水缸里,绝对不会有任何问题。
——小的给大的直接给
在这里插入图片描述

//类型转换:两个变量数据类型不一致的时候可以不可以进行一个转换的问题:		
//1.小的给大的可以直接给:水杯往水缸导入		
//2.大的给小的必须强转——强转是有风险的:水缸往水杯导:不一定没问题		
byte b=1;		
int c=b;//b是byte类型  cint类型:int4  byte1		
long l1=c;		
int c1= (int) l1;//l1long类型:  c1是int类型  强转:(目标类型)原始内容		
System.out.println(c1);		
		
long l2=10000000011l;		
byte b2= (byte) l2;//如果超长会溢出——内容丢失		
System.out.println(b2);		
		
//		
float f= (float) 100.1;//double :8  flolt:4不可以		
float f2= 100.1f;		
//如果整型常量默认按照int处理,如果超长没办法直接赋值给long		
//但是这个数字可以直接赋值给byte 或者 short--只要不超长可以直接给byte和short		
byte bb=1;		
short cc=2;		
float fff= bb+f;//混合运算按照大的走		
int ccc=cc+bb;//如果是byte和short的运算:结果得用int		

3.6 运算符

3.6.1 赋值运算符

= ± -= *= /=

//赋值运算符:= += *= -=		
int a=1;		
a+=1;//a=a+1;		

3.6.2 算数运算符

*+ - * / % ++ –

public static void main(String[] args) {		
    //操作符号:		
    //算数运算符 + - * / %求余  ++ -- 自增 自减		
    int a=1+1;		
    int b=5%2;//余数就是1		
    //强调:/--两个整数相除是整除		
    int a1=5/2;//结果是2		
    System.out.println("5/2---"+a1);		
    //避免整除:除数或者被除数变成浮点型		
    double a2=5*1.0/2;//结果是2.5		
    System.out.println("5*1.0/2---"+a2);		
    double a3=5/2*1.0;//结果是2.0--执行前边的除执行后边*		
    System.out.println("5/2*1.0---"+a3);		
    double a4=5/(2*1.0);//结果是2.5		
    System.out.println("5/(2*1.0)---"+a4);		
    //++		
    int j=1;		
   /* j++;//j=j+1;		
    System.out.println(j);*/		
    //混合运算的时候是有区别的		
    int z=j++;//z=j;j=j+1;  执行赋值 在执行自增		
    System.out.println("z:"+z);		
    System.out.println("j:"+j);		
    j=1;		
    z=++j;//j=j+1;z=j;先自增在赋值		
    System.out.println("z:"+z);		
    System.out.println("j:"+j);		
    //--		
    int i=1;		
    i--;//i=i-1;		
    System.out.println(i);		
		
}		

3.6.3 关系运算符

<、>、<=、>=、==、!=

//关系运算符: > < != == :判断中的等于是==		
System.out.println(1>2);		
System.out.println(1==2);		
int zsScore=99;		
int lisiScore=50;		
System.out.println(zsScore>lisiScore);		

3.6.4 逻辑运算符

&& || !

与:并且

||:或者

!:非,求反

//与:并且,必须所有条件都符合才算true 但凡有一个不符合结果就是false		
 // 什么时候能进班? 政府可以开学   身体健康 必须都符合才可以进吧,否则不可以。		
 String kai="可以";		
 String shenti="健康";		
 System.out.println("---------------");		
 boolean result=kai=="可以"&&shenti=="健康";		
 System.out.println(result);		
 result=kai=="可以"&&shenti=="发烧";		
 System.out.println(result);		
 result=kai=="不可以"&&shenti=="健康";		
 System.out.println(result);		
		
 System.out.println("---------------");		
 //||或者 ——所有结果都是false那么结果false  如果有一个true,结果就为true		
 // 进班:政府说开学 或者 学校说开学		
 String kai1="可以";		
 String kai2="可以";		
 boolean result01=kai1=="可以"||kai2=="可以";		
 System.out.println(result01);		
 result01=kai1=="可以"||kai2=="不可以";		
 System.out.println(result01);		
 result01=kai1=="不可以"||kai2=="不可以";		
 System.out.println(result01);		
 System.out.println("---------------");		
 //&& ||是可以短路的		
 //&&可以短路  &:并且		
 /*System.out.println(2/0==1); 2/0不可执行,只要一执行就会出异常*/		
 boolean info= 1==2 && 2/0==1 ;//在&&的连接条件中:如果前边第一个是false 第二个根本就不执行		
 System.out.println(info);		
 /*info= 1==2 & 2/0==1 ;//在&不会短路		
 System.out.println(info);*/		
 /*info= 1==1 && 2/0==1 ;//如果第一个是true,第二个会执行		
 System.out.println(info);*/		
 System.out.println("---------------");		
 //||可以 短路  |不能		
 boolean info1= 1==1 || 2/0==1 ; //||来说,如果两个里边有一个为ture结果就是true--第一个为true第二个就不会执行		
 System.out.println(info1);		
 /*info1= 1==1 | 2/0==1 ; //||来说,如果两个里边有一个为ture结果就是true--第一个为true第二个就不会执行		
 System.out.println(info1);*/		
/* info1= 1==2 || 2/0==1 ; //第一个为false 第二个才会执行		
 System.out.println(info1);*/		

3.7 运算符的优先级

注意:分析一个表达式,从左往右看,先运算优先级高的,在运算优先级低的,如果同级,需要按照结合方向。

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值