【JAVA】笔记(1)---JVM内存图;方法重载条件;输入方法;转义字符;强制类型转换;变量分类及区别;Java命名规范;
Java命名规范:
1.包:全部字母小写;
2.类+接口:所有单词的首字母大写;
3.变量+方法:第一个单词的首字母小写,其余单词首字母大写;
3.常量名:所有字母均大写,且用下划线” _ “连接多个单词;
JVM内存:
1.栈内存:为所有方法运行时分配内存,为局部变量分配内存;
2.堆内存:为对象级别的类,实例变量分配内存;
3.方法区内存:为”.class“字节码,静态变量,静态方法分配内存;
注意:对于栈内存:先分配内存(压栈)的栈底元素后释放内存(弹栈);
后压栈的栈顶元素先弹栈;
内存图:

变量:
1.变量分为成员变量和局部变量;
2.成员变量定义在类内,方法外;成员变量又分为实例变量和静态变量;成员变量在整个类里都可以使用;实例变量储存在堆内存中,静态变量储存在方法区内存中;成员变量都有默认初始化值,所以即使没有初始化,也不会报错;成员变量可以被访问权限修饰符修饰;
3.局部变量定义在方法内;局部变量只能在定义它的方法里用;局部变量储存在栈内存当中,运行阶段结束,占用空间会自动释放;局部变量必须初始化,否则报错;局部变量不能被访问权限修饰符修饰;
强制类型转换:
1.概念:计算机会在运算俩个不同数据类型的数据时,会先把范围小的数据类型转换为数据大的数据类型,再进行运算;一个数据类型赋值给另一个数据类型的变量也是同理,计算机会先把范围小的数据类型转换为范围大的数据类型,再进行赋值;
2.1那么范围大的数据类型赋值给范围小的数据类型呢?正常情况下,编译器都会报错来提醒咱们的,那如果咱就是想要这个效果呢?那么就需要手动进行强制数据类型转换了:
格式1: int a =0;a= (int) 11.3 ; //这样11.3就会变成11,然后再赋值给 a ;格式2:int a = 0 ; a+=11.3 ; //同样效果;
注意:short,byte,char之间进行运算不会互相转换,最终都会转换为 int 类型;
转义字符” / “:
1. \n 换行;System.out.print("\n") ; 等价于 System.out,println ;
2. \r 制表符;使输出的一堆数据间有间隔,更整齐;
3. \\ 输出“ \ ” ; \' 输出 “ ‘ ” ;\" 输出 " " " ;
方法重载条件:
1.同一个类中;
2.方法名相同;
3.参数列表不同:参数个数不同/参数类型不同/参数顺序不同;
注意:“不同”针对的对象都是数据类型,而非变量名,eg: public void tool(int a, int b) { } 和 public void tool(int b, int a) { } 就不能构成方法重载;
随笔:
1.给 long 类型的变量赋值时,需要在数值后加” l “,eg:long num=100l;
给 float 类型的变量赋值时,需要在数值后加” f “,eg:float num=100f;
2.浮点数类型的数据在内存中存放的都是由误差的数据,所以不要比较俩个浮点数是否相等;
3.如何使用输入方法:
import java.util.* ; //在源文件的最上方,类外,导包
Scanner s=new Scanner(System.in); //创建对象,一个方法里创建一次即可
int a=s.nextInt( ); //整数 类型输入
double b=s.nextDouble( ); //浮点数 类型输入
String c=s.nextLine( ); //字符串 类型输入
博主能力有限,文章若有错误或不当之处,请狠狠打脸博主 (~ ̄(OO) ̄)ブ
【JAVA】笔记(1)---JVM内存图;方法重载条件;输入方法;转义字符;强制类型转换;变量分类及区别;Java命名规范;的更多相关文章
- java虚拟机学习-JVM内存管理:深入垃圾收集器与内存分配策略(4)
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 概述: 说起垃圾收集(Garbage Collection,下文简称GC),大部分人都把这项 ...
- java虚拟机学习-JVM内存管理:深入Java内存区域与OOM(3)
概述 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 对于从事C.C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又 ...
- java 深入理解jvm内存模型 jvm学习笔记
jvm内存模型 这是java堆和方法区内存模型 参考:https://www.cnblogs.com/honey01/p/9475726.html Java 中的堆也是 GC 收集垃圾的主要区域.GC ...
- 《深入分析Java Web技术内幕》读书笔记之JVM内存管理
今天看JVM的过程中收获颇丰,但一想到这些学习心得将来可能被遗忘,便一阵恐慌,自觉得以后要开始坚持做读书笔记了. 操作系统层面的内存管理 物理内存是一切内存管理的基础,Java中使用的内存和应用程序的 ...
- Java学习笔记之方法重载,动态方法调度和抽象类
一.方法重载 如果子类中的方法与它的超类中的方法有相同的方法名,则称子类中的方法重载超类中的方法,特别是当超类和子类中的方法名和参数类型都相同时,在子类中调用该方法时,超类中的方法会被隐藏.考虑下面程 ...
- Effective java笔记(二),所有对象的通用方法
Object类的所有非final方法(equals.hashCode.toString.clone.finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类( ...
- JVM内存初学 堆、栈、方法区
转自: http://www.open-open.com/lib/view/open1432200119489.html 这两天看了一下深入浅出JVM这本书,推荐给高级的java程序员去看,对你了解J ...
- 深入理解Java虚拟机之JVM内存布局篇
内存布局**** JVM内存布局规定了Java在运行过程中内存申请.分配.管理的策略,保证了JVM的稳定高效运行.不同的JVM对于内存的划分方式和管理机制存在部分差异.结合JVM虚拟机规范,一起来 ...
- JAVA系列之JVM内存调优
一.前提 JVM性能调优牵扯到各方面的取舍与平衡,往往是牵一发而动全身,需要全盘考虑各方面的影响.在优化时候,切勿凭感觉或经验主义进行调整,而是需要通过系统运行的客观数据指标,不断找到最优解.同时,在 ...
随机推荐
- 鸿蒙内核源码分析(定时器篇) | 哪个任务的优先级最高 | 百篇博客分析OpenHarmony源码 | v31.02
百篇博客系列篇.本篇为: v31.xx 鸿蒙内核源码分析(定时器篇) | 哪个任务的优先级最高 | 51.c.h .o 本篇说清楚定时器的实现 读本篇之前建议先读鸿蒙内核源码分析(总目录)其余篇. 运 ...
- CF1322B-Present【双指针】
正题 题目链接:https://www.luogu.com.cn/problem/CF1322B 题目大意 给出\(n\)个数字\(a_i\)求 \[\bigoplus _{i=1}^n\bigopl ...
- Pycharm软件学生和老师可申请免费专业版激活码
有一种邮箱,叫做教育邮箱,这东西在这个互联网的世界有很大的优惠及特权,在 Jetbrain 这里, 如果你有教育邮箱(没有教育邮箱怎么办?.edu.cn后缀的邮箱)但很多学生.甚至老师都未必有. 你只 ...
- Serverless 对研发效能的变革和创新
作者 | 杨皓然(不瞋) 对企业而言,Serverless 架构有着巨大的应用潜力.随着云产品的完善,产品的集成和被集成能力的加强,软件交付流程自动化能力的提高,我们相信在 Serverless 架构 ...
- C#开发BIMFACE系列46 服务端API之离线数据包下载及结构详解
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>中通过调用接口成功的创建一个离线数 ...
- 题解 [HAOI2016]字符合并
题目传送门 Description 有一个长度为 \(n\) 的 \(01\) 串,你可以每次将相邻的 k 个字符合并,得到一个新的字符并获得一定分数. 得到的新字符和分数由这 k 个字符确定.你需要 ...
- MyBatis原生批量插入的坑与解决方案!
前面的文章咱们讲了 MyBatis 批量插入的 3 种方法:循环单次插入.MyBatis Plus 批量插入.MyBatis 原生批量插入,详情请点击<MyBatis 批量插入数据的 3 种方法 ...
- 手把手教你写hexo博客
市面上现在有各种博客框架,本博客教大家的是Hexo博客框架,目前比较火.搭建博客中遇到各种各样问题,网上方案也比较成熟. 一.搭建环境 安装 git 安装 node.js 安装 Hexo npm in ...
- RabbitMQ:从入门到搞定面试官
安装 使用docker安装,注意要安装tag后缀为management的镜像(包含web管理插件),我这里使用的是rabbitmq:3.8-management 1. 拉取镜像 shell docke ...
- Takin Talks·上海 |开源后首场主题研讨会来了,一起解密Takin技术吧!
自 6 月 25 日全球首款生产环境全链路压测平台 Takin 正式开源,短短 13 天时间,Github 主页上 Star 数已超过 730,开发者社群也积累了 1500+粉丝.群内技术研讨氛围 ...