java基础(1)-概述

本文详细介绍了编程的概念,重点讲解了Java语言的特性、三大技术框架(JavaSE、JavaEE、JavaME)以及跨平台原理。Java的JDK和JRE之间的关系、JVM的工作机制以及程序运行过程也进行了阐述。此外,还涵盖了Java语法、数据类型转换、运算符、程序流程控制(如循环结构)等基础知识。对于初学者,这些内容构成了理解Java编程的基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、什么是编程?

1)、为了让计算机解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程就是编程。

2)、为了让计算机能够理解人的意图,人类就必须将需要解决的问题的思路、方法、手段通过计算机能够理解的形式告诉计算机。使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。

这种人和计算机之间交流的过程就是编程。

2、什么是java语言?

java是sun(斯坦福大学网络公司)于1995年推出的一门高级编程语言,它是一种面向Internet的编程语言。随着java技术在web方面的不断成熟,已经成为web应用程序的首选开发语言。

语言特点:简单、完全面向对象、安全可靠、与平台无关

3、java5.0之后,java分为三大技术框架

1)、javaSE:标准版

它是java基础阶段主要学习的内容,也是java的基础。该技术是java的最核心技术。

2)、javaEE:企业版

它是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术有servlet、jsp等,主要是针对web应用程序开发。

3)、javaME:小型版

该技术多应用于一些电子产品的嵌入式开发,但已被Android技术取代。

4、什么是跨平台?原理是什么?

所谓的跨平台,就是java语言编写的程序,一次编译后,可以在多个系统平台上运行。

原理:java程序之所以能实现跨平台,是因为它根本不直接运行在任何底层平台上,而是需要在哪里运行,就在哪里(如windows平台、Linux系统平台)事先准备好相应的java虚拟机。而这只是仅仅安装和配置一个软件而已。

5、什么是jdk和jre?

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

2)、JDK(java development kit java):即java开发工具包,jdk是提供给java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用再单独安装JRE了。

其中的开发工具:编译工具(javac.exe)、打包工具(jar.exe)等。

简而言之:我们使用JDK开发完成的java程序,交给JRE去运行

6、什么是JVM?

java virtual machine,即java虚拟机。它是运行所有java程序的抽象计算机,也是java语言的运行环境。JVM读取并处理编译过的与平台无关的字节码(class)文件。

1)、java编译器针对JVM产生的class文件,因此是独立于平台的

2)、java解释器负责将JVM的代码在特定的平台上运行

3)、java虚拟机是不跨平台的。

7、java程序的运行机制

 .java文件,经过javac.exe编译成.class文件。.class文件经过java 类名执行得到结果

总结:java程序由java源码文件、字节码文件组成

8、java语法

1)、java严格区分大小写

2)、一个java源文件中可以定义多个java类,但是其中最多只能有一个类被定义成public类

        如果源文件中包括了public类,那么源文件必须和该public类同名。

3)、一个源文件中包含了n个java类时,编译后会产生n份字节码文件,即每个类都会生成一个单独            的 class文件,且字节码文件名和其对应的类名相同。

9、注释

1)、单行注释用//

2)、多行注释用 /* */

3)、文档注释  /**  */

注:多行注释和文档注释都不能嵌套使用

10、标识符

在java程序中为了增强程序的阅读性而自定义的名称,比如:类名称、方法名称、变量名称等

命名规则:

  • 1)、由字母(A-Z/a-z)、数字(0-9)、下划线(_)、美元符号($)组成,不能以数字开头
  • 注意:此处的字母还可以是中文、日文等
  • 2)、对大小写敏感
  • 3)、不得使用java中的关键字和保留字
  • 4)、不得使用java API里面的类名作为自己的类名

11、java中的常量和变量

变量:占据着内存中的某一个存储区域,该区域有自己的名称(变量名称)和类型(数据类型),该区域的数据可以在同一类型范围内不断变化。

  • 为什么要定义变量呢?

变量是用来不断的存放同一类型的常量,并可以重复使用。而使用变量时,需要注意变量的作用范围和初始化值。

  • 变量语法格式:数据类型 变量名称=初始化值;
  • 作用范围:定义开始到定义它的代码块结束为止,在同一范围内,不允许多个局部变量命名冲突。

12、成员变量和局部变量

  • 局部变量:声明在方法中的变量,只要不声明在类括号里的变量都是局部变量。
  • 成员变量:在方法体外,类体内声明的变量,又称之为字段(Field)或全局变量。

注:成员变量作用在整个类中;局部变量作用在定义开始到定义它的代码块结束为止。

其实,java中没有全局变量,由于java是面向对象的语言,所有变量都是类成员。

局部变量调用前如果没有初始化,编译的时候就会报错。

13、基础数据类型

在数据类型中,最常用就是基础数据类型。java中基本数据类型有8种,如下:

数据类型占用空间(字节)取值范围默认值
整数型byte(字节类型)1-2^{7}~2^{7}-10
short(短整型)2-2^{15}~2^{15}-10
int(整型)4-2^{31}~2^{31}-10
long(长整型)8-2^{63}~2^{63}-10
小数型float(单精度浮点型)4-3.4E+38~3.4E+380.0f
double(双精度浮点型)8-1.7E+308~1.7E+3080.0
字符型char(字符类型)2

0-2^{16}-1

'\u0000'(代表空格)
布尔型boolean(布尔类型)1true或falsefalse

14、基本数据类型转换之向上转型和向下转换

整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵循以下原则:

  • 向上转换:容量小的类型可自动转换为容量大的数据类型

如:byte、short、char-->int-->long-->float-->double

  • 向下转换:容量大的类型需要强制转换才能转换为容量小的数据类型,使用时需要加上强制转换符,但是会造成精度降低或溢出。

注:byte、short、char之间不会相互转换,它们在计算时首先会转换为int类型。

       boolean类型是不可以转换为其它基本数据类型的。

示例代码如下:

long num=123L;
int i=(int)num;  //必须强制转换

int num2=123;
long l=num2;     //自动转换,不需要强转

总结:小转大,自动转,也叫自动类型转换(隐式类型转换)

           大转小,强制转,也叫强制类型转换(显式类型转换)

14、运算符

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

1)、算术运算符(+ 、 - 、* 、/ 、%)

++在变量前面:会先自行加1,再做赋值运算

++在变量后面:会先赋值,再自行加1

2)、赋值运算符(= 、 += 、-= 、*= 、/= 、%=)

3)、关系运算符(> 、>= 、< 、<= 、!=)

4)、条件运算符(&&、|| 、!& 、| 、^)

序号运算符       含义结果
1&&短路与两边为true,结果才是true
2||断路或有一边为true,结果就是true
3&逻辑与两边都是true,结果才是true
4|逻辑或有一边为true,结果就是true
5逻辑非(取反)!true=false、!false=true

三目运算符:布尔表达式?表达式1:表达式2

执行原理:布尔表达式结果为true时,执行表达式1。布尔表达式结果为false时,执行表达式2.

如:char sex=true? '男':'女';

注:&&和&的区别

运行结果没有任何区别,完全相同。只不过短路与会发生短路现象。那么什么是短路现象呢?

右边表达式不执行,这种现象叫做短路现象。

那么什么时候用&&,什么时候用&呢?

从效率上,&&比&效率高,因为逻辑与不管第1个表达式结果是什么,第二个表达式一定会执行。大部分情况下,建议使用短路与,只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择逻辑与。

5)、位运算符(& 、| 、^ 、~ 、>> 、<< 、<<< 、>>>)

15、程序流程控制

程序流程控制分为:顺序结构、条件结构、循环结构、控制循环结构

15.1、顺序结构

如果代码里没有流程控制,程序是至上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,直到程序的最后

15.2、条件结构(也叫分支结构)

形式1、if(条件表达式){
         执行语句;
       }

形式2、if(条件表达式){
         条件表达式成立时执行语句;
       }else{
         条件表达式不成立时执行语句;
       }

形式3、if(条件表达式1){
         条件表达式1成立时执行语句;
       }else if(条件表达式2){
         条件表达式2成立时执行语句;
       }......
       else{
         //上述条件表达式都不成立时,执行的语句;
       }

switch控制语句,语法格式如下:

switch(表达式){
  case 表达式可能的结果值1:
       执行语句;
       break;
  case 表达式可能的结果值2:
       执行语句;
       break;
    ......
  default:
       执行语句;
       break;  //最后这个一般不写
}

语法解析:先执行第1个case,都没有匹配的case值则执行default。

结束switch语句有两种情况,遇到break,switch语句执行结束。如果匹配的case或者default都没有对应的break,那么程序会从第1次匹配的case语句开始继续向下执行,运行可以执行的语句,直到遇到break或者switch结束为止。

注:switch语句只能使用byte、char、short、int四种基本类型以及它们的包装类和枚举。

1)、当分支较多时,用switch的效率很高。因为switch是随机访问的,就是确定了选择值之后直接跳转到哪个特定的分支。但是if...else是遍历所有的可能值,直到找到符合条件的分支。如此看来,switch的效率确实比if...else要高得多。但是switch只是在常量选择分支时比if...else效率高,但if..else能应用于更多的场合,比较灵活。

2)、switch...case占用较多的代码空间,因为它要生成跳表,特别是当case常量分布范围很大但实际有效值又比较少的情况。switch...case的空间利用率将变得很低。

15.3、三大循环结构

循环结构用于处理需要重复执行的操作,根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落我们称之为循环体。

while(条件表达式值为true){执行语句}:事先不需要知道循环执行多少次

do{执行语句;}while(条件表达式值为true):同上,只是至少要执行一次(先做,后判断)

for:需要知道循环次数

for循环语法结构如下:

for(初始化表达式A;循环条件表达式B;循环后的操作表达式C){
   执行语句D;
}
执行顺序:ABDCBDC

15.4、嵌套循环与流程控制

嵌套循环:循环里套循环

假设外循环的循环次数是m次,内循环的循环次数是n次。那么内层循环的循环次数需要m*n次。

流程控制:break语句和continue语句

1)、break:终止该层循环

2)、continue:跳过本次循环,继续下次循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值