1. HelloWorld

编写代码

  1. public class Hello{
  2. public static void main(String[] args){
  3. System.out.println("Hello,World!");
  4. }
  5. }

代码详解

Public class 和 class的区别:

  1. 一个java文件中可以定义多个class

  2. Public的类可以没有

  3. Public的类如果有的话,只能有一个,并且要求类名和文件名一致

  1. System.out.println("Hello,World!");为输出语句,括号里加双引号的内容就是输出内容

2. 注释

注释并不会被执行,是给我们写代码的人看的

  1. 单行注释://

    1. //这是一个单行注释
  2. 多行注释:/* 注释内容 */

    1. /* 这是一个多行注释 */
  3. 文档注释:/** 注释内容 */

    1. /**
    2. * @Description HellWorld
    3. * @Author 最爱琴女E
    4. */
有趣的代码注释
  1. /***
  2. * .::::.
  3. * .::::::::.
  4. * ::::::::::: FUCK YOU
  5. * ..:::::::::::'
  6. * '::::::::::::'
  7. * .::::::::::
  8. * '::::::::::::::..
  9. * ..::::::::::::.
  10. * ``::::::::::::::::
  11. * ::::``:::::::::' .:::.
  12. * ::::' ':::::' .::::::::.
  13. * .::::' :::: .:::::::'::::.
  14. * .:::' ::::: .:::::::::' ':::::.
  15. * .::' :::::.:::::::::' ':::::.
  16. * .::' ::::::::::::::' ``::::.
  17. * ...::: ::::::::::::' ``::.
  18. * ```` ':. ':::::::::' ::::..
  19. * '.:::::' ':'````..
  20. */

3. 标识符

  1. //所有标识符都应该以字母,美元符号($)、或者下划线为开头
  1. public class Demo01 {
  2. public static void main(String[] args) {
  3. String Hero = "娑娜";
  4. String hero = "迦娜";
  5. String $Hero3 = "莫甘娜";
  6. String _Hero4 = "蕾欧娜";
  7. }
  8. }
  1. //不能以数字和其他特殊符号作为开头
  1. // String 1Hero = "金克斯";
  2. // String #Hero = "拉克丝";
  3. // String *Hero = "婕拉";
  4. //以上都是错误的
  1. //首字符之后可以是字母、美元符、下划线或者数字的任何字符组合
  2. //不能使用关键字作为变量名或方法名
  3. //标识符是大小写敏感的(同个单词大小写不同可以看做是两个,如:Hero和hero是两个不同的)
  4. 可以使用中文名和拼音,但是一般不建议去使用,很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

  1. public class Demo02 {
  2. public static void main(String[] args) {
  3. //八大基本数据类型
  4. //整数
  5. int num1 = 10;//最常用
  6. byte num2 = 20;
  7. short num3 = 30;
  8. long num4 = 30L;//Long类型要在数字后面加个L
  9. //小数:浮点数
  10. float num5 = 50.1F;//Float类型要在数字后面加个F
  11. double num6 = 3.1415926;
  12. //字符
  13. char name = 'A';
  14. //字符串,String不是关键字,类
  15. String name2 = "娑娜";
  16. //布尔值:是非
  17. boolean flag = true;//1
  18. boolean flag2 = false;//0
  19. }
  20. }
拓展
  1. public class Demo03 {
  2. public static void main(String[] args) {
  3. //整数拓展:进制
  4. //二进制0b、八进制0、十进制、十六进制0x
  5. int i = 10;
  6. int i2 = 010;//八进制0
  7. int i3 = 0x10;//十六进制0x 0~9 A~F 16
  8. System.out.println(i);
  9. System.out.println(i2);
  10. System.out.println(i3);
  11. System.out.println("=======================================");
  12. //==================================
  13. //浮点数拓展,银行业务怎么表示(钱)?
  14. //BigDecimal 数学工具类
  15. //==================================
  16. //float
  17. //double
  18. float f = 0.1f;//0.1
  19. double d = 1.0/10;//0.1
  20. System.out.println(f == d);//false
  21. float d1 = 123456789f;
  22. float d2 = d1 + 1;
  23. System.out.println(d1 == d2);//true
  24. //最好完全使用浮点数进行比较
  25. System.out.println("=======================================");
  26. //==================================
  27. //字符拓展
  28. //==================================
  29. char c1 = 'a';
  30. char c2 = '中';
  31. System.out.println(c1);
  32. System.out.println((int)c1);//强制转换类型
  33. System.out.println(c2);
  34. System.out.println((int)c2);//强制转换类型
  35. System.out.println("=======================================");
  36. //所有的字符本质还是数字
  37. //常见的转义字符
  38. // \t:表示制表符
  39. // \n:表示换行
  40. // \": 表示字符"
  41. // \': 表示字符'
  42. // \\: 表示字符\
  43. // \r: 表示回车
  44. System.out.println("Hello\tWorld!");
  45. System.out.println("Hello\nWorld!");
  46. System.out.println("=======================================");
  47. //布尔值拓展
  48. boolean b1 = true;
  49. if (b1 == true){}//新手
  50. if (b1){}//老手
  51. //Less is More! 代码要精简易读
  52. }
  53. }
类型转换
  1. 强制类型转换

    1. //强制转换:(类型)变量名 高--低
    2. int i = 128;
    3. byte b = (byte)i;//内存溢出
    4. System.out.println(i);//128
    5. System.out.println(b);//-128
  2. 自动类型转换

    1. //自动转换:低--高
    2. int i2 = 128;
    3. double d = (double)i2;
    4. System.out.println(d);//128.0

基本类型转换的6条规则:

​ 第一条:只有boolean不能转换

​ 第二条:自动类型转换(小转大)

​ 第三条:强制类型转换(大转小)需要加强制类型转换符,可能损失精度

​ 第四条:当一个整数没有超过byte short char 的取值范围时,可直接赋值

​ 第五条:byte short char 混合运算的时候,各自先转换成int再运算

​ 第六条:多种数据类型混合运算的时候,先转换成容量最大的那一种再做运算

可以将浮点数强制转型为整数。在转型时,浮点数的小数部分会被丢掉。如果转型后超过了整型能表示的最大范围,将返回整型的最大值。

  1. System.out.println((int)23.7);//23
  2. System.out.println((int)-45.89f);//-45

如果要四舍五入,可以对浮点数加上0.5再强制转型

  1. double d = 2.6;
  2. int n = (int) (d + 0.5);
  3. System.out.println(n);//3

操作比较大的数的时候,注意溢出问题

  1. int money = 10_0000_0000;
  2. int years = 20;
  3. int total = money * years;//-1474836480,计算的时候溢出了
  4. System.out.println(total);
  5. long total2 = money * ((long)years);//先把一个数转换成long
  6. System.out.println(total2);//20000000000

引用数据类型

除了上述基本类型的变量,剩下的都是引用类型。例如,引用类型最常用的就是String字符串。和char类型不同,字符串类型String是引用类型,一个字符串可以存储0到任意个字符。

  1. String s = “”;//空字符串,包含0个字符
  2. String s1 = A”;//包含一个字符
  3. String s2 = “中文 ABC”;//包含6个字符,其中有一个空格

5.变量

变量是什么:就是可以变化的量

java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域

变量注意事项:
  1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型
  2. 变量名必须是合法的标识符
  1. type varName [=value] [{,varName[=value]}];
  2. //数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型的变量
  1. //int a,b,c;
  2. int a = 1,b = 2, c = 3;
  3. String name = "卧槽";
  4. char x = 'X';
  5. double y = 3.14;
变量的作用域
  1. public class Demo06 {
  2. //属性,变量
  3. //实例变量:从属于对象,如果不自行初始化,这个类型会是默认值
  4. //整数默认 0
  5. //浮点数默认0.0
  6. //布尔值:默认是false
  7. //除了基本类型,其余的默认值都是null
  8. String name;
  9. int age;
  10. //类变量static
  11. static double salary = 5000;
  12. //main方法
  13. public static void main(String[] args) {
  14. //局部变量:必须声明和初始化值
  15. int i = 10;
  16. System.out.println(i);//10
  17. //变量类型 变量名字 = new Demo06();
  18. Demo06 demo06 = new Demo06();
  19. System.out.println(demo06.name);//null
  20. System.out.println(demo06.age);//0
  21. //类变量 static
  22. System.out.println(salary);//5000
  23. }
  24. //其他方法
  25. public void add(){
  26. }
  27. }

6.常量

常量(Constant):初始化后不能再改变值!不会变动的值。可以理解成一种特殊的变量,它的值被设定之后,在程序运行过程中不允许被改变。

final 常量名 = 值;

  1. final double PI = 3.14;
  2. //常量名一般使用大写字符。
  1. public class Demo07 {
  2. //修饰符,不存在先后顺序
  3. static final double PI = 3.14;
  4. final static double PI2 = 3.1415926;
  5. public static void main(String[] args) {
  6. System.out.println(PI);//3.14
  7. System.out.println(PI2);//3.1415926
  8. }
  9. }
变量名命名规范
  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线:MAX_VALUE
  5. 类名:首字母大写和驼峰原则:Man,GoodMan
  6. 方法名:首字母小写和驼峰原则:run() , runRun()

JavaSE学习笔记01注释、标识符与基本类型的更多相关文章

  1. JavaSE 学习笔记01丨开发前言与环境搭建、基础语法

    本蒟蒻学习过C/C++的语法,故在学习Java的过程中,会关注于C++与Java的区别.开发前言部分,看了苏星河教程中的操作步骤.而后,主要阅读了<Java核心技术 卷1 基础知识>(第8 ...

  2. JavaSE学习笔记(1)---数据类型、运算符、控制结构

    javaSE学习笔记(1) 数据类型和运算符 1.注释可以提高程序的可读性.可划分为 单行注释 // 多行注释 /.../ 文档注释 /**...*/ 2.标识符的命名规则: 标识符必须以字母.下划线 ...

  3. javaSE学习笔记(17)---锁

    javaSE学习笔记(17)---锁 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率.本文旨在对锁相关源码(本文中的源码来自JDK 8).使用场景进行举例,为读 ...

  4. javaSE学习笔记(10)---List、Set

    javaSE学习笔记(10)---List.Set 1.数据存储的数据结构 常见的数据结构 数据存储的常用结构有:栈.队列.数组.链表和红黑树. 1.栈 栈:stack,又称堆栈,它是运算受限的线性表 ...

  5. JavaSE学习笔记(8)---常用类

    JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类 ...

  6. 软件测试之loadrunner学习笔记-01事务

    loadrunner学习笔记-01事务<转载至网络> 事务又称为Transaction,事务是一个点为了衡量某个action的性能,需要在开始和结束位置插入一个范围,定义这样一个事务. 作 ...

  7. C++ GUI Qt4学习笔记01

    C++ GUI Qt4学习笔记01   qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概 ...

  8. javaSE学习笔记(16)---网络编程

    javaSE学习笔记(16)---网络编程 基本概念 如今,计算机已经成为人们学习.工作.生活必不可少的工具.我们利用计算机可以和亲朋好友网上聊天,也可以玩网游.发邮件等等,这些功能实现都离不开计算机 ...

  9. javaSE学习笔记(15) ---缓冲流、转换流、序列化流

    javaSE学习笔记(15) ---缓冲流.转换流.序列化流 缓冲流 昨天复习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化 ...

随机推荐

  1. 【python】调用sm.ms图床api接口,实现上传图片并返回url

    图床简介 sm.ms网站提供免费的图床服务.单图上传大小限制5MB,每次最多上传10张,支持多种图片链接格式和api接口调用. 获取令牌 注册账号并登录,点击User-Dashboard 点击API ...

  2. 二、Git安装--Windows

    Git安装配置 在使用Git前我们需要先安装 Git.Git 目前支持 Linux/Unix.Solaris.Mac和 Windows 平台上运行. Git 各平台安装包下载地址为:http://gi ...

  3. Linux系统编程—信号量

    大家知道,互斥锁可以用于线程间同步,但是,每次只能有一个线程抢到互斥锁,这样限制了程序的并发行.如果我们希望允许多个线程同时访问同一个资源,那么使用互斥锁是没有办法实现的,只能互斥锁会将整个共享资源锁 ...

  4. kubernetes的思考

    初识k8s kubernetes,从接触到今年6月接触到现在有3个月了,严格来说是断断续续的接触,没有一直持续学习.在未接触之前,这个技术对我来说,有点像传说,运维同行对此评价普遍是比较难懂,概念庞大 ...

  5. 堆的源码与应用:堆排序、优先队列、TopK问题

    1.堆 堆(Heap))是一种重要的数据结构,是实现优先队列(Priority Queues)首选的数据结构.由于堆有很多种变体,包括二项式堆.斐波那契堆等,但是这里只考虑最常见的就是二叉堆(以下简称 ...

  6. 手撸Mysql原生语句--单表

    select from where group by having order by limit 上面的所有操作是有执行的优先级的顺序的,我们将执行的过程可以总结为下面所示的七个步骤. 1.找到表:f ...

  7. IDEA 2020.2 最新激活教程,有效期到2089年!

    这段时间众多粉丝私信说需要IDEA 2020.2 最新激活教程,于是!他来了他带着最新激活教程来了. 注意: 本教程适用于 JetBrains 全系列产品 IDEA 2020.2 以下所有版本,请放心 ...

  8. Windows无法安装到GPT格式磁盘的根本解决办法 - 初学者系列 - 学习者系列文章

    上次在MSDN系统QQ群里有朋友问到在安装操作系统的时候有个问题:Windows无法安装到GPT格式磁盘,见图: 我在这里说下,使用网上方法的都是小白,就是说网上那些都是小白.下面介绍如何正确安装操作 ...

  9. std(标准库)和STL(标准模板库)的关系

    C++标准库的内容分为10类: C1.语言支持 C2.输入/输出 C3.诊断 C4.一般工具 C5.字符串 C6.容器 C7.迭代器支持 C8.算法 C9.数值操作 C10.本地化: 下面分类详解: ...

  10. interp1一维数据插值在matlab中的用法

    转载:https://ww2.mathworks.cn/help/matlab/ref/interp1.html?s_tid=srchtitle#btwp6lt-2_1 interp1 一维数据插值( ...