黑马程序员——Java学习笔记--java基础

本文详细介绍了Java中的数据类型,包括基本数据类型和引用数据类型,并着重讨论了整型数据的溢出问题。示例展示了如何避免整型溢出,以及如何转换数据类型以扩大表示范围。此外,还提到了字符类型、浮点类型和布尔类型的基本概念。文章还涵盖了Java中的转义字符、浮点数默认类型和布尔类型的默认值。最后,简要概述了运算符、程序结构和循环控制语句的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

java数据类型划分

分为两大类型:

               1)基本数据类型:类似于普通的值。

               2)引用数据类型:传递的是内存的地址。

浮点类型实际上就是表示小数。

 

java基本数据类型

 

数据的溢出

当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生絮乱,且不是预期的运行结果。

例如:求出整型的最大值

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String[] args) {  
  3.         int max = Integer.MAX_VALUE;  
  4.         System.out.println("整型的最大值为:"+max); //整型的最大值为:2147483647  
  5.     }  
  6. }  


现在对求的最大值进行加法操作

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String[] args) {  
  3.         int max = Integer.MAX_VALUE;  
  4.         System.out.println("整型的最大值为:"+max);       //整型的最大值为:2147483647  
  5.         System.out.println("整型的最大值+1: "+(max+1));  //整型的最大值+1: -2147483648  
  6.         System.out.println("整型的最大值+2: "+(max+2));  //整型的最大值+2: -2147483647  
  7.     }  
  8. }  


如果现在要想避免数据的溢出,可以采用扩大数据类型的方式。int-->long

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String[] args) {  
  3.         int max = Integer.MAX_VALUE;  
  4.         System.out.println("整型的最大值为:"+max);       //整型的最大值为:2147483647  
  5.         System.out.println("整型的最大值+1: "+(max+1));  //整型的最大值+1: -2147483648  
  6.         System.out.println("整型的最大值+2: "+(max+2));  //整型的最大值+2: -2147483647  
  7.         System.out.println("整型的最大值+2: "+((long)max+2));  //2147483649  
  8.     }  
  9. }  


字符类型

    字符类型在内存中占有2个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待,

    因此,严格说来,字符类型也算是整数类型的一种。

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String[] args) {  
  3.         char ch1 = 'a';     //字符是使用''括起来的数据  
  4.         char ch2 = 97;      //通过数字定义字符变量  
  5.         System.out.println("ch1 = "+ch1);  
  6.         System.out.println("ch2 = "+ch2);  
  7.     }  
  8. }  


常用的转义字符

 

浮点数类型与双精度浮点数类型

    在日常生活中经常会使用到小数类型的数值,如身高,体重等需要精确的数值时,整数就不能满足程序设计者的要求了。在数学中,这些带有小数点的数值

   称为实数,在java中,这种数据类型称为浮点数类型(floag),其长度为32个字节,有效范围为-3.4E1038到3.4E1038。当浮点数的表示范围不够大的时候

   还有一种双精度(double)浮点数可供使用。双精度浮点数类型的长度为64个字节,有效范围为-1.7E10308到1.7E10308

 

在java 中一个数字或者一个小数实际上也都是存在默认类型的:

               小数(1.1,1.2)的默认类型是double类型

               整数(1,2,3)的默认类型是int类型

 

布尔类型

     布尔(boolean)类型的变量,只有 true(真)和false(假)两种

 

基本数据类型的默认值



赋值运算符号

一元运算符

算术运算符

关系运算符

递增与递减运算符

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String[] args) {  
  3.         int a = 3 , b = 3 ; // 定义两个变量a和b  
  4.         int x = 6, y = 6 ;  // 定义两个变量x和y  
  5.         System.out.println("a = " + a) ;  
  6.         System.out.println("\t a++ = " + (a++) + " , a = " + a) ;   // 先计算后自增  
  7.         System.out.println("b = " + b) ;  
  8.         System.out.println("\t ++b = " + (++b) + " , b = " + b) ;   // 先自增后计算  
  9.         System.out.println("x = " + x) ;  
  10.         System.out.println("\t x-- = " + (x--) + " , x = " + x) ;   // 先计算后自减  
  11.         System.out.println("y = " + y) ;  
  12.         System.out.println("\t --y = " + (--y) + " , y = " + y) ;   // 先自减后计算  
  13.   
  14.     }  
  15. }  


运算结果

[java]  view plain copy
  1. a = 3  
  2.      a++ = 3 , a = 4  
  3. b = 3  
  4.      ++b = 4 , b = 4  
  5. x = 6  
  6.      x-- = 6 , x = 5  
  7. y = 6  
  8.      --y = 5 , y = 5  


逻辑运算符

   不管是短路还是非短路,其基本的操作结果都是一样的。

现有如下的错误代码:

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String[] args) {  
  3.         int i = 10/0;  
  4.         System.out.println(i);  
  5.     }  
  6. }  


以上的代码只要一运行就会出现问题。

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String[] args) {  
  3.         if(10!=10&10/0==0){  
  4.             System.out.println("条件满足");  
  5.         }  
  6.     }  
  7. }  


短路与

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String[] args) {  
  3.         if(10!=10&&10/0==0){  
  4.             System.out.println("条件满足");  
  5.         }  
  6.     }  
  7. }  


只要第一个条件满足,之后的程序代码都不在执行了。

 

位运算符

位运算符的结果表

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String[] args) {  
  3.         int x = 3 ;     // 3的二进制数据: 00000000 00000000 00000000 00000011  
  4.         int y = 6 ;     // 6的二进制数据: 00000000 00000000 00000000 00000110  
  5.         System.out.println(x & y) ; //与:    00000000 00000000 00000000 00000010  
  6.         System.out.println(x | y) ; //或:    00000000 00000000 00000000 00000111  
  7.         System.out.println(x ^ y) ; //或:    00000000 00000000 00000000 00000101  
  8.     }  
  9. }  


程序的结构

        一般来说程序的结构包含有下面三种:

        1)顺序结构

        2)选择结构

        3)循环结构

 

 

在使用switch进行表达式判断的时候,在表达式中只能使用数字或字符。

[java]  view plain copy
  1. public class T {  
  2.     // 完成一个四则运算的功能  
  3.     public static void main(String args[]){  
  4.         int x = 3 ;  
  5.         int y = 6 ;  
  6.         char oper = '+' ;  
  7.         switch(oper){  
  8.             case '+':{  // 执行加法操作  
  9.                 System.out.println("x + y = " + (x + y )) ;  
  10.                 break ;  
  11.             }  
  12.             case '-':{  // 执行减法操作  
  13.                 System.out.println("x - y = " + (x - y )) ;  
  14.                 break ;  
  15.             }  
  16.             case '*':{  // 执行乘法操作  
  17.                 System.out.println("x * y = " + (x * y )) ;  
  18.                 break ;  
  19.             }  
  20.             case '/':{  // 执行除法操作  
  21.                 System.out.println("x / y = " + (x / y )) ;  
  22.                 break ;  
  23.             }  
  24.             default:{  
  25.                 System.out.println("未知的操作!") ;  
  26.                 break ;  
  27.             }  
  28.         }  
  29.     }  
  30. }  


在以上的操作中,每个语句后面都会存在一个break,此语句表示退出整个switch()语句,如果不写上此语句,则所有的操作将在第一个满足条件之后全部输出直到遇到break为止

[java]  view plain copy
  1. public class T {  
  2.     // 完成一个四则运算的功能  
  3.     public static void main(String args[]){  
  4.         int x = 1;   
  5.         int sum = 0 ;   // 保存累加的结果  
  6.         while(x<=10){  
  7.             sum += x ;  // 进行累加操作  
  8.             x++ ;       // 修改循环条件  
  9.         }  
  10.         System.out.println("1 --> 10 累加的结果为:" + sum) ;  
  11.     }  
  12. }  


[java]  view plain copy
  1. public class T {  
  2.     public static void main(String args[]){  
  3.         int x = 1;   
  4.         int sum = 0 ;   // 保存累加的结果  
  5.         do{  
  6.             sum += x ;  // 执行累加操作  
  7.             x++ ;  
  8.         }while(x<=10) ;  
  9.         System.out.println("1 --> 10 累加的结果为:" + sum) ;  
  10.     }  
  11. }  

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String args[]){  
  3.         int sum = 0 ;   // 保存累加的结果  
  4.         for(int x=1;x<=10;x++){  
  5.             sum += x ;  
  6.         }  
  7.         System.out.println("1 --> 10 累加的结果为:" + sum) ;  
  8.     }  
  9. }  


中断语句

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String args[]){  
  3.         for(int i=0;i<10;i++){  
  4.             if(i==3){  
  5.                 break;  
  6.             }  
  7.             System.out.println("i = " + i) ;  
  8.         }  
  9.     }  
  10. }  


输出结果

[java]  view plain copy
  1. i = 0  
  2. i = 1  
  3. i = 2  

 



使用continue就是中断一次循环的执行

[java]  view plain copy
  1. public class T {  
  2.     public static void main(String args[]){  
  3.         for(int i=0;i<10;i++){  
  4.             if(i==3){  
  5.                 continue;  
  6.             }  
  7.             System.out.println("i = " + i) ;  
  8.         }  
  9.     }  
  10. }  


输出结果

[java]  view plain copy
  1. i = 0  
  2. i = 1  
  3. i = 2  
  4. i = 4  
  5. i = 5  
  6. i = 6  
  7. i = 7  
  8. i = 8  
  9. i = 9  


### 黑马程序员苍穹外卖项目的Java编程笔记 #### 项目概述 黑马程序员的苍穹外卖项目是一个综合性的实战案例,旨在帮助学员掌握从基础到高级的各种Java Web开发技能。该项目涵盖了多个模块和技术栈的应用,包括但不限于JavaWeb、SSM框架(Spring, Spring MVC, MyBatis)[^1]。 #### 关键技术点解析 ##### 微信支付集成 针对微信支付功能,在`OrderController`, `OrderService`, `OrderServiceImpl`, 和 `OrderMapper` 中实现了完整的业务逻辑处理流程。具体来说: - **需求分析** 实现用户下单后的在线支付功能,并确保交易的安全性和可靠性。 - **实现思路** 使用官方提供的SDK来简化接口调用过程;通过回调机制验证支付状态并更新数据库记录[^3]. ```java // OrderController.java 示例代码片段 @RequestMapping("/pay") public String pay(@RequestParam("orderId") Long orderId){ // 调用微信支付API... } ``` ##### 订单编号生成优化 对于订单号超出`int`或`Integer`范围的问题进行了特别设计: - **解决方案** 改进原有算法以支持更大数值范围内的唯一标识符创建; 利用分布式ID生成器如Twitter Snowflake算法或其他第三方库(例如UUID)作为替代方案之一. ```java // 基于SnowFlake算法生成全局唯一的long类型的id private static final long workerIdBits = 5L; private static final long dataCenterIdBits = 5L; // ...其他属性定义... public synchronized long nextId() { // ID生成逻辑... } ``` #### 学习路径建议 按照以下顺序逐步深入理解整个系统的架构和工作原理会更加高效: 1. 掌握基本语法和面向对象概念; 2. 完成JavaWeb阶段的学习目标; 3. 进入热门框架部分熟悉Spring全家桶操作; 4. 参与实际项目练习——即本案例中的各个子系统构建[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值