Java基础(介绍与数据类型)

计算机(Computer):全称电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件和软件组成,没有安装任何软件的计算机称为裸机。常见的形式有台式计算机、笔记本计算机、大型计算机等。

计算机硬件(ComputerHardware):是指计算机系统中,由电子,机械和光电元件组成的各种物理装置的总
称。这些物理装置按照系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。

计算机通常由CPU、主板、内存、电源、主机箱、硬盘、显卡、键盘、鼠标、显示器等多个部件组成。

计算机软件(ComputerSoftware):是指使用计算机过程中必不可少的东西,计算机软件可以使计算机按照事先预定好的顺序完成特定的功能,计算机软件按照其功能划分为系统软件与应用软件。

  • 系统软件:专门用于运行其他程序的平台。比如:Linux、Windows、MAC等。
  • 应用软件:完成相应功能的程序。比如:MS-Office,QQ,微信等。

Java语言特点:简单性,面向对象,分布式处理,健壮性,结构中立,开源,跨平台,解释性,高性能,多线程,多态,安全性。

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

只要在需要运行Java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统上的运行。

Java Virtual Machine ,简称JVM;它是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一,JVM读取并处理编译过的与平台无关的字节码(class)文件。main方法是程序的入口;保证程序的独立运行;被JVM调用。
在这里插入图片描述
Java程序之所以能够实现跨平台运行,是因为它根本就不直接运行在任何底层平台上,而是需要在哪里运行,就在哪里(如Windows平台)事先准备好自己的Java平台,而这只是仅仅是安装和配置一个软件而已 。

因为java有了JVM,所以同一个java程序在三个不同的操作系统中都可以执行,这样就实现了java程序的跨平台性,也称良好的可移植性。

注意:

  • Java语言是跨平台的,是因为Java应用程序需要Java虚拟机JVM负责运行。
  • 而Java虚拟机JVM是不跨平台的,不同的操作系统需要安装与此对应的Java虚拟机JVM。

为什么双击.class文件不执行呢?
因为,Java不是在Windows上运行的 而是在JVM里面运行,JVM是在Windows上运行的。

在使用任何一门语言之前,必须先安装这门语言的运行环境!因此在使用Java语言之前,必须安装Java应用程序的运行环境。Java运行环境分为JRE和JDK
在这里插入图片描述class HelloWorld{
public void static void main(String[] args){
System.out.println(“HelloWorld!”);
}
}
首先编写Java源代码程序,扩展名为.java
在命令行模式中,输入javac命令对源代码进行编译,生成字节码文件,注意,字节码文件名和类名相同
编译完成后,如果没有报错信息,输入java命令对class字节码文件进行解释运行,执行时不需要添加.class

为什么要配置path环境变量?
程序的执行需要使用外部指令javac/java,但是javac/java指令仅仅能在JDK安装目录下的bin目录下执行。 程序开发过程中,不能将源代码写入JDK的安装目录,因此要求将源程序保存到任意位置的指定目录,所以需要使javac/java指令能够在任意目录下运行。

Path环境变量的配置方式:

  1. 我的电脑–属性–高级–环境变量
  2. 编辑path环境变量,在变量值开始处加上java工具所在目录,后面用 “ ; ”和其他值分隔开即可。
  3. 打开DOS命令行,任意目录下敲入javac
  4. 如果出现javac 的参数信息,配置成功

配置注意事项:
5. 新创建一个环境变量 JAVA_HOME 记录住jdk的目录。
6. 在path中通过%%动态的获取JAVA_HOME的值即可。
7. JAVA_HOME=C:\mysoft\Java\jdk1.7.0_21
8. path=%JAVA_HOME%\bin;%path%
9. %path%:动态获取path环境变量的值。
10. %JAVA_HOME%:动态获取名称为JAVA_HOME环境变量的值。

JVM查找类文件的顺序

  • 如果没有配置classpath环境变量,JVM只在当前目录下查找要运行的类文件。
  • 如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件
  • 值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下在查找一次。
  • 值的结尾出如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,不会在当前目录下查找,即使当前目录下有,也不会运行。
  • 建议:配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用“.”表示 。
常用DOS命令:
dir:列出当前目录下的文件以及文件夹
md:创建目录
rd:删除目录 remove directory
cd:进入指定目录
cd..:退回到上一级目录
cd\:退回到根目录
del:删除文件
exit:推出dos命令行
help:帮助命令
cls:dos窗口中清屏可以使用
键盘功能键:
Ctrl+W 关闭选项卡/窗口
Ctrl+P 打印
Ctrl+F 查找
Ctrl+N 新建文件
Win+E 打开资源管理器
Win+R 打开运行窗口
Win+I 打开Windows设置
Win+P 打开投影模式
Win+D 快速切换桌面
Win+L 快速锁屏
Alt+F4 强制关闭程序
Shift+Delete 强制删除,不走回收站

数据传送:
键盘与鼠标输入的数据会直接送往内存。
硬盘中存储的数据运行时,先将数据复制后存入内存,CPU再通过读取内存中的信息进行计算,计算后由内存输出到显示器上,内存(PAM)为临时存储数据,当要关闭当前程序时,内存中复制的数据会销毁,而硬盘中的数据仍然存在。
内存中的每一个空间都有一个物理内存地址,此地址由操作系统随机分配,当空间关闭再次重新打开时,会重新分配一个物理内存地址。
网卡:连接外部互联网,将外部获取的数据送入内存中,在传送到显示器或者硬盘中;当网卡传送大量数据时,内存空间有限,所以内存将由网卡传送过来的数据送入硬盘即缓存,输出时再将数据送入内存运行后输出到显示器上。
显卡:是电脑进行数模信号转换的设备,承担输出显示图形的任务。显卡接在电脑主板上,它将电脑的数字信号转换成模拟信号让显示器显示出来,同时显卡还是有图像处理能力,可协助CPU工作,提高整体的运行速度。


常量分类(常量-字面量 直接在程序中出现的数据 常量池)

  • 整数常量:所有整数 三类 正整数 零 负整数
  • 小数常量:所有小数
  • 布尔型常量:较为特有,只有两个数值。true false
  • 字符常量:将一个数字字母或者符号用单引号( ’ ’ )标识
  • 字符串常量:将一个或者多个字符用双引号(“ ”)标识
  • null常量:只有一个数值就是:null

变量
1.变量是内存空间中的一个临时存储区域
2.这个区域只能存储相互兼容的常量(仅仅存储常量在池中的地址)
3.区域有多大 + 区域存储什么类型的值 数据类型

  • 基本数据类型(大部分在栈里 也有一部分在堆里)

     	数字 byte	1-8	-2^7 ~  2^7 - 1     -128~127
     	     short	2-16	                  -32768~32767
     	     int	4-32	
     	     long	8
     	     float	4
     	     double	8
     	字符 char	2 0~65535
     	布尔 boolean	?
    
  • 引用数据类型(对象-堆内存中)

     	字符串
     	数组[]
     	对象
    

运算符:

  • 算数运算符 + - * / % ++ – 重点++

     	后++
     	1.开辟临时存储区
     	2.将原先的值赋值到临时存储区
     	3.本身+1
     	4.将临时存储区的值向外调用
     	i=i++ i不变
    
  • 赋值运算符 += -= /= %= *= =

     	+= 
     	x=x+m => x+=m
     	short s=3;
     	s+=3;//没问题
     	s=s+3;//有问题
    
  • 比较运算符 > < >= <= == !=

  • 逻辑运算符 & | ! ^ && ||

     	主要针对布尔进行计算
     	重点:& 和 &&的区别
     	& 两边都执行
     	&& 左边为假 右边不执行
     	| 两边都执行
     	|| 左边为真 右边不执行
    
  • 位运算符 & | ^ ! >> <<

     	主要针对数字进行计算
    
  • 三元运算符

     	数据类型 变量名=布尔表达式?值1:值2;
    

    语句结构:

  • 顺序结构:从上到下一行一行执行(从主函数开始)

  • 选择结构:在从上而下的运行过程中 产生了分支

     	if
     	switch
    
  • 循环结构:… 产生了重复执行

     	循环四要素
     	1.循环的初始化:循环从哪里开始
     	2.循环继续条件:什么时候继续循环
     	3.循环体:需要被重复执行的代码
     	4.循环步长(周期,间距):统计次数 改变数据
     	for
     	while
     	do-while
    
  • 跳转结构:… 可以跳出某一个语句

     	break:
     		可以用在switch 直接跳出
     		可以用在循环   直接跳出
     	continue
     		只能用在循环 当前循环结束开启下一次循环
     	return
     		!!!!仅仅是结束当前函数 如果return后有代码 执行不到 报错!
    

进制:

  • 二进制:由数字0和1组成的数字序列。前面要以0b或者0B开头,目的是为了和十进制进行区分,如0b1001。
  • 八进制:以0开头,并且其后由0~7范围内的整数组成的数字序列,如0432。
  • 十六进制:以0x或0X开头,并且其后由0~9、A~F组成的数字序列,如0Xed1。

进制转换:

  • 十进制转二进制:十进制转成二进制—>除以2倒取余数。

在这里插入图片描述

  • 二进制数转十进制数:二进制转成十进制—>按2的幂数展开并累加。
  • 二进制转八进制

在这里插入图片描述

  • 负数的表示形式:

对于一个负数,它的表示形式非常简单,即用这个负数所对应的正数的二进制数取反然后加1,即可得到这个负数的二进制表现形式。

在这里插入图片描述

  • Java语言的整型常量默认是int型,声明long型变量后加上‘l’或‘L’;
  • Java浮点型常量默认是double,则要声明一个常量为float型,则需在常量后加上f 或 F;
  • Java里只有浮点型的变量才可以接受科学计算式结果: int num = 314E2; //× num为int类型,不可以使用科学计数法。

数据类型转换:

  • boolean类型不能转换为其他的数据类型
  • 默认转换:byte,short,char→int→long→float→double
  • 强制类型转换:目标类型 变量名=(目标类型)(被转换的数据),目标类型取值范围小于源类型时。
  • 自动类型转换:目标类型的取值范 围大于源类型的取值范围。

三元运算符
三元运算符的格式:

  • (表达式1)?表达式2:表达式3;

三元运算符的运算原则:

  • 表达式1运算结果必须为boolean类型的值
  • 当表达式1的结果为true时,表达式2的运算结果就为整个三元运算符的结果
  • 当表达式1的结果为false时,表达式3的运算结果就为整个三元运算符的结果

’\u0000’表示一个空白字符,即在单引号之间没有任何字符。之所以能这样表示,是因为Java采用的是Unicode字符集,Unicode字符以\u开头;\n换行;\t制表符。

System.out.println(“你好”);
//打印完毕之后并换行
System.out.print(“大家好”);
//打印完毕之后不换行
System.out.printf(“年龄=%d,钱=%d”,age,money);
//输入数据 创建一个扫描器,用于扫描系统输入

byte b3=(byte)128;//强制转换 整数一般默认为int型
System.out.println(b3);//-128

short s1=180;//不兼容的类型: 从int转换到short可能会有损失
short s2=(byte)6666666;
System.out.println(s2);//-86
//byte和short变量之和是个int

System.out.println(Integer.MAX_VALUE);//2147483647
System.out.println(Long.MAX_VALUE);//9223372036854775807
long l1=123123123123123123L;//整数常量(int)+L->Long常量

float f=3.14;//浮点型常量默认double类型
float f=3.14F;//不兼容的类型: 从double转换到float可能会有损失
f=3.14D;//定义一个double变量 8字节

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值