Java学习笔记-01

news/2024/4/19 19:05:47/文章来源:https://blog.csdn.net/qq_52845451/article/details/130365610

目录

jdk安装及环境配置

java前置知识

编写一个HelloWorld

常量

数据类型

变量

类型转换

算数运算符

一元运算符(++  --)

关系运算符

逻辑运算符(与或非,逻辑异或)

三元(三目)运算符

Scanner类的简单使用


jdk安装及环境配置

看到的一篇文章,讲的很详细。可以参照这个:jdk8安装与环境变量的配置

java前置知识

java跨平台原理

  • 是因为在对应的系统(window,linux,mac)上,都安装了对应的JVM(java虚拟机),所以才能在每个平台都能编译

 JRE与JDK的区别

  • JDK是Java程序开发工具包,包含了JRE和开发人员使用的工具
  • JRE是Java程序运行时的环境,包含了JVM和运行时所需要的核心库
  • 如果我们想要运行一个已有的Java程序,只需要安装JRE即可
  • 如果我们想要开发一个全新的Java程序,那么就需要安装JDK了

 计算机存储单元

  • 内存和硬盘都可以进行存储,计算机存储设备的最小信息元叫 位(又叫比特位 / bit / b)
  • 而计算机中的最小存储单位叫 字节(byte / B)

Dos常用命令

  • window + R        调出cmd
  • 盘符:        可以切换到指定盘符 

  • cd 文件夹名        可以切换到指定盘符,文件名可以按Tab键补全 
  • cd ..        可以切换到上一层文件目录
  • cd .\        可以切换到当前文件的根目录
  • dir        查看文件夹下的所有文件信息
  • cls        清屏
  • exit        退出

编写一个HelloWorld

新建一个文件夹(javaCoding),文件夹里新建文本文档HelloWorld.txt,写入以下内容

public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World");}
}

然后把txt后缀名改为java,也就是HelloWorld.java

然后鼠标点击文件夹,输入cmd

 会弹出cmd窗口,窗口中输入  javac HelloWorld.java    按下回车 

此时文件夹中会出现编译后的字节码class文件

然后cmd窗口中我们再输入 java HelloWorld  就会显示内容

 注意:如果文件中输出的内容包含中文,则编译的指令是

javac -encoding UTF-8 文件名.java

常量

  • 就是不会变化的量,一旦赋予了初始值,则后面就不能进行修改了
类型说明举例
字符串常量双引号括起来的内容"aabbcc"
整数常量不带小数点的数字1
小数常量带小数的数字1.1
字符常量用单引号括起来的内容,且只有一个'a'
布尔常量true或者falsefalse
空常量null(空值)不能够输出

数据类型

  • java是强类型语言,对每一个数据都必须作出明确的数据类型,才可以进行使用。不同的数据类型也分配了不同的内存空间
  • 基本数据类型又可分为 4 大类,即整数类型(包括 byte、short,int 和 long)、浮点类型(包括 float 和 double)、布尔类型和字符类型(char)

默认值及所占字节

变量

  • 在程序运行中,其值可以发生改变的值

变量类型  变量名  =  变量值;

int num = 100;  // 定义了一个变量名为num的变量,是数字型,初始值为100
// 或者这种方式
int num;
num = 100;

注意:

  • 定义long类型时,需要在后面加上L
  • 定义float类型时,需要在后面机上F
public static void main(String[] args) {// 声明浮点数时,再后面要加上f或者Ffloat pi = 3.1415926f;System.out.println(pi);// 声明long类型时,需要在后面加上L或者llong count = 123456789L;System.out.println(count);}

类型转换

  • 分为自动类型转换和强制类型转换
  • 小数默认是double类型
  • 数字默认是int类型

自动类型转换

  • 把一个表示范围小的数值或者变量赋值给另一个数据范围大的变量(也就是从小到大)
double num = 10;  // 由数字型转成双精度型,会自动转换

强制类型转换(不推荐)

  • 把一个表示范围大的数值或者变量赋值给另一个表示范围小的变量(也就是从大到小)

目标数据类型  变量名  =  (目标数据类型)值或变量

int num = (int)9.99; // 9 把浮点型转成整数型,从大到小,需要强制转换

算数运算符

  • 一共有  +(加)  -(减)  *(乘)  /(除)  %(取余)  这5种
public static void main(String[] args) {int a = 10;int b = 20;System.out.println(a + b); // 30System.out.println(b - a); // 10System.out.println(a * b); // 200System.out.println(b / a); // 2System.out.println(b % a); // 0float c = 9.99f;System.out.println(a + c); // 19.99}
  • char类型 + 数字型         如果char的值非数字,则会转变成ASCII码对应的数字进行计算
public static void main(String[] args) {char a = 'a'; // a 对应的ASCII码值为 97int b = 20;System.out.println(a + b); // 117}
  • 算数运算符中包含多个基本数据类型的值时,整个算数表达式的类型会自动进行提升

提升规则

byte / short / char                参与运算时,会自动提升到int类型

int                                        参与运算时,会自动提升到long类型

long                                     参与运算时,会自动提升到float类型

float                                     参与运算时,会自动提升到double类型

  • 如果是字符串+操作,则 字符相连
public static void main(String[] args) {String a = "999";System.out.println(a + 0); // 9990}

一元运算符(++  --)

  • 前自增或者前自减,都会先对自身进行增或者减,然后再参与其他临近的运算
public static void main(String[] args) {// 单独使用int a = 10;int res = (++a);System.out.println(res); // 11// 参与运算int b = 99;int res2 = ++b + --b + b;// 1. ++b 会先自增,此时b也就是(99 + 1),然后再参与临近的运算  b = 100// 2. --b 会先自减,此时的b也就是(100 - 1),然后再参与运算(99 + 1) + (100 - 1)  b = 99// 3. 然后再+b (99 + 1) + (100 - 1) + 99  b = 99System.out.println(res2); // 298System.out.println(b); // 99}
  • 后自增或者后自减,都会先参与其他临近的运算,然后再对自身进行增或者减
public static void main(String[] args) {// 单独使用int a = 10;int res = (a--);System.out.println(res); // 10System.out.println(a); // 9// 参与运算int b = 99;int res2 = b++ + b-- + b;// 1. b++ 会先参与临近的运算,也就是 99 + ?(这里的问好是因为后面临近的运算也是b的操作,// 不是确定的值) 然后再自增,此时b也就是(99 + 1)  b = 100// 2. b-- 会先参与临近的运算,也就是 99 + 100 然后再自减,此时的b也就是(100 - 1)  b = 99// 3. 然后再+b 99 + 100 + 99  b = 99System.out.println(res2); // 298System.out.println(b); // 99}

关系运算符

  • 关系运算符的结果都是布尔类型,也就是true或者false。关系运算符会产生一个布尔类型结果
  • ==        !=       >       >=       <       <=       一共就这6种,用于判断
  • 双等要求类型和值都必须相同
public static void main(String[] args) {int a = 10;int b = 20;System.out.println(a == b); // falseSystem.out.println(a != b); // trueSystem.out.println(a > b); // falseSystem.out.println(a < b); // trueSystem.out.println('1' == 1); // false}

逻辑运算符(与或非,逻辑异或)

  • 判断表达式是否成立,判断的结果也是true或者false
  • 与 &        短路与 &&       或 |        短路或 ||        非 !        逻辑异或 ^ 
标志说明举例
&

前后的表达式都为true,才为true

前后都会进行判断

可以判断前后不是同一类型的

0 & 1 // 0

false & true // false

true & true // true

&&

前后的表达式都为true,才为true

但是如果前面的为false,则不会判断后面的,直接返回false

前后类型必须一致,才能进行判断

0 && 1 // 会直接报错
false && true // false
true && true // true
|

前后的表达式都为false,才为false

前后都会进行判断

可以判断前后不是同一类型的

0 | 1 // 1

false | true // true

false | false // false

||

前后的表达式都为false,才为false

但是如果前面的为true,则不会判断后面的,直接返回true

前后类型必须一致,才能进行判断

0 || 1 // 会直接报错

false || true // true

false || false // false

!取反操作,true的会返回false,false的会返回true

!true // false

!false // true

^异或操作,a ^ b(a和b结果不同则为true)

true ^ false // true

true ^ true // false

三元(三目)运算符

格式:

关系表达式 ?表达式1 :表达式2 ;

  • 如果表达式成立,则执行表达式1,反之不成立,则执行表达式2
int a = true ? 10 : 20;
System.out.println(a);
  • 当然,也可以进行链式调用(不推荐,比较乱,不如用if或者switch)
int a = true ? 10 : true ? 20: true ? 30 : 0;
System.out.println(a);

Scanner类的简单使用

  • 需要用到Scanner这个类
  • 第一步:进行导包
import java.util.Scanner;
  • 第二步:new Scanner类,创建一个具体的实例化对象
Scanner input = new Scanner(System.in);
  • 第三步:接收用户输入的数据,并进行下输入约束
int num = input.nextInt(); // 规定用户只能输入数字型

完整代码:

public static void main(String[] args) {// 提示用户输入System.out.println("请您输入一个整数数字:");// 接收用户输入Scanner input = new Scanner(System.in);// 规定用户只能输入数字型int num = input.nextInt();// 显示用户输入的内容System.out.println("您输入的数字为:" + num);}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_103563.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++STL】set

前言 前面的CSTL的博客&#xff0c;我们介绍了string&#xff0c;vector&#xff0c;list&#xff0c;deque&#xff0c;priority_queue还有stack和queue。 这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面存储的是元素本身。 而从本节开…

(二)ElasticSearch 辅助工具 Kibana 介绍与安装

1、什么是 kibana &#xff1f; Kibana 是一个针对Elasticsearch的开源分析及可视化平台&#xff0c;用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana&#xff0c;可以通过各种图表进行高级数据分析及展示。 Kibana让海量数据更容易理解。它操作简单&#xff…

0401概述-最短路径-加权有向图-数据结构和算法(Java)

文章目录 1 最短路径2 最短路径的性质3 加权有向图的数据结构3.1 加权有向边3.2 加权有向图 4 最短路径4.1 最短路径API4.2 最短路径的数据结构4.3 边的松弛4.4 顶点的松弛 结语 1 最短路径 如图1-1所示&#xff0c;一幅加权有向图和其中的一条最短路径&#xff1a; 定义&…

加强人工智能共性技术研发与产业化协同发展

央视网消息&#xff1a;“以5G为代表的新一代信息技术与制造业、交通、旅游等实体经济重要领域深度融合。”4月20日下午&#xff0c;国新办举行一季度工业和信息化发展情况新闻发布会&#xff0c;相关部门负责人在答问时表示&#xff0c;将用好融合应用这把金钥匙&#xff0c;开…

基于matlab仿真相控天线阵列在波束成形MIMO-OFDM系统中的使用

一、前言 本例显示了相控阵在采用波束成形的MIMO-OFDM通信系统中的使用。它使用通信工具箱和相控阵系统工具箱中的组件&#xff0c;对组成发射器和前端接收器组件的辐射元件进行建模&#xff0c;用于MIMO-OFDM通信系统。使用用户指定的参数&#xff0c;您可以根据不同空间位置和…

JAVA Future类详解及Thread线程是如何运行Future类的

一、Future基本介绍 Future(java.util.concurrent Interface Future<V>)表示异步计算的结果。Future接口提供了检查计算是否完成、检查计算是否被取消、等待计算完成并获取计算结果等方法。 在并发编程中&#xff0c;我们经常用到非阻塞的模型&#xff0c;但继承thread类…

202303-1 田地丈量

代码 #include<iostream> #include<vector> #include<string> #include<cmath> #include<algorithm> #include<stack> using namespace std; int n, a, b;int main() {cin >> n >> a >> b;int x1, y1, x2, y2;int x, y;…

网络基础之网络传输基本流程

网络基础 此小节介绍网络基础概念 首先要明确的是 网络是层状结构&#xff01;分层->OP->解耦 网络发展&#xff1a;最早的时候&#xff0c;每台计算机之间是相互独立的。后续发展到网络互联&#xff0c;就是将多台计算机连接在一起&#xff0c;完成数据共享。 协议&…

19.Java文件操作---I/O流

Java文件操作—I/O流 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中&#xff0c;管道是一条不间断的字节流&#xff0c;用来实现程序或进程间的通信&#xff0c;或读写外围设备、外部文件等。一个流&#xff0c;必有源端和目的端&#xff0c;它们可以是计算机内存的某…

【问题记录】docker 搭建 minio

一、搭建过程 docker 搜索minio镜像 docker search miniodocker 拉取镜像 docker pull minio/miniodocker 启动 minio docker run -p 9900:9900 --name minio -d --restartalways -e MINIO_ACCESS_KEYminio -e MINIO_SECRET_KEY1qazWSX -v /usr/local/minio/data:/data -v …

PHP入门【1】环境搭建

目录 一&#xff0c;安装appserv组合包 二&#xff0c;运行第一个php程序 一&#xff0c;安装appserv组合包 组合包&#xff1a;将apache&#xff0c;mysql&#xff0c;php等服务器软件和工具安装配置完成后打包处理 组合包大大提高了我们的效率&#xff0c;不需要为配置环境…

MACH SYSTEMS操作手册 SAEJ2716(SENT) to RS-232/CAN Gateway怎么使用?

双通道SAE J2716 (SENT)至RS-232/CAN总线网关&#xff0c;具有两个双向SENT通道和RS-232 (SENT-RS232) 或CAN总线 (SENT-CAN) 接口。两种变体还提供两个模拟输出&#xff0c;可以直接将输入SENT数据转换为模拟电压。该网关配备了一个免费的PC应用程序&#xff0c;用于SENT通信分…

Linux Ansible创建任务并执行

目录 通过add-hoc执行anbise任务 通过Playbook剧本方式执行任务 Playbook包含的常用对象 Yaml语法 对Yaml格式自动对齐 Playbook语法检测与执行 Playbook任务实施 Playbook特权升级 Playbook常用模块 软件包管理模块 用户管理模块 存储模块管理 文件操作相关模块 …

gpt在线使用-免费的 GPT在哪下载

免费的 GPT&#xff08;Generative Pre-trained Transformer&#xff09; 。现在您可以免费体验我们的 GPT 技术&#xff0c;来让您的业务或项目更加智能。 GPT 是一种基于最前沿的自然语言处理技术&#xff0c;它展现出了令人惊叹的预测能力和交互性能。我们的 GPT 是在世界顶…

TryHackMe-M4tr1x: Exit Denied(boot2root)

M4tr1x: Exit Denied 大多数人只看到一个完美构建的系统。但你一直都是不同的。你不仅看到表面上的东西&#xff0c;还看到 它下面有什么统治;调节和调节的内部关联机制 几乎完美地管理其每个模块&#xff0c;以至于它试图隐藏所有模块 其多面设计中的微小孔。但是&#xff0c…

linux-01-基础回顾-虚拟机安装linux(centos7)、linux常用命令

文章目录 Linux-Day01课程内容1. 前言1.1 什么是Linux1.2 为什么要学Linux1.3 学完Linux能干什么 2. Linux简介2.1 主流操作系统2.2 Linux发展历史2.3 Linux系统版本 3. Linux安装3.1 安装方式介绍3.2 安装VMware3.3 安装Linux3.4 网卡设置3.5 安装SSH连接工具3.5.1 SSH连接工具…

Linux安装mysql(5.7解压版)

Linux服务器安装软件时&#xff0c;建议安装解压版&#xff0c;将文件安装在自己指定的目录。安装版一般会将软件安装在Linux默认的目录&#xff0c;如/usr/local/&#xff0c;配置文件在/etc/&#xff0c;日志在/logs&#xff0c;安装目录比较分散&#xff0c;特别是不熟悉该软…

Linux网络——PXE高效批量网络装机

Linux网络——PXE高效批量网络装机 一、PXE远程安装服务1.PXE批量部署的优点2.搭建PXE网络体系的安装条件 二、PXE 安装进行前的配置1.PXE装机所需的文件2.搭建 PXE 过程中使用的服务和程序①.DHCP服务②.vsftpd服务③.TFTP服务④.syslinux 三、搭建 PXE 远程安装服务器1.安装相…

IPEmotion 2023 R1支持在线能量分析

新发布的IPEmotion 2023 R1提供了许多新功能&#xff0c;其中最重要的是新的“在线功率计算&#xff08;Online Power Calculation&#xff09;”功能。该功能允许使用预定义的功率计算来进行测量任务和数据分析。此外&#xff0c;IPEmotion 2023 R1现在支持一种新的存储模式&a…

Vmware安装Ubuntu出现 unable to find a medium containing a live file system

一、前言 由于未知的原因&#xff0c;使用Vmware安装Ubuntu的时候&#xff0c;总是遇到奇怪的问题。&#xff08;忘记截图了…&#xff09; 大致是&#xff1a; unable to find a medium containing a live file system找了几个帖子&#xff0c;参考1、参考2&#xff0c;但都…