关键词:
Java开发环境
- JVM(Java Virtual Machine)
- 在需要运行Java应用程序的操作系统上,安装一个与操作系统对应的JVM
- JRE(Java Runtime Environment)
- 是Java程序运行时的环境,包含JVM和运行时需要的核心类库
- JDK(Java Development Kit)
- Java程序开发工具包,包含JRE和开发人员使用的编译器工具
- 开发工具:编译工具(javac.exe)和运行工具(java.exe)
- 想要开发一个全新的Java程序,必须安装使用JDK
- 关系图:
Java运行的内存分配
各部分名称 | 作用 |
---|---|
栈(Stack) | 存储方法中的局部变量(方法的参数或方法体内部的变量);方法的运行过程一定在栈中;一旦超出作用域,立刻从栈内存中消失 |
堆(Heap) | 凡是new关键字创建的新对象,都存在于堆中;堆内存中每个对象都有一个地址值(16进制);堆内存中的数据,都有默认值(如整数默认值为0等) |
方法区(Method Area) | 存储.class相关的数据,包含方法的信息; |
本地方法栈(Native Method Stack) | 与操作系统相关; |
寄存器(pc Register) | 与CPU相关; |
Hello,World!
package 基础;
// 单行注释
/*多行注释
* public class 均为关键字,其后为定义的类名,其必须保持与该文件名完全一致。
* 类是Java当中所有源代码的基本组织单位。
* public static void 为固定写法,意为程序入口main方法。
* System.out.println 表示打印到控制台。
* */
public class Demo01_HelloWorld // 单行注释
public static void main(String[] args)
System.out.println("Hello,world!");
标识符
package 基础;
public class Demo02_标识符
/*标识符的命名规则
* 1. 可以使用英文字母(区分大小写),0-9数字,$(美元符号),_(下划线)
* 2. 不能以数字开头
* 3. 标识符不能是关键字
*
* 命名规范
* 1. 类名: 大驼峰 (HelloWorldClass)
* 2. 变量名: 小驼峰 (helloWorld)
* 3. 方法名: 同变量名
* */
常量
package 基础;
public class Demo03_常量
/*常量的分类
* 1. 字符串常量:双引号引用的部分,如:"abc", "字符串"
* 2. 整数常量: 没有引号的整数,如: 100,200, -250
* 3. 浮点数常量: 没有引号的小数, 如: 2.5, 3.14, 2.56
* 4. 字符常量: 单引号引用的单个字符,如:'A', 'b', '字'
* 5. 布尔常量: 仅两种: true false
* 6. 空常量: 表示没有任何数据: null
* */
public static void main(String[] args)
// 字符串常量:
System.out.println("abc");
System.out.println("");
// 整数常量:
System.out.println(30);
System.out.println(-5);
// 浮点数常量:
System.out.println(3.15);
System.out.println(-2.5);
// 字符常量:
System.out.println('A');
// System.out.println(''); 报错,有且必须有一个字符。
// System.out.println('AC'); 报错
// 布尔常量:
System.out.println(true);
System.out.println(false);
// 空常量:
// System.out.println(null); 报错,空常量不能直接打印输出。
数据类型
package 基础;
public class Demo04_数据类型
/*数据类型分类: 基本数据类型、引用数据类型
* 基本数据类型:
* 1.整数型:byte short int(默认) long
* 占用字节数 1 2 4 8
* 2.浮点型: float double(默认)
* 4 8
* 3.字符型: char
* 2
* 4.布尔型: boolean
* 1
*
*
* 引用数据类型:
* 1.字符串
* 2.数组
* 3.类
* 4.接口
* 5.Lambda
* ......
*
*
* 注意:
* 1. 字符串是引用数据类型。
* 2. 浮点型可能只是一个近似值,并非精确的值。
* 3. 数据范围和所占字节数不一定相关:float(4字节)数据范围比long(8字节)范围更大,
* 4. 浮点数当中默认的类型是double,如果需要使用float类型,需要加上后缀F。
* 如果是整数,默认是int,需要使用long类型,需要加上后缀L。
* */
变量
package 基础;
public class Demo05_变量
/*变量:程序运行期间,可以发生改变的量。
*
* 创建一个变量的格式:
* 1.数据类型 变量名称; // 创建了一个变量
* 变量名称 = 数据值; // 赋值,将右边的数据值,赋值交给左边的变量
* 2.数据类型 变量名称 = 数据值; // 创建变量并赋值
*
* 使用变量时的注意事项:
* 1.如果创建多个变量,那么变量之间的名称不可以重复。
* 2.对于float和long类型来说,字母后缀F和L不要省略。
* 3.如果使用byte或short类型的变量,右侧的数据值不能超过左侧类型的范围。
* 4.没有进行赋值的变量,不能直接使用,一定要赋值之后,才能使用。
* 5.变量使用不能超过作用域的范围。
* 【作用域】: 从定义变量的开始,直到所属的代码块结束,即大括号结束位置。
* 6.可以通过一个语句,创建多个变量,但不建议。
* */
public static void main(String[] args)
int num1;
num1 = 10;
System.out.println(num1);
int num2 = 20;
System.out.println(num2);
// 修改num1的值
num1 = 30;
System.out.println(num1);
byte by1 = 30;
System.out.println(by1);
// byte by2 = 400; byte的范围: -128 ~ 127
// 注意:右侧数值的范围不能超过左侧数据类型的取值范围。
short sh1 = 50;
long lo1 = 50;
float fl1 = 2.5F;
double do1 = 1.2;
char ch1 = 'A';
boolean bool1 = true;
// int a = 10;
// int b = 20;
// int c = 30;
int a, b, c;
a = 10;
b = 20;
c = 30;
int x = 100, y = 200, z = 300;
数据类型转换
package 基础;
public class Demo06_数据类型转换
/*
*当数据类型不同时,会发生数据类型转换,分为两种:
* 自动类型转换:
* 1. 特点: 代码不需要进行特殊处理,自动完成转换。
* 2. 规则: 数据范围从小到大。
*
* 强制类型转换:
* 1. 特点: 代码需要进行特殊的格式处理,不能自动完成转换。
* 2. 格式: 范围小的类型 范围小的变量名 = (范围小的类型)范围大的数据;
* 如: int num = (int)100L;
* 注意事项:
* 1. 强制类型转换不推荐使用,因为可能发生精度损失或数据溢出。
* 2. byte/short/char 这三种类型都可以发生数学运算,如:+
* 3. byte/short/char 在发生数学运算时,**都会首先被提升为int类型**,再参与计算。
* 4. boolean类型不能发生数据类型转换。
* */
public static void main(String[] args)
System.out.println(1024); // 整数,默认为int
System.out.println(3.14); // 浮点数,默认double
long num1 = 100L;
long num2 = 100;
System.out.println(num1); // 100
System.out.println(num2); // 100
//如上,加不加L都会输出100,其中发生了数据类型转换。
/*
左边为long类型,右边默认为int类型,等号赋值,将右侧的int常量赋值给了左侧的
变量long类型进行存储,由于 int --> long 符合了数据范围由小到大的要求,自动类型转换。
*/
double dou1 = 2.5F;
System.out.println(dou1);
// float --> double 符合由小到大,发生自动类型转换。
float fl1 = 3L;
// long --> float 符合由小到大,发生自动类型转换。
// 强制类型转换:
// int number1 = 100L;
// 直接报错;long --> int 不是由小到大的范围关系,
// 不能发生自动类型转换,需要强制类型转换:
int number1 = (int)100L;
System.out.println(number1);
// long 强制转换为 int类型,发生数据溢出。
int number2 = (int)6000000000L;
System.out.println(number2); // 1705032704
// double 强制转换为 int,发生数据精度缺失。
int number3= (int)3.99;
System.out.println(number3); // 3
// A字符被当做65进行处理。
char cha1 = 'A';
System.out.println(cha1 + 1); // 66
// 计算机底层会用一个数字(二进制)来代表字符'A',即65
// 一旦char类型的数据进行了数学运算,则会按一定的规则翻译为数字。
/*注意事项:
* 1. 对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过左侧数据类型范围,javac编译器会自动
* 隐含的进行强制类型转化:(byte),(short),(char)
* 2. 给变量进行赋值的时候,如果右侧的表达式中全部都是常量,没有任何变量时,
* 编译器javac会直接将若干个常量进行计算得到结果后,赋值给左侧变量,如下例:
* short result2 = 5 + 8; 等价于: short results2 = 13;
* 此过程成为“编译器的常量优化“
* 但是一旦有变量参与,不在进行常量优化。
* */
byte byteNum1 = /*(byte)*/30; // 等价于 byte byteNum1 = (byte)30;
System.out.println(byteNum1);
short s1 = 5;
short s2 = 8;
// short result1 = s1 + s2; //报错,左侧需要是int数据类型
short result2 = 5 + 8;
System.out.println(result2);
java基础-day01
今日内容介绍1、Java开发环境搭建2、HelloWorld案例3、注释、关键字、标识符4、数据(数据类型、常量) ###01java语言概述*A:java语言概述*a:Java是sun公司开发的一门编程语言,目前被Oracle公司收购,编程语言就是用来编写软件... 查看详情
java基础(代码片段)
目录数据结构数组注解常用方法实现接口声明类的成员属性方法重载实参、形参传递任意数量的形参协变返回类型this关键字static垃圾收集器java安装多版本,如何切换:数据结构基本数据类型:整数类型、浮点类型、字符类型、... 查看详情
java语法技术课第1课day01_java基础语法&helloworld(代码片段)
day01_Java基础课程目标1.【了解】Java语言发展史2.【理解】Java语言平台版本3.【理解】Java语言特点4.【理解】JRE与JDK5.【掌握】Java开发环境搭建6.【掌握】第一个Java程序7.【掌握】注释8.【理解】关键字/标识符一.Java语言概述Java语... 查看详情
java基础语法——数据类型扩展与运算符详解(代码片段)
一、前言?上文我们讲解了有关java编程基础语法的变量与关键字的知识点,本文将主要对java基础语法中的运算符进行讲解。?在讲解语法之前我们先来讲一下真正的开发环境。二、Java集成开发环境2.1eclipse的使用方法?之前我们在... 查看详情
java开发的前置知识:语言的划分基础语法java开发本地环境搭建
...1.3Objective-C是编译语言1.4JIT:JustInTimeCompilerII前置知识(基础语法)2.1基础概念2.2数据类型2.3装箱和拆箱(包装类)2.4序列化&反序列化2.5命名规范2.6一个java文件需要包含的内容:2.7java关键字2.8java反射机制2.9项目组织结构IIIJDK、J 查看详情
java基础01
第一章java开发环境 第二章数据类型和运算符 1.变量的命名规则 变量由字母、数字、下划线、或美元符号组成,不能以数字开头,不能使用java中的关键字,区分大小写,见名知义原则驼峰命名法。 2.java... 查看详情
javaee工程师入门技术之第1课day01_java基础语法&helloworld(代码片段)
day01_Java基础课程目标1.【了解】Java语言发展史2.【理解】Java语言平台版本3.【理解】Java语言特点4.【理解】JRE与JDK5.【掌握】Java开发环境搭建6.【掌握】第一个Java程序7.【掌握】注释8.【理解】关键字/标识符一.Java语言概述Java语... 查看详情
韩顺平循序渐进学java零基础第01-08章(代码片段)
第01章内容介绍内容介绍学习前的话就业方向开发场景应用领域内容梳理第02章Java概述程序举例Java故事Java特性Sublime11.Jdk介绍JVM是一个虚拟的计算机,具有指令集并使用不同存储区域。负责执行指令,管理数据、内存、寄... 查看详情
韩顺平循序渐进学java零基础第01-08章(代码片段)
第01章内容介绍内容介绍学习前的话就业方向开发场景应用领域内容梳理第02章Java概述程序举例Java故事Java特性Sublime11.Jdk介绍JVM是一个虚拟的计算机,具有指令集并使用不同存储区域。负责执行指令,管理数据、内存、寄... 查看详情
java基础学习笔记day01
java基础学习笔记day011.软件开发: 软件:按照特定顺序组织的计算机数据和指令的集合 开发:软件的制作过程 软件开发:借助开发工具和计算机语言制作软件2.java概述: java之父:詹姆斯·高斯林 ... 查看详情
spring+springmvc+mybatis(开发必备技能)01基础idea环境配置(代码片段)
Spring+SpringMVC+Mybatis(开发必备技能)01、基础idea环境配置环境:数据库:MySQL开发工具:IntelliJIDEA2020.1.3x64框架:SSM(Spring+SpringMVC+Mybatis)目录1、创建idea的 查看详情
java基础篇(01):基本数据类型,核心点整理
本文源码:GitHub·点这里||GitEE·点这里一、基本类型1、基本类型不使用New创建,声明一个非引用传递的变量,且变量的值直接置于堆栈中,大小不随运行环境变化,效率更高。使用new创建的引用对象存储在堆中。2、基本信息基... 查看详情
java小白训练营day01-开发环境:helloworld+注释(代码片段)
...,现今开发不是从头从底层去开发,都是在前人基础之上来开发java就直接提供开发平台,我们直接在这个平台之上进行开发平台java提供3个:1)JavaSE,提供很多基础工具类,上万个,封装,给... 查看详情
进收藏夹吃灰系列——java基础快速扫盲(代码片段)
...,常用语法以及面向对象编程等。【目录结构】目录Java基础1,Java语言的特点2,配置开发环境3,经典HelloWorld3.1命令行运行Java程序3.2使用IDEA运行Java程序4,数据类型&变量4.1为什么要设计不同种类的数据类型?4.2数据变量&类型的... 查看详情
整理java基础知识--number&math类
JavaNumber内置数据类型:byteintlongshortdouble等inti=10;floati=10.5f;实际开发中,经常遇到使用对象,而不是内置数据类型,包装类(IntegerLongDoubleFloatShort)都是抽象类Number的子类内置数据类型被当作对象使用时,编译器会把内置类型装... 查看详情
软帝学院:一万字的java基础知识总结大全(实用)
Java基础总结大全(实用)一、基础知识:1、JVM、JRE和JDK的区别:JVM(JavaVirtualMachine):java虚拟机,用于保证java的跨平台的特性。java语言是跨平台,jvm不是跨平台的。JRE(JavaRuntimeEnvironment):java的运行环境,包括jvm+java的核心类库。JDK(J... 查看详情
华为od机试真题java实现数据分类真题+解题思路+代码(2022&2023)
数据分类对一个数据a进行分类,分类方法为:此数据a(四个字节大小)的四个字节相加对一个给定的值b取模,如果得到的结果小于一个给定的值c,则数据a为有效类型,其类型为取模的值;如果得到的结果大于或者等于c,则数... 查看详情
day04_java基础(代码片段)
day04_java基础&IDEA开发工具一、课程目标2.【理解】什么是数组3.【掌握】数组的定义及初始化4.【理解】数组的内存图6.【理解】数组常见的问题7.【掌握】数组的案例8.【理解】二维数组三、一维数组3.1什么是数组数组就是存... 查看详情