900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > [Java]介绍|环境|编码|数据类型|String|运算符|标准输入|if语句|循环语句|三元运算符|

[Java]介绍|环境|编码|数据类型|String|运算符|标准输入|if语句|循环语句|三元运算符|

时间:2023-12-29 19:34:29

相关推荐

[Java]介绍|环境|编码|数据类型|String|运算符|标准输入|if语句|循环语句|三元运算符|

一、介绍

1、java是oracle(甲骨文)公司的。

2、JAVA语言有3类应用

1)JAVAME

用于嵌入式开发。

比如:电视机顶盒、打印机、PDA又称掌上电脑(手机、平板电脑、游戏机、扫码枪)。

2)JAVASE

JAVA基础,用于桌面应用程序开发,软件以windows窗口模式打开,如QQ、音乐播放器。

3)JAVAEE

后端开发。开发网页、app。

3.垃圾回收

垃圾回收在java程序运行过程中自动启用,程序员无法精准控制和干预。

二、环境

1、jvm、jre、jdk

1)jvm

java虚拟机,安装jvm可实现跨平台。

java中所有的基本类型都有固定的存储范围和所占内存空间的大小,而不是受具体操作系统的影响,以保证java程序的可移植性。这是因为jvm,即java虚拟机做了调整。

2)jre

包含Java虚拟机和核心类库。有了jre,java程序就可以正常运行起来。

3)jdk

软件开发工具包,包含了程序运行时所需的工具和jre。

总之,安装jdk即可。

2、运行程序

一个程序在运行对的时候有两个基本的指令就是java.exe和javac.exc

//一个类名为TestJava01的类public class TestJava01{//执行类的入口函数public static void main(String[] arg){//打印语句System.out.print("这是我的第一个java文件");}}

1)javac.exe

功能是编译,具体解释:将一个.java类型的文件经过转化(编译),得到一个.class文件的过程。

一个类对应一个.class文件。我们将.class文件称为字节码文件。

javac.exe xx.java #会得到xx.class

2)java.exe

运行.class文件

java 类名

虽然我们这里出现了乱码,解决乱码:在编译的时候设置编码方式

3、配置环境变量

目的:将一些文件的路径系统化,可直接调用文件名执行文件。

三、编码

1)Unicode(UTF-16 LE)

全球统一编码,包含所有的语言。每个字符占2个字节,因而可以用16进制编码表示。

JAVA默认用Unicode,但是char类型是和ASCII编码等价的。

public static void main(String[] args) {char a='\u0061';char b=97;System.out.println(a); //aSystem.out.println(b); //a}

2)UTF-8

如果文档以英文为主时,Unicode编码比ASCII编码需要多一倍的存储空间,UTF-8编码由此而生。

全球统一编码,包含所有的语言。特点:英文字母占1个字节,汉字占2个字节。

3)ASCII

ASCII也称为美国编码。占用1个字节。

ASCII对照码

4)ISO8859-1

欧洲编码。

四、基本类型

变量其实是内存中的一块区域,使用变量名来访问这块区域。每一个变量使用前必须先声明(申请内存),然后必须进行赋值(填充内容),才能使用。

1、总结

2、自动转换顺序

1)byte、short、char、int、long、float、double

位 122 4848

byte a=1;//a=a+1; //报错,因为等式右边a+1为int型,把int型赋值给byte型要强制类型转换。//应改写为a=(byte)(a+1);System.out.println(a); //4

2)short和char不会相互转换

因为char是无符号的,范围是[0,65535]。而short的范围是[-32768,32767]他们互不包含。

3)byte short char三者在计算时会被转化成int类型

3、char

1)char存什么

可以存一个(字母、数字、字符),一个汉字,一个转义字符,一个ascii编码,一个Unicode编码。

2)编码方式

java字符采用Unicode编码,每个字符占两个字节(16位)

3)使用

char zi_mu='a';char han_zi='哈';char zhi=97;char uni='\u0061';char zhuan_yi='\n';

4)转义字符

\r 回车\n 换行\t 横向跳格,也叫制表符(excel字段间分隔符)\' 单引号\" 双引号\\ 反斜杠回车等于先按下回车(\r ascii码为10),再按换行(\n ascii码为13)

4、boolean

用于逻辑运算,一般用于程序流程控制。

java的boolean只允许取值true或false。不允许用0或非0表示。

boolean tmp1=true;boolean tmp2=false;boolean tmp3=0; //报错

5、int

1)最大值和最小值怎么算

int=4byte=32bit。

第一位为符号位,整数为0,负数为1。

2进制转10进制怎么算。

【1】其最大值为2的31次方-1

int型的32bit位中,第一位是符号为,正数位0。因此,int型能表示的最大的正数的二进制码是

0111 0111 1111 1111 1111 1111 1111 1111.也就是2^31-1。但是这样不好算,我们将其+1变成

1000 0000 0000 0000 0000 0000 0000 0000=2^31再-1 =2^31-1(加1减1值不变)

【2】最小值值为-2的31次方

最小的负数的二进制码是1000 0000 0000 0000 0000 0000 0000 0000

6、float、long

float定义时加f,long定义时加l

五、String

1、地址问题

String s1="hello"; //开辟一块空间放"hello"String s2="hello"; //直接将s2的指针指向"hello"的空间String s3=new String("hello"); //新开辟一块空间放"hello"System.out.println(s1==s2); //true 地址相同System.out.println(s2==s3); //true 地址不同

六、运算符

1、/与%

1)/

【1】在整数做被除数时,0不能做除数,否则报错。

System.out.println(3/0);Exception in thread "main" java.lang.ArithmeticException: / by zeroat test.Test.main(Test.java:6)

【2】小数做被除数,整数0结果为Infinity(无限大),因为0是无穷小,尽被除数也很小但相当于除数很大很大。

System.out.println(1.0/0);//Infinity

2)%

【1】为两个整数取余,结果与被取余数符号相同。小数没有意义(但不会报错)

System.out.println(3%5); //3System.out.println(-3%5); //-3System.out.println(3%(-5)); //3

【2】整数对0取模报错

System.out.println(3%0);Exception in thread "main" java.lang.ArithmeticException: / by zeroat test.Test.main(Test.java:6)

【3】小数对0取模,结果为NaN。

NaN=not a number(没有这个数)。因为该结果无穷大,无穷大无法明确显示,所提也就无法明确写出余数,所以显示NaN。

System.out.println(1.0%0);//NaN

2、异或(^)

不同为异(true),同为flase

System.out.println(true^false); //trueSystem.out.println(false^true); //trueSystem.out.println(true^true); //falseSystem.out.println(false^false); //false

3、取反

System.out.println(!true); //falseSystem.out.println(!false); //true

七、标准输入

1、Scanner

import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc=new Scanner(System.in);String str=sc.next();//读取键盘录入的字符串System.out.println(str);}}

2、next()

1)从什么开始读

从非空格的任意字符开始读,next()遇到空格、Tab、会停止向字符串中输入内容(但是仍然可以在控制台继续进行输入,只不过不再把字符输入到字符串中)。回车结束控制台输入。

所以next()不能读入空格、Tab,因为会结束。

运行1)中的代码,在控制台分别输入:

空格

Tab

从非空格和Tab开始输入

\t不影响

2)回车问题

不读入从控制台输入的回车

3.nextLine

1)从什么开始读

从包括空格的任意字符开始读,只有遇到回车时才结束。所以nextline()可以读空格和从控制台输入的回车。

2)回车问题

当nextLine放在next后面时,因为next不读入从控制台输入的回车,导入nextLine读入从控制台输入的回车,导致nextLine什么也没读就结束输入了。

3.nextLine、next的区别

1)从什么时候开始读

next()从非空格、Tab的任意字符开始读。

nextLine从包括空格的任意字符开始读。

2)停止

next()遇到空格、Tab即停止向字符串输入内容,但扔可以向控制台输入;回车结束从控制台输入。

nextLine()只有遇到回车时才结束。

3)回车

【1】next、nextInt、nextDouble等方法不读入从控制台输入的回车。

【2】nextLine读入从控制机台输入的回车。

【3】出现的问题:

这会导致当nextLine放在next后面时,因为next不读入从控制台输入的回车,所以nextLine读入从控制台输入的回车,使得nextLine什么也没读就结束输入了。

解决方法:在next、nextInt、nextDouble等方法之后加一个nextLine()读入这个回车,之后再加一个nextLine输入正常内容。

Scanner sc=new Scanner(System.in);String next=sc.next();String tmp=sc.nextLine();String line=sc.nextLine();System.out.println(next);System.out.println(tmp);System.out.println(line);

八、 if条件语句

1、if-else

1)书写格式

if(条件表达式){语句体1}else{语句体2}

2)执行流程

【1】计算比较表达式的值,看其返回的是true还是false

【2】如果是true,就执行语句体1

【3】如果是false,就执行语句体2

2、if-else if-else

1)书写格式

if(条件表达式1){语句体1}else if(条件表达式2){语句体2}else if(条件表达式3){语句体3}...else{语句体n+1}

2)执行流程

【1】首先计算条件表达式,看其返回 的是true还是false

【2】如果是true,就执行语句体1,if表达式结束

【3】如果是false,接着计算条件表达式2,看其是true还是false

【4】如果是true就执行语句体2,if表达式结束

【5】如果是false就计算比较表达式3看其是true还是false

【6】如果是false就执行语句体n+1...

【7】如果全是false就执行else

3、条件表达式

int i=3;int j=4;System.out.println(i==j); //falseSystem.out.println(i=j); //4

九、三元运算符

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

int num1=9;int num2=10;int max=num1>num2?num1:num2;System.out.println(max);//10

执行:先判断条件表达式的值,如果是true则执行表达式1,如果是false则执行表达式2

十、循环语句

1、while

1)while

//1-5累加int num=1;int res=0;while (num<=5){res+=num;num++;}

2)do-while

先计算后判断

//1-5累加int num=1;int res=0;do{res+=num;num++;}while(num<=5);System.out.println(res);

2、for

1)格式

int res=0;for(int i=1;i<=5;i++){res+=i;}System.out.println(res); //15

2)双层for循环

//打印2次数字for(int i=1;i<=3;i++){for(int j=1;j<=2;j++){System.out.print(i+" ");}System.out.println();}1 12 23 3

3、嵌套循环

是值在一个循环语句的循环体重再定义一个循环语句的语法结构,while、do-while、for循环语句都可以进行嵌套,而且他们之间也可以相互嵌套。

总的循环次数=内循环次数*外循环次数

外循环控制的是行数,内循环控制的是列数

4、死循环

while(true){}

for(;;){System.out.println("hi");}

十一、swich语句

1、格式

switch(表达式){case 常量1: 语句breakcase 常量2:语句breakcase 常量3:语句breakdefault:语句break}

常量1、2、3都只能是常量

2、执行流程

计算表达式的值,从第一个匹配的case开始一直往下运行,知道找到break位置。

如果图中遇到default也会正常运行其中的语句。

当表达式不与任何case后面的常量匹配时,会从default语句开始一直向下运行,直到遇到break为止,途中遇到case语句也会正常运行其中的语句。

3、default语句的顺序可以改变,但要注意改变顺序对程序的影响。

4、一个需要注意的问题

char tmp='a';switch (tmp){case 97:System.out.println(tmp);default:System.out.println("hi");}a hi

char tmp='a';switch (tmp){case 97:System.out.println(tmp); //同时报错,重复case 'a':System.out.println(tmp); //同时报错,重复default:System.out.println("hi");}

[Java]介绍|环境|编码|数据类型|String|运算符|标准输入|if语句|循环语句|三元运算符|循环语句|swich语句

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。