这里是目录
一、Jdk
java deve kit
站在公司的角度jdk的更新非常快,现在大多数公司都用1.8版本。并不会用最新的jdk。
jdk一般会安装到C盘,装到其他盘后期应该会出现问题。
假如出现:xxxxx不是内部命令,一般都是环境配置出现初五。
到大公司后 老大只会告诉你安装 哪些软件,这些软件在公司的哪个目录下,不要试着问老大怎么装软件,要学会自己尝试。
前期学习不用集成开发环境,有时候面试题会问javajdk的命令有哪些。
二、java和C/C++
java 的语法比C/C++更简单。但是不代表语言简单。
三、java历史
在之前9几年叫做oak,是做 只能微波炉,智能家电。
在印度尼西亚有个岛盛产咖啡,叫做爪哇岛。
后来叫做java。发明java的人喜欢喝咖啡。所以起名叫做java。
四、为什么选择学习java
1.相对C/C++语法比较简单
2.面向对象语言。
3.分布式(微服务)
4.健壮性
5.安全性(java非常安全)
6.跨平台(在Linux上写的代码也可以在windows上运行)
前期口号:一次编译,到处运行
7.可移植性(在C++有数据类型32位,64位区别,而java没有)
java生态齐全,什么叫生态齐全?有各种库。阿里巴巴是国内用java最多的公司。围绕java有很多工具。生态比较齐全。
java开发成本低,需要的服务器比C/C++可能会少。
1.前端基础
最基础的是HTML想要变得好看就要+CSS,具有互动就要javaScript
写前端技术含量很低。后端只要写明白了,前端看看就会了。
HTML相当于骨架,素颜。
CSS相当于化妆了。
javaScript相当于增加了交互。
五、初始java的main方法
注意:
java的main方法极其复杂
1.一个java文件当中只能有一个public的类
2.且类名需要和文件名相同
3.在java里面和C/C++的编程规范不太同,大括号一般是紧更着当前行的。
4.类名一定要采用大驼峰的形式命名
文件名不可以是数字,汉字,不符合编程规范。
java中只有一个public类且类名需要和文件名相同。
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
//打印东西并换行
}
}
Java中的main方法为什么是静态的static?以后说
java的返回值是void
String[] args的作用是什么?
java里面的函数叫做方法体。
六、如何运行java程序?
真正的大神写代码不会用IDEA等集成开发环境。
第一步是编译。
1.编译
打卡cmd快捷键是win+r。
javac是java的编译器。
命令:
javac -HelloWorld.java
生成.class后缀的文件
.class是字节码文件,二进制文件是给计算机看的。
什么是字节码文件?
字节码文件就是class文件,一个类对应一个字节码文件。
为什么这么设置呢?
为了方便使用。如果需要HelloWorld这个类,那么就加载对应的字节码的文件。
JDK的编译错误
原因是什么?
在windows下创建一个文件默认是UTF-8,而javac默认是GBK编译。
字节码格式不匹配。你写的是文本文件,但是编译是以GBK编码的。
假如报错出现:错误: 编码GBK的不可映射字符
就使用命令:
javac -encoding UTF-8 HelloWorld.java
2.运行
java是运行命令
命令:java +文件名
注意这个文件名不带后缀
java HelloWorld
java的.class文件是怎么跑起来的?
1…class文件首先会加载到JVM(java虚拟机)中。
3.JDK JRE JVM的区别
jdk:java开发工具,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等
JRE:Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境
JVM:java虚拟机,运行Java代码
我们安装的是javaJDK.
JDK里会包含JRE,JRE里面包含JVM.
所以为什么会一次编译到处运行呢。
七、数据类型和变量
变量是可以改变的量。
变量占有内存,什么是内存?
内存和硬件息息相关,得从冯诺依曼体系说起。
冯诺依曼五部分组成,
输入设备:键盘
输出设备:屏幕
运算器,控制器:cpu
内存储器:内存
外存储器:u盘,磁盘,光盘
比如电脑8+256.
8指的是内存,8这个位置的数字越大,电脑运行程序越不卡。
我们定义的变量,都是在内存储器上的。
计算整形的大小
int a = 10;
//直接跟上整形就可以
System.out.println(a);
因为第一位是符号位,剩下的31位才是数据位,所以整形的数据范围是-231~231-1.。
负数最小值:是1后面3跟2个0这是规定。所以不用减1.
java局部变量一定要初始化。
java当中没有所谓的全局变量。