JavaSE学习笔记01注释、标识符与基本类型
1. HelloWorld
编写代码
public class Hello{
public static void main(String[] args){
System.out.println("Hello,World!");
}
}
代码详解
Public class 和 class的区别:
一个java文件中可以定义多个class
Public的类可以没有
Public的类如果有的话,只能有一个,并且要求类名和文件名一致
System.out.println("Hello,World!");为输出语句,括号里加双引号的内容就是输出内容
2. 注释
注释并不会被执行,是给我们写代码的人看的
单行注释://
//这是一个单行注释
多行注释:/* 注释内容 */
/* 这是一个多行注释 */
文档注释:/** 注释内容 */
/**
* @Description HellWorld
* @Author 最爱琴女E
*/
有趣的代码注释
/***
* .::::.
* .::::::::.
* ::::::::::: FUCK YOU
* ..:::::::::::'
* '::::::::::::'
* .::::::::::
* '::::::::::::::..
* ..::::::::::::.
* ``::::::::::::::::
* ::::``:::::::::' .:::.
* ::::' ':::::' .::::::::.
* .::::' :::: .:::::::'::::.
* .:::' ::::: .:::::::::' ':::::.
* .::' :::::.:::::::::' ':::::.
* .::' ::::::::::::::' ``::::.
* ...::: ::::::::::::' ``::.
* ```` ':. ':::::::::' ::::..
* '.:::::' ':'````..
*/
3. 标识符
- //所有标识符都应该以字母,美元符号($)、或者下划线为开头
public class Demo01 {
public static void main(String[] args) {
String Hero = "娑娜";
String hero = "迦娜";
String $Hero3 = "莫甘娜";
String _Hero4 = "蕾欧娜";
}
}
- //不能以数字和其他特殊符号作为开头
// String 1Hero = "金克斯";
// String #Hero = "拉克丝";
// String *Hero = "婕拉";
//以上都是错误的
- //首字符之后可以是字母、美元符、下划线或者数字的任何字符组合
- //不能使用关键字作为变量名或方法名
- //标识符是大小写敏感的(同个单词大小写不同可以看做是两个,如:Hero和hero是两个不同的)
- 可以使用中文名和拼音,但是一般不建议去使用,很Low
4.数据类型
基本数据类型
类型 | 字节 | 取值范围 |
---|---|---|
byte | 1 | -128~127 |
short | 2 | -32768~32767 |
int | 4 | -2147483648~2147483647 |
long | 8 | ... |
float | 4 | ... |
double | 8 | ... |
boolean | 1 | ... |
char | 2 | 0~65535 |
字节
位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
1B(byte,字节)= 8bit(位)
字符:是指计算机中使用的字母、数字、字和符号
1bit表示1位 1Byte表示一个字节1B = 8b
1024B = 1KB 1024KB = 1M
1024M = 1G 1024G = 1TB
public class Demo02 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1 = 10;//最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L;//Long类型要在数字后面加个L
//小数:浮点数
float num5 = 50.1F;//Float类型要在数字后面加个F
double num6 = 3.1415926;
//字符
char name = 'A';
//字符串,String不是关键字,类
String name2 = "娑娜";
//布尔值:是非
boolean flag = true;//1
boolean flag2 = false;//0
}
}
拓展
public class Demo03 {
public static void main(String[] args) {
//整数拓展:进制
//二进制0b、八进制0、十进制、十六进制0x
int i = 10;
int i2 = 010;//八进制0
int i3 = 0x10;//十六进制0x 0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("=======================================");
//==================================
//浮点数拓展,银行业务怎么表示(钱)?
//BigDecimal 数学工具类
//==================================
//float
//double
float f = 0.1f;//0.1
double d = 1.0/10;//0.1
System.out.println(f == d);//false
float d1 = 123456789f;
float d2 = d1 + 1;
System.out.println(d1 == d2);//true
//最好完全使用浮点数进行比较
System.out.println("=======================================");
//==================================
//字符拓展
//==================================
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制转换类型
System.out.println(c2);
System.out.println((int)c2);//强制转换类型
System.out.println("=======================================");
//所有的字符本质还是数字
//常见的转义字符
// \t:表示制表符
// \n:表示换行
// \": 表示字符"
// \': 表示字符'
// \\: 表示字符\
// \r: 表示回车
System.out.println("Hello\tWorld!");
System.out.println("Hello\nWorld!");
System.out.println("=======================================");
//布尔值拓展
boolean b1 = true;
if (b1 == true){}//新手
if (b1){}//老手
//Less is More! 代码要精简易读
}
}
类型转换
强制类型转换
//强制转换:(类型)变量名 高--低
int i = 128;
byte b = (byte)i;//内存溢出
System.out.println(i);//128
System.out.println(b);//-128
自动类型转换
//自动转换:低--高
int i2 = 128;
double d = (double)i2;
System.out.println(d);//128.0
基本类型转换的6条规则:
第一条:只有boolean不能转换
第二条:自动类型转换(小转大)
第三条:强制类型转换(大转小)需要加强制类型转换符,可能损失精度
第四条:当一个整数没有超过byte short char 的取值范围时,可直接赋值
第五条:byte short char 混合运算的时候,各自先转换成int再运算
第六条:多种数据类型混合运算的时候,先转换成容量最大的那一种再做运算
可以将浮点数强制转型为整数。在转型时,浮点数的小数部分会被丢掉。如果转型后超过了整型能表示的最大范围,将返回整型的最大值。
System.out.println((int)23.7);//23
System.out.println((int)-45.89f);//-45
如果要四舍五入,可以对浮点数加上0.5再强制转型
double d = 2.6;
int n = (int) (d + 0.5);
System.out.println(n);//3
操作比较大的数的时候,注意溢出问题
int money = 10_0000_0000;
int years = 20;
int total = money * years;//-1474836480,计算的时候溢出了
System.out.println(total);
long total2 = money * ((long)years);//先把一个数转换成long
System.out.println(total2);//20000000000
引用数据类型
除了上述基本类型的变量,剩下的都是引用类型。例如,引用类型最常用的就是String
字符串。和char类型不同,字符串类型String是引用类型,一个字符串可以存储0到任意个字符。
String s = “”;//空字符串,包含0个字符
String s1 = “A”;//包含一个字符
String s2 = “中文 ABC”;//包含6个字符,其中有一个空格
5.变量
变量是什么:就是可以变化的量
java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域
变量注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型的变量
//int a,b,c;
int a = 1,b = 2, c = 3;
String name = "卧槽";
char x = 'X';
double y = 3.14;
变量的作用域
public class Demo06 {
//属性,变量
//实例变量:从属于对象,如果不自行初始化,这个类型会是默认值
//整数默认 0
//浮点数默认0.0
//布尔值:默认是false
//除了基本类型,其余的默认值都是null
String name;
int age;
//类变量static
static double salary = 5000;
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int i = 10;
System.out.println(i);//10
//变量类型 变量名字 = new Demo06();
Demo06 demo06 = new Demo06();
System.out.println(demo06.name);//null
System.out.println(demo06.age);//0
//类变量 static
System.out.println(salary);//5000
}
//其他方法
public void add(){
}
}
6.常量
常量(Constant):初始化后不能再改变值!不会变动的值。可以理解成一种特殊的变量,它的值被设定之后,在程序运行过程中不允许被改变。
final 常量名 = 值;
final double PI = 3.14;
//常量名一般使用大写字符。
public class Demo07 {
//修饰符,不存在先后顺序
static final double PI = 3.14;
final static double PI2 = 3.1415926;
public static void main(String[] args) {
System.out.println(PI);//3.14
System.out.println(PI2);//3.1415926
}
}
变量名命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run() , runRun()
JavaSE学习笔记01注释、标识符与基本类型的更多相关文章
- JavaSE 学习笔记01丨开发前言与环境搭建、基础语法
本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...
- JavaSE学习笔记(1)---数据类型、运算符、控制结构
javaSE学习笔记(1) 数据类型和运算符 1.注释可以提高程序的可读性.可划分为 单行注释 // 多行注释 /.../ 文档注释 /**...*/ 2.标识符的命名规则: 标识符必须以字母.下划线 ...
- javaSE学习笔记(17)---锁
javaSE学习笔记(17)---锁 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率.本文旨在对锁相关源码(本文中的源码来自JDK 8).使用场景进行举例,为读 ...
- javaSE学习笔记(10)---List、Set
javaSE学习笔记(10)---List.Set 1.数据存储的数据结构 常见的数据结构 数据存储的常用结构有:栈.队列.数组.链表和红黑树. 1.栈 栈:stack,又称堆栈,它是运算受限的线性表 ...
- JavaSE学习笔记(8)---常用类
JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类 ...
- 软件测试之loadrunner学习笔记-01事务
loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...
- C++ GUI Qt4学习笔记01
C++ GUI Qt4学习笔记01 qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ...
- javaSE学习笔记(16)---网络编程
javaSE学习笔记(16)---网络编程 基本概念 如今,计算机已经成为人们学习.工作.生活必不可少的工具.我们利用计算机可以和亲朋好友网上聊天,也可以玩网游.发邮件等等,这些功能实现都离不开计算机 ...
- javaSE学习笔记(15) ---缓冲流、转换流、序列化流
javaSE学习笔记(15) ---缓冲流.转换流.序列化流 缓冲流 昨天复习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化 ...
随机推荐
- Java成神之路:第二帖---- 数据结构与算法之稀疏数组
数据结构与算法--稀疏数组 转换方法 记录数组有几行几列,有多少个不同的值 把不同的值的元素的行列,记录在一个小规模的数组中,以此来缩小数组的规模 如图: 二维数组转稀疏数组 对原始的二维数组进行遍历 ...
- JVM关于GC的日志分析
通过阅读GC日志,我们可以了解Java虛拟机内存分配与回收策略.内存分配与垃圾回收的参数列表 一XX: +PrintGC 输出Gc日志.类似: 一verbose:gc 一XX: +PrintGCDet ...
- redis-port支持前缀迁移
一.介绍 redis-port是一款redis数据迁移工具,用来将数据从一个redis迁移到另一个redis实例/redis集群中 ,以下是官方地址: https://github.com/Codis ...
- 【转】postgreSQL之autovacuum性能问题分析(二)
如上篇文章提到,如果出现了autovacuum的问题,那么这可能是个悲伤的故事.怎么解决? 笔者觉得可以从如下几个方面着手去考虑解决问题,可以避免一些坑.1) 持续观察,是不是autovacuum问题 ...
- python条件控制语句要注意什么?本文详解
1.条件判断语句(if语句) 执⾏的流程:if语句在执⾏时,会先对条件表达式进⾏求值判断, 如果为True,则执⾏if后的语句 如果为False,则不执⾏ 语法: if 条件表达式 : 代码块 代码块 ...
- hexo博客添加gitalk评论系统
经过了一天的折腾,我终于为自己的博客添加上了评论系统.坦率的讲,为什么网上那么多方案我还要自己写一篇博客,那就是因为他们说的都有bug,所以我要自己总结一下. 我选用的是gitalk评论系统, ...
- SON Web Tokens 工具类 [ JwtUtil ]
pom.xml <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt< ...
- (转载)什么是B+树?
本文转载自网络. 如有侵权,请联系处理!
- SpringMVC参数返回给页面
springMVC将后台参数返回给前台页面 方法一:利用ModelAndView返回值 1 @RequestMapping("/returnPage.do") 2 public M ...
- Centos-显示或修改系统时间与日期-date
date 显示或者修改系统时间与日期,只有超级用户才能用date命令设置和修改时间,普通用户只能显示时间 相关参数 -s 设置设置时间,格式为 Y-m-d H:M:S -d 对日期进行运算, + ...