25天掌握java基础(一)——Java概述、IDEA、Java基础语法

Demo01-Java概述、IDEA、Java基础语法

1.安装jdk

怎么验证jdk是否安装成功了(需配置环境变量,具体看):

需要看bin目录下的java.exe和javac.exe能否运行

  • javac.exe是编译工具,用于将写好的java源代码文件(后缀是.java)编译为计算机能识别的字节码文件(后缀是.class)我们写好的java程序都是高级语言,是人能看懂的,计算机看不懂
  • java.exe是执行工具,执行编译后的代码

注意,java.exe和javac.exe是命令行程序而不是图形界面化程序所以,如果直接双击打开会一闪而过,那么运行该程序就需要用到命令行窗口,在命令行分别输入java -version和javac -version验证安装是否成功并检查安装版本是否正确

2.命令行窗口的一些常用命令

常用命令作用
盘符切换到某个盘符下: D:
dir查看当前路径下的文件信息
cd进入单级目录: cd study
进入多级目录: cd D:\study\java\code\javaSE
回退到上一级目录: cd …
回退到盘符根目录: cd \
cls清屏

技巧:如果我想进入D盘下的study文件夹,我可以在D盘下cd st然后按table就会自动补全study,如果没有补全:在命令行窗口上边的白色区域右键->属性->勾选"快速编辑模式"

3.java入门程序:HelloWorld

1.创建HelloWorld.java文件并编写源代码

public class HelloWorld {//注意这里的类名要和文件名一致,都是HelloWorld
	public static void main(String[] args) {
		System.out.println("Hello World");
	}
}

2.在命令行编译该源文件

  • 打开命令行窗口后先切换到源文件的父目录下

  • 在命令行窗口中输入javac HelloWorld.java

1.这里输入时注意要带上文件后缀.java

2.可以输入javac Hel后按table自动补全

3.编译后得到的字节码文件默认与HelloWorld.java在同级目录下

3.运行字节码文件

  • java HelloWorld

此时不能加后缀.class否则会报错

JDK11开始支持java直接运行源代码文件(只是我们看不到,实际上底层还是先编译得到一个临时class文件再执行该class文件这里的class文件是临时存在的,我们在.java的同级目录下看不到)

4.java程序的执行原理

计算机底层是硬件电路,是通过通电和不通电来控制电路运转,通电是1,不通电是0,所以机器语言是由0和1组成的

编译语言发展历程:机器语言->汇编语言->高级语言

java是一门高级编程语言,使用接近人类自己的语言书写,翻译器再将其翻译成计算机能理解的机器指令

5. JDK组成,跨平台原理

5.1JDK组成及程序运行过程

  • jvm:java虚拟机,真正运行java程序的地方
  • 核心类库:java自己写好的程序,用来给程序员自己的程序调用
  • jre:由jvm和核心类库组成,是java的运行环境
  • 开发工具:java.exe,javac.exe…
  • jdk:由jre和开发工具组成

一个java程序运行的全过程:

1.javac.exe将源代码进行编译

2.java.exe将编译后的字节码文件送到jvm运行

3.程序在jvm运行时还需要调用java自己写好的程序,也就是需要用到核心类库

5.2跨平台原理

Sun公司为不同平台提供了不同的jvm虚拟机,所以程序只需要安装一次就可以了,想在不同平台运行就安装对应的虚拟机就可以了

6.PATH和JAVA_HOME环境变量

Path环境变量:用于记住程序路径,方便在命令行窗口的任意目录启动程序

JAVA_HOME:告诉操作系统JDK安装在了哪个位置(将来其他技术要通过这个环境变量找jdk)

针对我自己的电脑我的JAVA_HOME和Path如下:

  • JAVA_HOME:E:\java\jdk\jdk\jdk1.8.0_121
  • Path:%JAVA_HOME%\bin

1.较新版本的jdk在安装时会自动配置javac和java的路径到Path环境变量中去,因此javac和java可以直接使用

2.较新版本的jdk只是自动配置了Path,没有自动配置JAVA_HOME

7.集成开发工具

集成开发环境(IDE,Integrated Development Environment):

  • 把代码编写,编译,执行等多种功能综合到一起的开发工具,可以进行代码智能提示,错误提醒,项目管理等等
  • 常见java的IDE工具有:Eclipse,MyEclipse,IntelliJ IDEA,Jbuilder,NetBeans等

8.注释

注释不影响程序的执行,编译后的class文件中已经没有注释了

9.字面量

public class LiteralDemo {
    public static void main(String[] args) {
        // 1、整数、小数
        System.out.println(666);
        System.out.println(3.14);

        // 2、字符:加单引号,有且仅能有一个字符
        System.out.println('中');
        System.out.println(' ');
        //System.out.println('中国'); // 报错的
        //System.out.println(''); // 报错的
        // 注意:几个特殊字符
        System.out.println('\n'); // \n代表换行
        System.out.println('\t'); // \t代表一个tab

        // 3、字符串:加双引号,里面的内容可以随便写
        System.out.println("");
        System.out.println("    ");
        System.out.println("我爱您中国 abc 1234324 ");

        // 4、布尔值:true , false
        System.out.println(true);
        System.out.println(false);
        
        //5.空值:null
    }
}

10.变量

10.1变量使用时的注意事项

  • 变量的有效范围是从定义开始到"}"截止,且在同一个范围内不能定义2个同名的变量
  • 变量定义的时候可以没有初始值,但是在使用的时候必须给初始值

10.2变量原理,ACSII,二进制

1.数字都是转换为二进制再存储在计算机中,使用0和1,按照逢二进一的规则来表示数据的存储(在我们手动计算时逢二进一太麻烦了,所以用除二取余法)

十进制转二进制:除二取余法

在这里插入图片描述

2.针对13,计算机存储时并不是直接存储这个1101,计算机在存储数据时以8位为一组存储数据,所以13在计算机存储时就是00001101

  • 计算机最小的组成单元是:使用八个二进制位为一组来保存数据,我们称之为一个字节(byte,简称B)
  • 其中的每个二进制位称为一位(bit,简称b),所以1byte=8bit,简写为1B=8b

3.字符存储计算机时先根据ACSII转换为对应的数字,再将该数字存储到计算机中.

System.out.println('a'+1);//输出98
System.out.println('a');//输出a

第一个输出98:计算机先从存储的数据中获取到97,然后进行运算得到98并展示出来

第二个输出a而不是97:计算机先从存储的数据中获取到97,然后发现这是一个字符而且并没有进行其他的运算而是直接输出,所以计算机就将97转换为字符形式展示出来

4.计算机存储图片:

  • 图片就是无数个像素点组成的
  • 每个像素点的数据:用0~255*255*255表示其颜色

5.八进制和十六进制

使用二进制的话,一串0和1太长了,不易表示,使用十进制的话,不能一眼看出来这个数据转换为二进制对应的什么,不易观察,所以为了方便观察和表示二进制,推出了八进制和十六进制

每3位二进制作为一个单元,最小数是0,最大数7,共8个数字,这就是八进制:

  1. 97转为二进制:01100001
  2. 将这个二进制分组:从右到左:001和100和001(01不足三位左补0结果是001)
  3. 001对应1,100对应4,001对应1,所以八进制就是141
  4. 再由八进制转为二进制:从右到左:1对应001,4对应100,1对应001,结果是001 100 001
  5. 去掉最左边的0就是最终结果01100001

二进制,十六进制的互相转换和二进制,八进制类似,区别就是把3位一组改为4位一组

java程序中支持书写二进制,八进制,十六进制的数据,分别需要以0B或者0b,0,0X或者0x开头

System.out.println(0b01100001);
System.out.println(0141);
System.out.println(0x61);

这三个输出的都是97

1B=8b

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB

11.基本数据类型

数据类型关键字取值范围内存占用(字节数)
整数byte
short
int(默认)
long
-128~127
-32768~32767
-2147483648~2147483647(10位数)
-9223372036854775808~9223372036854775807(19位
1
2
4
8
浮点数float
double(默认)
1.401298e-45到3.402823e+38
4.9000000e-324到1.797693e+308
4
8
字符char0~655352
布尔booleantrue,false1
byte number = 128;//报错
long l1 = 34243243243245;//报错
long l2 = 34243243243245L;//正确
float f1 = 3.14;//报错
float f2 = 3.14F;//正确

1.long l1 = 34243243243245;报错原因:随便写一个字面量34243243243245默认是当成int类型的,34243243243245虽然没有超过long的范围,但是34243243243245它超过了int本身的范围,如果希望34243243243245这个数据是long类型的,需要在后面加L或l

2.float f1 = 3.14;报错原因:随便写一个小数字面量默认是double类型的,如果希望随便写一个小数默认是float类型的需要加上F或f

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

认真生活的灰太狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值