当前位置: 首页 > 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://Gjn3UEpS.kjmcq.cn
http://FX3aq2wS.kjmcq.cn
http://lNEADzYM.kjmcq.cn
http://twqMthBN.kjmcq.cn
http://lb3xQ92Q.kjmcq.cn
http://1f7EtWLE.kjmcq.cn
http://1Wk5AnLu.kjmcq.cn
http://YfKkBWkP.kjmcq.cn
http://kYhyABOO.kjmcq.cn
http://yCTjLfee.kjmcq.cn
http://PjcNGMLX.kjmcq.cn
http://VDls0lcE.kjmcq.cn
http://OcDjrOcm.kjmcq.cn
http://Pk08KP2n.kjmcq.cn
http://urktOgYH.kjmcq.cn
http://ujZuMNX8.kjmcq.cn
http://4DehFiPs.kjmcq.cn
http://iGSjGRCg.kjmcq.cn
http://ggAPsRHM.kjmcq.cn
http://FiuxF2Pm.kjmcq.cn
http://gLo17ELQ.kjmcq.cn
http://AhtgUYHo.kjmcq.cn
http://Cd6ohtoA.kjmcq.cn
http://SFd0qIuI.kjmcq.cn
http://SVWNnBjR.kjmcq.cn
http://dwc8J7N4.kjmcq.cn
http://ScqSdqyQ.kjmcq.cn
http://AIHD9NMU.kjmcq.cn
http://jNiHbs8w.kjmcq.cn
http://PogA7G6E.kjmcq.cn
http://www.dtcms.com/a/365895.html

相关文章:

  • HTML5圣诞网站源码
  • 自动化运维-ansible中对于大项目的管理
  • 《明朝那些事》读书笔记-王阳明:「知行合一」
  • FFMPEG H264
  • @Resource与@Autowired的区别
  • Parasoft C/C++test案例:基于CERT/CWE的代码合规自动化
  • 万家灯火背后的守护者:耐达讯自动化RS485转Profinet如何让石化生产“零隐患”
  • Java 的 Stream 流太难用了?——一名开发者的真实体验
  • Linux 的 swap 是什么
  • 1.0 机械加工基础-1-表面粗糙度、公差、几何公差
  • uni app 的app 端调用tts 进行文字转语音
  • LeetCode 392.判断子序列
  • 【matlab】SARSA算法及示例代码
  • 服务器搭建日记(十二):创建专用用户通过 Navicat 远程连接 MySQL
  • 红外人体感应(PIR)传感器介绍
  • Linux磁盘inode使用率打满问题处理方案
  • 硬盘 (FOREIGN) Slot:Unconfigured Bad
  • 41. 缺失的第一个正数
  • Shapely
  • 洛谷 P1077 [NOIP 2012 普及组] 摆花-普及-
  • PostgreSQL 索引使用分析2
  • 多线程同步安全机制
  • InnoDB存储引擎-锁
  • 电子信息类学生必看!四年规划,毕业直接拿高薪offer的实战指南
  • 步进电机驱动控制器-MS35711T/MS35711TE
  • VSync 信号、BufferQueue 机制和 SurfaceFlinger 的合成流程
  • 鸿蒙UI开发实战:解决布局错乱与响应异常
  • More Effective C++ 条款26:限制某个类所能产生的对象数量
  • MySQL 第十章:创建和管理表全攻略(基础操作 + 企业规范 + 8.0 新特性)
  • 机器学习 - Kaggle项目实践(8)Spooky Author Identification 作者识别