首页 > 编程语言 >Java-Day-2(转义字符 + 注释 + 代码规范 + 变量 + 数据类型)

Java-Day-2(转义字符 + 注释 + 代码规范 + 变量 + 数据类型)

时间:2023-04-03 11:45:09浏览次数:52  
标签:字符 Java 字节 int 数据类型 char 转义字符 println byte

Java-Day-2

常用转义字符

代码中只一个 \ 会默认转义(写在 “ ” 里)

  • \t :制表位,可以实现对齐功能,可以看作有一个无形表框( 上下两行长度相差不大 )

  • \n:换行符,仅换代码行的话

  • \\:一个 \,想输出 " \\ " 就要输入四个 \

  • \'':一个 “ ,字符串里输出双引号

  • \':一个 ‘

  • \r:一个回车,光标回到当前行开头,据情况可能会替换前面的字符

    ( 在 Linux、unix 里 \n 只表示换行,不会回到开始位置,所以要搭配 \r\n )

错误

  • 语法错误:无法通过编译

  • 业务错误:能编译运行不对

  • 环境错误:仅在自己的环境里可以正常运行

注释

  • 增加代码可读性

  • 常用注释

    1. 单行注释:// ( Ctrl + / )

    2. 多行注释:/* 不允许嵌套 */

    3. 文档注释:注释内容可以被 JDK 的 javadoc 程序所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类

      /**

      *@author 消默

      *@version 1.0

      *( javadoc 标签)

      */

      dos控制台里输入:

      javadoc -d 自定义文件夹路径(d:\\temp) -author -version 文档注释所在文件名.java

代码规范

  • 类、方法的注释,要以 javadoc 的方式来写 — 文档注释
  • 给代码维护者阅读者看的修改、注意问题 — 单行或多行注释来写
  • tab 整体向右,tab + shift 整体左移
  • 行尾风格:每一行行尾就写大括号,次行风格:另起一行写大括号
  • 源码文件要用 utf-8 编码

变量

  • 变量表示内存中一个存储区域( 不同的变量,类型不同,占用的空间大小也不同 )
  • 三个基本要素:数据类型 + 变量名 + 值
  • 定义变量赋初值,相当于是在内存中一个地址指向已分配了的空间( 空间用来放值 )
  • 换值时,找到此地址,找到对应空间,更换空间内的值
  • 同一个作用域内不能有重名的变量
  • 对变量进行 + 运算:数值加法,字符串拼接
 System.out.println("hello" + 100); //hello100
 System.out.println("100" + 100); //100100
 System.out.println(100 + 100); //200
 System.out.println(100 + 100 + "100"); //200100 

Java 数据类型

基本数据类型 — 范围和长度固定 — 保证了 java 程序的可移植性

  • 数值型
    • 整数类型 [ 占用存储空间 X 字节 ]
      • byte[1], short[2], int[4], long[8]
    • 浮点( 小数 )类型
      • float[4], double[8]
  • 字符型
    • 存放单个字符 ' a '
      • char[2]
  • 布尔型
    • 存放 true,false
      • boolean[1]

( 暂不拓展 )引用数据类型

  • 类( class )(String 也属于其中)
  • 接口( interface )
  • 数组( [ ] )

整数类型

  • byte[字节,1字节] 范围:-128 ~ 127

    • byte:计算机中基本存储单元

      ( bit:计算机中最小的存储单位,1byte = 8bit )

      ( byte n = 3 ——> 00000011 )

  • short[短整型,2字节] 范围:- 2 ^ 15 ~ 2 ^ 15 - 1

  • int[整形,4字节] 范围:- 2 ^ 31 ~ 2 ^ 31 - 1

    • 通常所用
  • long[长整型,8字节] 范围:- 2 ^ 63 ~ 2 ^ 63 - 1

    • 声明时,后加 “ l ” 或 " L "

浮点类型

  • float[单精度,4字节]

    • 声明时,后加 " f " 或 " F "
    • 超出的小数直接舍去
  • double[双精度,8字节]

    • 小数数据常量默认
    • 通常所用
  1. 浮点数在机器中存放形式: 浮点数 = 符号位 + 指数位 + 尾数位

  2. 尾数部分可能丢失,造成精度损失( 小数都是近似值 )

  3. 十进制写法:写 0.XX 小数时,可以省去0,写为 .XX

  4. 科学计数法:5.12e2 [ 5.12 * 10的2次方 — 512.0 ],5.12E - 2 [ 5.12 / 10的2次方 — 0.0512 ]

double n1 = 2.7;
double n2 = 8.1 / 3; // 计算机角度是以精度来,8.1实际是:8.100...
// n1 = "2.7", n2 = "2.6999....7" 

// 注意小数间的相等判定
if(n1 == n2){
    System.out.println("两者不相等的")
}

// 直接查询或者直接赋值的小数,是可以判断相等
// 要用两个数的差值的绝对值
if(Math.abs(n1 - n2) < 0.000001){
    System.out.println("差值小到规定精度就认为相等");
}

// 看java API方式
    System.out.println(Math.abs(n1 - n2));                  

API(Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口( java 提供的类还有相关方法),中文在线文档:https://www.matools.com ,找在线 API

Java 类的组织形式

JDK:

    • 接口
      • 字段
      • 构造器(构造方法)
      • 成员方法(方法)
    • 枚举
    • 异常
  • ......

字符类型

  1. 可以表示单个字符,字符类型是 char,是两个字节,可以存放汉字

​ (多个字符用字符串 String:双引号)

  1. 给 char 赋值一个整数(无单引号)的话,就代表其 unicode 码对应的值,例:97 —> a,可( int )强转字符为数字
  2. 也可赋为某转义字符,输出的则是转义后的结果
  3. java 中,char 本质就是一个整数,输出时是 unicode 码对应的字符,所以char是可以参与运算的
System.out.println('a' + 10); // 107
  1. 输出一个赋值字符( 找数字 —> 对应的字符 —> 编码表 ASCII —> 值 )

  2. 字符类型本质与编码表

    • 字符型存储到计算机中,需要将字符对应的码值找出来,如:

      • 存储:' a ' —> 码值97 —> 二进制 —> 存储
      • 读取:二进制 ( 110 0001 ) —> 97 —> ' a ' —> 显示
    • 字符编码表

      • ASCII( American Standard Code for Information Interchange,美国标准信息交换码 ),是用一个字节表示的128个字符( 实际上一个字节可以表示256个字符,但美国字母就26个,256的话用不了 )

        缺点:不能表示所有字符

      • Unicode,使用两个字节来表示字符,字母、汉字统一占用两个字节,将世界上所有符号纳入其中,不会乱码,2 ^ 16 = 65536个字符,兼容ASCII表于其中

        缺点:都占两个字节,浪费空间

      • utf-8,大小可变的编码,可以使用1 ~ 6个字节表示一个符号,字母用1个字节,汉字用3个字节,可视为 Unicode 的改进,

布尔类型

  1. 也叫 boolean 类型,只取 true 和 false,只占一个字节
  2. 常处于逻辑判断

类型转换

  1. 当 java 程序在进行赋值或者运算时,精度小的类型会自动转换为精度大的数据类型,即自动类型转换( 小 —> 大 )

    • 箭头指向为可转 ( Convert ) 为
    • char —> int —> long —> float —> double
    • byte —> short —> int —> long —> float —> double
    int n = 1;
    byte b1 = n; //报错,判断类型四字节放不进一字节
    
    //但是可以直接存入1,因为 byte 范围是 - 128 ~ 127
    byte b2 = 1; 
    //但经过计算了的话就都是 int 类型了(见4.),除非强转
    b2 = b2 + 1;  //报错
    b2 = (byte)(b2 + 1); 
    
  2. 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量 / 精度最大的那种数据,然后再进行计算

  3. ( byte, short )和 char 间不能相互自动转换

  4. byte,short,char 三者可以计算,不管同类型还是不同类型之间,在计算时首先转换为int类型,即 int X = ......

  5. boolean不参与转换

  6. 强制类型转换,将容量大的数据类型转换为容量小的数据类型,强转符号:“( )”,直接舍去超出的内容,差别较大可能会导致结果大不相同 ( 大 —> 小 )

// int x1 = (int)5 * 2.1 + 2 * 5.1;  // 报错,只强转了5
int x2 = (int)(5 * 2.1 + 2 * 5.1);  //输出为20,强转的是计算结果

// char c1 = x2;  //报错,char可以保存int的常量值,但变量值要强转
char c2 = (char)x2;  //输出的话就是20对应的字符
char c3 = 20;  //输出结果同上

String 类型

  1. 将基本数据类型转为 String,直接后加双引号即可
int n = 100;
boolean m= true;

String s1 = n + "";
String s2 = m + "";

System.out.println(s1); //输出 100
System.out.println(s2); //输出true
  1. String 转为基本数据类型 (parse:解析)

(前提是不能出现字母转数字的情况,否则虽然会通过编译,但运行直接抛异常)

String s = "zhuyazhu";
int n = Integer.parseInt(s);
Double.parseDouble()
Float.parseFloat()
Long.parseLong()
Byte.parseByte()
Boolean.parseBoolean()
Short.parseShort()
s.charAt(0) //取字符串的第一个字符 'z'
  1. String 可用 + 拼接,但 char 拼接后得到的是前后字符码的和
char c1 = 'a';
char c2 = 'b';
System.out.println(c1 + c2);//输出为195,(非真正拼接,而是int计算)

标签:字符,Java,字节,int,数据类型,char,转义字符,println,byte
From: https://www.cnblogs.com/zhu-ya-zhu/p/17282637.html

相关文章

  • Java-String的常用方法总结
    一、String类  String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明的final类,不能继承。String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间。二、String类构造方法  1、publicString()  无参构造方法,用来创......
  • 【妙用WebView】鸿蒙元服务中如何使用Java Script的API创建地图
    【关键字】webview地图高德腾讯地图百度地图 【问题背景】开发元服务过程中需要用到地图能力:卡片中显示我的快递位置和我的位置信息;PageAbility中可以打开自定义地图,查询POI点,做路径规划、路径推荐等;查看了高德、百度、华为、腾信地图的后发现,各大厂商对鸿蒙系统的支持能......
  • java不等于 等于
    起因:两个一样得String串对比 !=时返回false。 1、如 Stringstr="";Stringstr2=""; 则 str==str2 str!=str2  均返回结果不正确正确用法  str.Equals(str2) 或!str.Equals(str2); 2、在String使用前要做为null判断。写法:!"".Equals(str)&&str......
  • 逍遥自在学C语言 | 变量、常量与数据类型
    前言一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、基本数据类型1、整型C语言中的整型数据如下表所示:数据类型含义长度(字节)取值范围(有符号)取值范围(无符号)shor......
  • 重学Java设计模式-结构型模式-代理模式
    重学Java设计模式-结构型模式-代理模式内容摘自:https://bugstack.cn/md/develop/design-pattern/2020-06-16-重学Java设计模式《实战代理模式》.html#重学-java-设计模式-实战代理模式「模拟mybatis-spring中定义dao接口-使用代理类方式操作数据库原理实现场景」代理模式介绍......
  • java 启动错误idea 不报错误
    penapi.actionSystem.impl.Utils-updatefailedforAnAction(com.intellij.execution.ExecutorRegistryImpl$ExecutorAction)withID=MyBatisLogPluginjava.lang.IllegalStateException:@NotNul在项目拉取启动的时候就报出了这个错误首先查看idea的日志到底是什么报错 ......
  • Java 序列化详解
    XML和JSON是两种经常在网络使用的数据表示格式,这里我们介绍如何使用Java读写XML和JSON。 一、XML概述1、XML简介我们都知道对象是不能在网络中直接传输的,不过还有补救的办法。XML(ExtensibleMarkupLanguage)可扩展标记语言,本身就被设计用来存储数据,任何一个对象都可以用XML来描......
  • 【Java 并发】【synchronized】【一】synchronized底层是怎么通过monitor进行加锁的
    1 前言之前我们说过对象头的信息,这节我们就来看看synchronized是怎么通过monitor进行重量级加锁。2 内容回顾我们先来回顾下MarkWord的内容:当MarkWord的最后两位的锁标志位是10的时候,MarkWord这哥们说自己处于重量级锁的模式,重量级加锁不是它的责任,是monitor的责任。......
  • Java Checked Exception 的是与非
    结论JavaCheckedException是一个设计错误,初衷很美好,现实很糟糕。设计的初衷把方法可能抛出的异常,显示地声明在方法定义中,比如FileInputStream的构造函数可能会抛出FileNotFoundException:publicFileInputStream(Stringname)throwsFileNotFoundException{this(name......
  • go复杂数据类型 结构体
    前言:Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。通过结构体的方式来实现了面向对象,去除了传统的oop语法,继承,重载,构造,析构,隐藏this的特性,仍然有面向对象三大特性,实现和面向对象方法有所不同,没有extends关键字,结构体的内嵌配合接口比面向对象具有更......