初学JAVA

初识JAVA

java是一门面向对象的程序设计语言,并且具有与平台无关、简单高效、多线程、安全与健壮的特点等,被广泛的运用于企业级Web应用开发与移动应用开发,也是当代最重要的编程语言之一。

基础的dos命令

1.mkdir – 创建目录
2.cls 清屏
3.盘符: 如 E: D: C:
4.dir指令,可以看某个目录下的子目录
5.cd:切换目录 cd …回到上一级目录 cd . 在当前目录下
6.rd 删除一个目录 – rd 目录名
7.del 删除一个文件 – del 文件名

快捷键:
敲命令的时候自动补全 tab
打开命令行 win+R
用上下箭头翻阅历史指令记录
命令行窗口中的内容复制的问题:右键—>标记(k)–>左键
选中要复制的区域—>enter(回车)即拿到了要复制的内容,然
后可以将其粘贴到其他地方

编译与运行

用记事本、Editplus或者其他文本编译器写一个java源程序,并保存在目录中。
1.打开命令提示符窗口,使用dos命令“cd”将命令提示符窗口的当前目录改为存放在该文件目录下,以便编译器能找到源文件
2.再用javac命令编译文件,得到字节码文件
3.用java命令解释执行文件,得到自己想要的结果

jdk与jre

jdk: java development kit java开发工具包
jre:java runtime environment java运行时环境

java为何物

1.C语言的编译与运行对环境有要求,对同一个程序在使用不同的编译器进行编译的时候有没有出现过不同的结果?
32bit机器下,char* p所占内存空间的大小?
4Byte—指针存放的内存地址
64bit机器下,char* p所占内存空间的大小?
8Byte
在32bit机器下编译好的C语言程序,放到64bit机器上运行是否可以?
可以的

这里是引用
在64bit机器下编译好的C语言程序,放到32bit机器上
运行是否可以?不可以
为什么?
1Byte = 8bit 1bit能存放高低电频,0 or 1;
32位机器意味着内存寻址的大小范围为32个0 到 32个1,高低电频要靠电线来传输,可以想到一定有32根线传送高低电频。
00000000 00000000 00000000 00000000
11111111 11111111 11111111 11111111
从32个0到32个1 都是内存物理地址的编排顺序,
要找到其中的地址,是不是需要有32根地址线来找。
32bit机器下的指针所占内存4Byte,64bit机器下的指针所占内存8Byte,
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
11111111 11111111 11111111 11111111
11111111 11111111 11111111 11111111

java语言:一处编译,处处运行
同一份代码,编译一次之后,可以在任意环境上执行。
因为,java运行在java虚拟机上。java虚拟机是什么呢?jvm
jvm:相当于一个操作系统,运行java的。不是编译java的。编译完成的java程序,只在jvm上跑,至于如何跟硬件以及宿主机操作系统进行交互,是jvm的事情,程序员一般情况下不用管。也不在乎在哪个操作系统上,因为编译好的java程序执行在jvm上。

这里是引用java是半编译语言(高级语言),java源程序(.java)在经过java编译器编译后成为java字节码文件(.class文件)而cpu只认识机器码,不认识字节码,所以java程序要想执行,必须通过java虚拟机把字节码转换为机器码。
在不同的平台上,字节码是一样的但是虚拟机不同(例如:windows、Linnux),运行在不同平台上的虚拟机将相同的字节码解释给不同品台上的cpu,这样,java程序就可以在不同的平台上运行了。

java中没有指针的概念,指针已经被封装好了。程序员的注意力在程序上,业务逻辑上,不需要管理太多的复杂的对于硬件的操作。这让java变得简单易学易用。
但是,java和C比较起来,也有一些不足之处,比如,C/C++这些需要对复杂的内存进行操作和管理,内存的操作和管理由程序员自行进行。稍有不慎就会发生内存泄露等。但是如果管理得好呢,那么程序的效率就很高。这就是人们常说C/C++效率比java好的地方。对于好的程序员来说,健壮性java确实不如C/C++。
什么是JVM?
jvm叫做java虚拟机,一看就不是一个固定的软件。那它是什么呢?jvm是一套标准。是由SUN公司制定的标准。人们可以依照这一套标准进行jvm具体的版本的开发。比如HotSpot,它是遵照jvm的标准,使用jdk开发工具进行开发出来的一个软件,用来运行编译好的java程序。

OpenJDK是开发者工具

HotSpot---->jvm的一个实现
java是开源的,所以jdk有源码,openjdk也有源码,若想了解jvm的具体实现,比如你要知道HotSpot是怎么写出来的,有哪些程序组成,可以看OpenJDK源码。

java基础

在editplus中,蓝色字体是关键字,黑色的是标识符,粉色的是字
面量
什么是关键字、标识符、字面量
字面量:数据
标识符:变量名,函数名,类名,函数的参数名等这些由程序
员自己定义的名字都叫做标识符。只能包含数字字母下划线$,不能
以数字开头

关键字:是java保留的一些有特殊用途的,关键字是不能用来
做标识符的
E:\java基础>del *.class 这个是用来删除当前文件夹下
所有的以.class结尾的文件
在这里插入图片描述
1.java程序是怎么执行的?
我们知道,java源程序是以xxx.java命名的,源程序是程序员编写的,人能看懂的,请问我们写代码是要给谁看?计算机
计算机能看得懂我们上面写的代码吗?看不懂
计算机能看懂什么东西?计算机实际只能看懂0和1
为什么?因为计算机压根儿什么都看不懂,他只能接受高低电频,高为1,低为0,是不是这样?所以计算机只能读懂二进制。我们用符号写就的东西,它搞不懂。那么符号写就的是为了人能读懂,程序员能更方便简洁的去写代码。写完代码之后,我们要将这些字符转换成二进制,机器能处理的二进制。
xxx.java通过编译器编译之后,生成xxxx.class文件,该文件中保存的就是二进制。
我们将这个xxx.class文件送入虚拟机JVM,jvm负责解释执行。
以后我们写完工程以后,都会打包,打成jar包或者war包,这些包都是包含了大量的.class文件。我们把这些class文件给到用户之后,用户是没有办法更改我们的源程序的。
2. 关于xxx.java文件中的class
一个class对应一个类,在编译以后,一个class会生成一个xxx.class文件
一个xxx.java文件中,可以有多个class类,有几个类,就会在编译之后生成几个对应的.class文件
一个xxx.java文件中,不可以存在重名的两个类,如果存在,编译报错(类重复)
一个xxx.java文件中,可以没有public关键字.
对于编译来说,编译只是对语法进行检查,只与是否有方法、属性这些东西,对于编译来说并不重要,只要语法对了,编译就通过。

关于java源程序

在java类体中不能直接写java语句,这样编译报错。
在类体中,能够直接定义变量,且只能在给变量定义的时候
直接赋值,如果拆开赋值,编译无法通过。
java语句要写在哪里呢?要写在方法中,不能直接写在类体
中。

java类包括哪些内容

在一个java类中,只能存在两种类型的内容,
第一个叫做数据(变量的定义和定义时直接赋值),
第二个叫做方法。java语句
只能写在方法中,不能直接写在类体中方法外。否则编译报错。
一个java程序只能有一个main方法,一个java工程也只能
有一个main方法,该方法的写法只能是public static void
main(String[] args)
1,public是可以被删掉的,编译没有问题
2,static也是可以被删掉的,编译没有问题
3,void删掉之后报错,
E:\java基础>javac Hello.java
Hello.java:11: 错误: 方法声明无效; 需要
返回类型
main(String[] args) {
^
1 个错误
4,用其他的类型作为返回值类型,编译也没问题
5,但是,所有的东西只要运行都会报上述的错误,这是SUN
公司规定的,一定要写成
public static voidmain(String[] args)
6, 唯有能变得是String[] args中的args,这个是标识
符,只要满足标识符的准则,就可以。但是,一般情况下我们不建
议改变。

回顾以往内容

  1. 内存最小的单元是1Byte,1Byte=8bit
    2^10 Byte = lK
    2^20 Byte = 1M
    2^30 Byte = 1G
  2. 每个内存单元都有一个地址,该地址从0开始编排,顺序加1,
    32位机器,第一个单元的地址是32个0,最后一个单元的地址是32
    个1,这意味着有32根线在寻址
  3. 由此我们可以推算出,32位机器,最大的内存容量是多少?
    2^32= 2^2 * 2^30 = 4G,当你发现你的32位机器内存不够用
    了,你把内存增大到8G,有用吗?因为32位系统只有32根地址线在
    寻址,所以它最大只能找到4G的空间,不可能再大了,你加多少都
    没有用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值