Java学习笔记

岁月染指流年 2021-01-14 16:47:57
java 学习 笔记 博客园


Java 基础语法

基础阶段

  1. 注释、标识符、关键字

    注释

    • 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。

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

    • 书写注释是一个非常好的习惯

    • 平时写代码一定要注意规范

    • Java中的注释有三种:

      a. 单行注释;代码中另起一行 输入 "//" 进行注释

      b.多行注释;/* */

      c.文档注释;/** */

      标识符

      • 关键字


      • Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

      • 标识符注意点

        a.所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始

        b.首字符之后可以是字母(A-Z或者a-z),美元符($)、或者下划线(_)或数字的任何字符组合

        c.不能使用关键字作为变量名或方法名。

        d.标识符是大小写敏感的

        e.合法标识符举例:age、$salary、_value、__1_value

        f.非法标识符举例:123abc、-sakary、#abc

        g.**可以使用中文命名。但是一般不建议这样去使用,也不建议使用拼音。很Low

数据类型

  • 强类型语言

    • 要求变量的使用要严格符合规定,所有变量都必须先定义才能使用
  • 弱类型语言

  • Java的数据类型分为两大类

    • 基本类型(Primitive Type)
    • 引用类型(Reference Type)


什么是字节

  • 位(bit):是计算机 内部数据 存储最小单位,11001100是一个八位二进制数。

  • 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写B来表示,

  • 1B(byte,字节)=8bit(位)。

  • 字符:是指计算机中使用的字母、数字、字和符号

public class Demo03 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0B 十进制 八进制0 十六进制0x
int i = 10;
int i1 = 010;
int i2 = 0x11;
System.out.println(i);
System.out.println(i1);
System.out.println(i2);
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 = 232323232323f;
float d2 = d1 + 1;
System.out.println(d1==d2); //ture
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); //强制换行
// 所有的字符本质还是数字
// 编码 Unicode 系统能有张表 (97 = a 65 = A) 2字节 0 - 65536 Excel 2的16次方 =65536
// U0000 UFFFF
char c3 = '\u0061';
System.out.println(c3); //a
System.out.println("==================================================================");
//转义字符
// \t (制表符 Tab 空格)
// \n (换行)
// .....(还有很多)
System.out.println("Hello\tWorld");
System.out.println("Hello\nWorld");
System.out.println("==================================================================");
String sa = new String("Hello World");
String sb = new String("Hello World");
System.out.println(sa==sb);
String sc = "Hello World";
String sd = "Hello World";
System.out.println(sc==sd);
//对象 从内存分析
System.out.println("==================================================================");
// 布尔值扩展
boolean flag = true;
if (flag==true){} //新手
if (flag){} //老手
//java 代码原则 Less is More! 代码要精简易读!

类型转换

  • 由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。

    低--------------------------------------------------------->高

    byte,short,char--> int -->long -->float -->double

  • 运算中,不用类型的数据先转化为同一类型,然后进行运算。

  • 强制类型转换

  • 自动类型转换

public class Dome04 {
public static void main(String[] args) {
//强制转换 (类型)变量名 高-->低
int i = 128 ;
byte b =(byte)i; //内存溢出
System.out.println(i);
System.out.println(b);
//自动转换 低-->高
int i1 = 128 ;
double c = i1 ;
System.out.println(i1);
System.out.println(c);
/*注意点:
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 在把高容量转换到低容量的时候,强制转换
4. 转换的时候可能存在内存溢出,或者精度问题!
*/
System.out.println("=============================================");
System.out.println((int) 23.7); //精度问题
System.out.println((int)-45.89f); //精度问题
System.out.println("=============================================");
char c1 ='a';
int d = c1+1;
System.out.println(d);
System.out.println((char)d);
}
}
public class Dome05 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total =money*years; //-1474836480,计算的时候溢出了
long total2 =money*years; //默认是int,转换之前就存在问题了
long total3 =money*((long)years); //先把一个数转换为long
System.out.println(total);
System.out.println(total2);
System.out.println(total3); //正确操作
// 大写L, 小写l注意与数字1的区分
}
}

~~持续更新·····

版权声明
本文为[岁月染指流年]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/cuotuosuiyue/p/14265490.html

  1. Rocketmq CPP client visual studio 2019 compilation
  2. Usage of data custom attribute in jquery
  3. Common decompression in Linux
  4. Upload large files in Java
  5. Sentry (v20.12.1) k8s cloud native architecture exploration, sentry for JavaScript manual capture event basic usage
  6. Sentry (v20.12.1) k8s cloud native architecture exploration, sentry for JavaScript manual capture event basic usage
  7. Docker + MySQL Cluster + read / write separation + MYCAT Management + vertical sub database + load balancing
  8. Docker + MySQL Cluster + read / write separation + MYCAT Management + vertical sub database + load balancing
  9. Java use interceptor infinite forwarding / redirection infinite loop / redirection times too many error (stack overflow error) solution
  10. Java use interceptor infinite forwarding / redirection infinite loop / redirection times too many error (stack overflow error) solution
  11. 010_ MySQL
  12. 010_ MySQL
  13. Fast integration of imsdk and Huawei offline push
  14. 消息队列之RabbitMQ
  15. Rabbitmq of message queue
  16. 初学java进制转换方面补充学习
  17. Learn java base conversion supplementary learning
  18. 了解一下RPC,为何诞生RPC,和HTTP有什么不同?
  19. 了解一下RPC,为何诞生RPC,和HTTP有什么不同?
  20. 初学java进制转换方面补充学习
  21. Learn about RPC, why RPC was born, and what's the difference between RPC and HTTP?
  22. Learn about RPC, why RPC was born, and what's the difference between RPC and HTTP?
  23. Learn java base conversion supplementary learning
  24. JDBC测试连接数据库
  25. JDBC test connection database
  26. 大厂面试官竟然这么爱问Kafka,一连八个Kafka问题把我问蒙了?
  27. The interviewers of big factories love to ask Kafka so much. I'm blinded by eight Kafka questions in a row?
  28. 安卓开发和java开发有什么区别!2021年BATJ30套大厂Android经典高频面试题,面试必问
  29. Spring Security OAuth2.0認證授權四:分散式系統認證授權
  30. What's the difference between Android development and java development! 2021 batj30 Android classic high frequency interview questions
  31. Spring security oauth2.0 authentication and authorization 4: distributed system authentication and authorization
  32. Java微服务 vs Go微服务,究竟谁更强!?
  33. 大厂面试官竟然这么爱问Kafka,一连八个Kafka问题把我问蒙了?
  34. Who is stronger, Java microservice vs go microservice!?
  35. Java微服务 vs Go微服务,究竟谁更强!?
  36. The interviewers of big factories love to ask Kafka so much. I'm blinded by eight Kafka questions in a row?
  37. Who is stronger, Java microservice vs go microservice!?
  38. springboot异常处理之404
  39. Spring boot exception handling 404
  40. Spring Boot Security 国际化 多语言 i18n 趟过巨坑
  41. springboot异常处理之404
  42. Spring boot security international multilingual I18N
  43. Spring boot exception handling 404
  44. Netty系列化之Google Protobuf编解码
  45. Netty之编解码
  46. Java编解码
  47. Netty解码器
  48. Netty与TCP粘包拆包
  49. Netty开发入门
  50. Java集合遍历时遇到的坑
  51. Spring IOC 源码解析(下)
  52. Spring IoC源码解析(上)
  53. Google protobuf codec of netty serialization
  54. Encoding and decoding of netty
  55. Java codec
  56. Netty decoder
  57. Netty and TCP packet sticking and unpacking
  58. Introduction to netty development
  59. Problems encountered in Java collection traversal
  60. Spring IOC source code analysis (2)