当前位置: 首页 > news >正文

Java学习笔记一(数据类型,运算符,流程控制)

前言

最近发现好多小伙伴和自己一样,虽然用Java工作了好多年,甚至不了解Java都能用来做什么,所以在总结基础知识前先说下Java言语能做什么东西。(前提:大家都知道java文件需要编译成class文件后计算机才能执行吧!)

前言1(java命令)

适用于没有开发工具,用手搓程序

(1) 编译命令:javac  Test.java  // 将java文件编译成class文件,可指定多个文件或全部文件

(2) 打包命令:jar -cvf Test.jar *.class // 将class文件打包成jar包

(3) 执行命令:java Test  // 执行class文件

(4) 执行命令:java -jar Test.jar  // 执行jar文件

前言2(基础功能)

(1) Java编译后的class文件,可以在Dos命令的窗口中运行。

java文件内容(不含package信息)

public class TestClass {public static void main(String[] args) {System.out.println("hello world");}
}

编译成class文件

执行class文件

相当于在Eclipse中的执行

注意点1:含package的java文件,需要将class文件放到对应文件夹下,在最外层指定包名执行

package main.java;
public class TestClass {public static void main(String[] args) {System.out.println("hello world");}
}

注意点2:main函数的参数,执行文件时可以指定

public class TestClass {public static void main(String[] args) {System.out.println("hello " + args[0]);}
}

在Eclipse中指定参数

(2) Java生成jar文件(可给其它程序引,或做成窗口程序)

java文件代码

package main.java;import java.awt.*;
import javax.swing.JFrame;public class TestFrame {public static void main(String[] args) {JFrame frame = new JFrame("Hello World Frame");frame.setBounds(100, 100, 500, 300);frame.add(new Panel().add((new Label("hello world"))));frame.setVisible(true);}}

编译成可执行jar

(3) 新建JavaWeb项目,做成网站服务器

新规(Dynamic Web Project)导出war文件,发布到服务器(例:Tomcat)

详细:TODO

1. 数据类型

1.1 基本类型(8种)

(1) byte:1字节(8位)  -128~127

(2) short:2字节 -32768~32767

(3) int: 4字节 -2147483648~2147483647

(4) long:8字节 -...~ 9223372036854775807(共19位数字)// long x = 1L;

(5) float:4字节(32位)// float f = 0.1F;

(6) double:8字节(64位) // double d = 0.1;

(7) char:2字节(0~65535) // 16位无符号unicode码,char c = 97;

(8) boolean:1字节  // boolean b1 = true;  boolean b2 = false;

1.2 引用类型

1.2.1 分类

String,数组,类,集合等所有的类都是引用类型。

1.2.2 数组 

一维数组

(1) 定义1:int  args[];

(1) 定义2:int[] args;

(2) 定义并初始化长度:int[]  args = new int[5];

(3) 定义并初始化:int[]  args = new int[] {1,2,3}

(4) 定义并初始化简写:int[]  args = {1,2,3}

二维数组

(1) 定义1:int  args[][];

(1) 定义2:int[][] args;

(2) 定义并初始化长度:int[][]  args = new int[5][3];

(3) 定义并初始化值:int[][]  args = new int[][] {{1},{2}}

(4) 定义并初始化值简写:int[][]  arg = {{1},{2}}

多维数组

(1) 定义:int args[][][].. // 其它略

注释:初始化长度后,全局变量数组与局部变量数组又相同默认值(byte,short,int(0), double,float(0.0), boolean(false),引用类型(null))

2. 运算符

2.1 种类

2.1.1 算术运算符

加(+), 减(-), 乘(*), 除(/), 余(%), 自增(++), 自减(--), 负号(-)

注释:++i (先计算后使用,符号在前先计算),System.out.print(++i) 等同于 i=i+1,输出i。

注释:i++ (先使用后计算,变量在前先使用),System.out.print(i++) 等同于 输出i,i=i+1。

2.1.2 赋值运算符

等(=), 加等(+=), 减等(-=), 乘等(*=), 除等(/=), 余等(%=)

2.1.3 关系运算符

大于(>) , 大于等于(>=), 小于(<), 小于等于(<=), 等于(==), 不等于(!=)

2.1.4 逻辑运算符

短路与( && ), 短路或( || ), 非( ! ), 逻辑与( & ), 逻辑或( | ), 异或( ^ 前后条件一致false,不一致true)

2.1.5 三元运算符

表达式 ? true值 : false值

2.2 类型转换

2.2.1 隐式类型转换

byte -> short(char) -> int -> long -> float -> double // byte short char转int后做计算

2.2.2 显示类型转换(强制转换)

int i = (int) x; // 浮点强转整数后舍弃小数部分

(1) 数值计算:byte, short先转为int再计算。 int + double 范围小的先转范围大的再计算

(2) 字符串计算:1+"1" = "11", 1+2+"3" = "33", 1+2+"3"+4+5 = "3345"

注释:制表符  '\t'  "\t" ,字符串+"\t"会将字符串补齐8位

(3) 字符计算: char a = 'a';  a + 1 = 98, a+"1" = "a1"

2.2.3 进制转换

进制单位:b(bit 位) => B(Byte 字节) => KB => MB => GB => TB

泛用的转换方式:1B=8bit,1KB=1000B,1MB=1000KB, 1GB=1000MB

精确的转换方式:1B=8bit,1KiB=1024B,1MiB=1024KiB, 1GiB=1024MiB

(1) 进制:

二进制(0~1 // int x = 0b111 以0b,0B开头)

八进制(0~7 // int x = 017 以0开头)

十进制(0~9)

十六进制(0~9 a~f // int x = 0xf9 以0x,0X开头)

(2) 进制转换:

十转二(除2取余倒叙):十进制(6) 转二进制,6/2=3余(0) => 3/2=1余(1) => 1/2=0余(1)  --> 110

二转十:例(1101)转二进制,1(3)1(2)0(1)1(0) => 2(3次方)+2(2次方)+0+2(1次方) =>8+4+0+1=13

注释:(2的1所在右数第几-1位次方)

十进制转八进制(先转二进制再转八进制):(01, 100, 001) => 141

十进制转十六进制(先转二进制再转十六进制):(0110, 0001) => 61

注释:八进制与十六进制便于查看二进制,八进制3位一组,十六进制4位一组

3 流程控制

3.1 分歧条件

3.1.1 if分歧

if (条件) { 处理... } 

if (条件) { 处理... } else { 处理 }

if (条件) { 处理... } else if (条件) { 处理 } else { 处理 }

3.1.2 switch分歧

注释:旧版本JDK的switch不能传String类型

switch(表达式) {case 值:处理...break;case 值:处理...break;default:处理...
}

3.2 循环条件

3.2.1 for 循环

// for循环
for (int i=0; i<10; i++) {...// break 跳出循环// continue 跳过本次循环
}
//增强型for循环
for (类型 变量名: 集合) {...// break 跳出循环// continue 跳过本次循环
}
// 循环嵌套
out:for (int i=0; i<10; i++) {for (int j=0; j<5; j++) {// break; // 默认退出内层循环// break out; // 退出外层循环}
}

3.2.2 while循环

注释:先判断条件,满足条件则执行。

while (表达式) {...// break 跳出循环// continue 跳过本次循环
}

3.2.3 do while循环

注释:先执行后判断,满足条件则循环。

do {...// break 跳出循环// continue 跳过本次循环
} while (表达式);

http://www.xdnf.cn/news/1449775.html

相关文章:

  • GitLens:VS Code下高效解决代码追溯的Git管理实用插件
  • 【串口过滤工具】串口调试助手LTSerialTool v3.12.0发布
  • Redis 发布订阅模式详解:实现高效实时消息通信
  • TDengine TIMEDIFF() 函数用户使用手册
  • 66认知诊断模型发展与NeuralCD框架笔记
  • FPGA笔试面试常考问题及答案汇总
  • 无穿戴动捕如何深度结合AI数据分析,实现精准动作评估?
  • DOM常见的操作有哪些?
  • 还在 @AfterEach 里手动 deleteAll()?你早就该试试这个测试数据清理 Starter 了
  • leetcode110. 平衡二叉树
  • mysql常见面试题
  • [光学原理与应用-376]:ZEMAX - 优化 - 概述
  • 代码随想录算法训练营第四天|链表part02
  • SQLint3 模块如何使用
  • PostgreSQL 技术峰会哈尔滨站活动回顾|深度参与 IvorySQL 开源社区建设的实践与思考
  • 农业XR数字融合工作站,赋能农业专业实践学习
  • 刻意练习实践说明使用手册
  • 正则表达式的使用
  • Java jar 如何防止被反编译?代码写的太烂,害怕被人发现
  • TDD测试驱动开发+Python案例解析
  • 在linux下使用MySQL常用的命令集合
  • 通义实验室发布AgentScope 1.0新一代智能体开发框架
  • 嵌入式第四十二天(数据库,网页设计)
  • Spring Boot集成Kafka常见业务场景最佳实践实战指南
  • Java全栈工程师的面试实战:从基础到复杂问题的完整解析
  • 安卓APP备案的三要素包名,公钥,签名md5值详细获取方法-优雅草卓伊凡
  • 鹧鸪云软件:光伏施工管理一目了然,进度尽在掌握
  • 涉私数据安全与可控匿名化利用机制研究(下)
  • Selenium WebUI 自动化“避坑”指南——从常用 API 到 10 大高频问题
  • 本地化AI问答:告别云端依赖,用ChromaDB + HuggingFace Transformers 搭建离线RAG检索系统