Java语言学习基础

2023-10-27

Java语言学习基础

01_计算机基础知识

01.01_计算机概述

计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。

由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类,较先进的计算机有生物计算机、光子计算机、量子计算机等。

计算机发明者约翰·冯·诺依曼。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩展到社会的各个领域,已形成了规模巨大的计算机产业,带动了全球范围的技术进步,由此引发了深刻的社会变革,计算机已遍及一般学校、企事业单位,进入寻常百姓家,成为信息社会中必不可少的工具。

01.02_硬件

硬件的功能是输入并存储程序和数据,以及执行程序把数据加工成可以利用的形式。从外观上来看,微机由主机箱和外部设备组成。主机箱内主要包括CPU、内存、主板、硬盘驱动器、光盘驱动器、各种扩展卡、连接线、电源等;外部设备包括鼠标、键盘等。

01.03_软件

软件是用户与计算机进行交流的界面,软件分为系统软件和应用软件。

系统软件:DOS,Windows,Linux,Unix,Mac,Android,ios

应用软件:微信,QQ,office

01.04_人机交互

软件的出现为人机交互提供了更大的便利。

人机交互的方式:

A:图形化界面方式:简单直观,易于接受;

B:命令行方式:在控制台输入指令,操纵计算机。需要记录命令,较为繁琐;

C:触摸式交互:当下应用广泛,简单操作,便捷;

D:语音识别:对话控制 简单,直接,智能。

01.05_计算机语言

A:机器语言:二进制码表示,计算机可直接识别和执行的一种机器指令的集合;

B:汇编语言:用助记符表示的面向机器的计算机语言。简化了编程过程;

C:高级语言:面向用户的语言,语意确定,规则明确,自然直观,易于学习。被广泛使用的高级语言有:BASIC,PASCAL,c,java等。

01.06_常见的DOS命令

win + r --> cmd–>回车

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7vhyWlGs-1594540821506)(C:\Users\Administrator\Desktop\20200712105717.jpg)]

A:d: 回车 盘符切换
B:dir(directory):列出当前目录下的文件以及文件夹
C:cd (change directory)改变指定目录(进入指定目录) 注意: 跨盘进入需要加一个 /d参数 例子: cd /d D:\software\cs1.6
D:cd… : 退回到上一级目录 回退多级目录 cd …/…/
E:cd: 退回到根目录
F:cls : (clear screen)清屏
G:exit : 退出dos命令行
H:ipconfig /all 查看本机IP 网卡物理地址等信息
I:calc 打开计算器
J:mspaint 打开画板
K:notepad 打开记事本!
L:hostname 获取计算机名称
M:getmac 获取物理网卡地址

md (make directory) : 创建目录
rd (remove directory): 删除目录
del (delete): 删除文件,删除一堆后缀名一样的文件*.txt

删除带内容的文件夹 不能直接删除 所以加参数 如下
rd + /s 文件夹名称 (询问是否删除)
rd + /q + /s 文件夹名称 (直接删除)

01.07_Java语言跨平台原理

通过Java语言编写的应用程序在不同的系统平台上都可以运行。只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。 由JVM来负责Java程序在该系统中的运行。JVM是不跨平台的,应为针对不同的操作系统,JAVA提供了不同的JVM,而各个操作系统的可执行文件是不同

01.08_JRE和JDK概述

JRE:Java Runtime Environment Java运行环境
包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JDK:JDK(Java Development Kit Java开发工具包)
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。

JDK,JRE,JVM作用与联系:用jdk编写了一个java程序交由jre 运行起来 由jvm实现跨平台

02_简单程序编写测试

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

02.01_关键字

A:关键字:被java语言赋予特殊含义的单词。(boolean,int,for,do,public…)

B:特点:一律用小写字符标识

02.02_标识符

A:标识符:给类,接口,方法,变量,常量等起名字时用的字符序列

B:组成规则:英文大小写字母,数字字符,$和-

C:注意:标识符不能数字开头,不能是java中关键字,区分大小写

02.03_控制台运行java程序常见错误

A:关键字拼写错误运行时报错如下:

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

B:java程序对大小写有严格要求,大小写混淆会有以下报错:

class a {
	public static void mian(String[] args) {
		system.out.println("Hello World!");
	}
}

C:语句结尾未带分号会有以下报错:

class a {
	public static void mian(String[] args) {
		System.out.println("Hello World!")
	}
}

D:语句末尾出现汉语分号,报错非法字符:

class a {
	public static void mian(String[] args) {
		System.out.println("Hello World!")}
}

E:类名与文件名不一样,编译后的.class文件名与类名一致

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

F:需将控制台打开至.java文件上一级目录,不然会出现以下报错:

03_常量

03.01_常量概述及使用

常量:在程序的执行过程中不发生改变的量

包括:

A:字面值常量:

  1. 符串常量 用双引号括起的内容
  2. 整数常量 所有整数
  3. 小数常量 所有小数
  4. 字符常量 用单引号括起的内容
  5. 布尔常量 只有true和false
  6. 空常量 null

​ 输出字面值常量:

class Constant{
	public static void main(String[] args) {
		//输出各种字面值常量
		System.out.println(100);
		System.out.println(3.14);
		System.out.println(true); //真
		System.out.println(false);//假
		System.out.println('a');
		System.out.println('4'); 
		System.out.println('1');
		System.out.println('你');
		System.out.println("Hello World!");
		System.out.println("你好,世界");
	}
}

B:自定义常量

03.02_各进制概述与转换

A:各进制表现形式:

二进制 八进制 十进制 十六进制
前缀 0b 0 0x
组成 1和0 0~7 0~9 0-9a-f

B:任意进制转换为十进制

转换原理:位权展开法,n进制计数制中各位数字A为位权,数字符号所处的位置序号X为指数。实例如下:

各进制 过程 十进制
0b1010 1*2^3+1 *2^1 10
0 012 1x8+2x8^0 10
0x000A 10x16^0 10

B:十进制转换为任意进制:

除基取余 直到商为0 余数反转。

以十进制10转换为二进制数为例:

  1. 10/2=5······0
  2. 5/2=2······1
  3. 2/2=1······0
  4. 1/2=0······1

此二进制数为:0b1010

其余进制转换均可以十进制为中介进行转换。

03.03_原码,反码及补码

A:正数原码反码补码均一样

B:负数,反码对其原码逐位取反,但符号位除外;补码在其反码最后一位加一

04_变量

变量:在程序执行的过程中,在某个范围内其值可以发生改变的量。

定义格式:数据类型 变量名 = 变量值;

04.01_数据类型

A:基本数据类型

整数型 字节数 范围
byte 1 -128~ 127
short 2 -2^15 ~ 2^15-1
int 4 -2^31 ~ 2^31 -1
long 8 -2^63 ~ 2^63 -1
浮点型
float 4
double 8
字符型
char 2 0 ~ 2^16

布尔型 boolean

整数默认int,浮点数默认double

04.02_变量的使用

注意事项:

  1. 变量定义在某一大括号内,此内不可在定义另一同名变量。
  2. 没有初始化值不能直接使用

A:默认转换规则

  1. byte,short,char->int->long->float->double
  2. byte, short,char之间不能相互转换,参与运算首先转换为int类型
  3. boolean类型不可转换为其他类型

B:强制转换

强制转换格式:

​ 目标数据类型 变量名=(目标数据类型)(被转换的数据);

强制转换可能存在损失精度的问题,例如:

class  Noname1{
	public static void main(String[] args) {
		int a=200;      //a=0b011001000
		byte b=(byte)a; 
        //(byte)a=0b11001000(补码) 
        //0b11000111(反码)
        //0b10111000(原码)=-56
		System.out.println(b);
	}
}

输出结果为:-56 , 原因如注释所示

05_字符运算及运算符使用

05.01_字符运算

根据ASCII码表:

  1. ‘0’ = 48;
  2. ‘a’ = 97;
  3. ‘A’ = 65;

当‘+’左右两边有一方不为字符串,’+'的作用为拼接字符。例如:

    System.out.println("hello" + 'a' + 1);//helloa1
	System.out.println('a' + 1 + "hello");//98hello

05.02_算术运算符基本用法

A:运算符:对常量和变量进行操作的符号称为运算符

B:分类:

  1. 算术运算符:+,-,*,/,%,++,–
  2. 赋值运算符
  3. 比较运算符:==,!=,<,>,<=,>=,instanceof
  4. 逻辑运算符
  5. 位运算符
  6. 三目运算符

++:自加。对原数据加一

–:自减。对原数据减一

注意:’++‘或’–'在前,先自加或自减再使用,其在后,则先使用后自加或自减。

如:

    System.out.println("hello" + 'a' + 1);//helloa1
	System.out.println('a' + 1 + "hello");//98hello

05.02_算术运算符基本用法

A:运算符:对常量和变量进行操作的符号称为运算符

B:分类:

  1. 算术运算符:+,-,*,/,%,++,–
  2. 赋值运算符
  3. 比较运算符:==,!=,<,>,<=,>=,instanceof
  4. 逻辑运算符
  5. 位运算符
  6. 三目运算符

++:自加。对原数据加一

–:自减。对原数据减一

注意:’++‘或’–'在前,先自加或自减再使用,其在后,则先使用后自加或自减。

​ 关系运算符运算结果为boolean类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java语言学习基础 的相关文章

  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • UI和UI有什么不同,是如何协助的

    UX 用户体验 和UI 用户界面 是一个常用的术语 然而 尽管有复杂的联系 但网页设计的两个领域是两个不同的东西 事实上 有可能有一个用户界面优秀但用户体验差的网站 因此 了解UX和UI良好的网页设计非常重要 这里简要介绍一下 UX和UI它
  • 数据库的设计(E-R图,数据库模型图,三大范式)

    一 数据库设计的概念 数据库设计是将数据库中的数据实体及这些数据实体之间的关系 进行规划和结构化的过程 二 数据库设计的重要性 如果一个数据库没有进行一个良好的设计 那么这个数据库完成之后他的缺点是 1 效率会很低 2更新和检索数据时会出现
  • SpringMVC使用stringHttpMessageConverter

    SpringMVC使用stringHttpMessageConverter 场景演示 解决方法 场景演示 当使用 ReponseBody注解的时候 我们知道返回值会被转换成 Json格式 然而里面的中文可能会被转换成乱码 如下面代码中的 测
  • 18.一篇文章,从源码深入详解ThreadLocal内存泄漏问题

    1 造成内存泄漏的原因 threadLocal是为了解决对象不能被多线程共享访问的问题 通过threadLocal set方法将对象实例保存在每个线程自己所拥有的threadLocalMap中 这样每个线程使用自己的对象实例 彼此不会影响达
  • 【笔记总结】C++面向对象三大特征(四大特征)

    C 面向对象的三大特征 四大特征 三大特征 封装 继承 多态 四大特征 抽象 封装 继承 多态 一 类和对象 什么是类 什么是对象 类和对象的区别 类是数据类型 是具有相同属性和服务的一组对象的集合 对一类对象的抽象就是类 对象即观察研究对
  • 转换vmware的vmdk格式为qcow2格式

    一 系统环境 操作系统 Win11 虚机系统 VMware Workstation 16 Pro 16 2 3 build 19376536 转换工具 qemu 8 0 2 二 下载安装qemu模拟器 查看qemu版本 Download Q
  • Python强大的内置模块collections

    1 模块说明 collections 是 Python 的一个内置模块 所谓内置模块的意思是指 Python 内部封装好的模块 无需安装即可直接使用 collections 包含了一些特殊的容器 针对 Python 内置的容器 例如 lis
  • C语言和指针数组有关的一些题目

    文章目录 一 一维数组的大小 二 字符数组 2 1 2 2 2 3 三 二维数组 四 指针笔试题 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 一 一维数组的大小 数组名的意义 1 sizeof 数组名 这里的数组名表示整
  • matlab数据过大,无法正常保存

    matlab存储数据时 存储不进mat文件 如下存在三个为1KB的文件 便是存储不成功的 这是因为对于过大的文件 大于2GB的变量 需要使用MAT file版本7 3或更高版本 解决方法如下 进入matlab 主页 点击 预设 按钮 选择
  • el-input和el-select的框的宽度设置成一致的。

    其实在el select的底层其实就是el input 只要将el select加一个属性 就是将其width设置为100 原因是什么呢 有待研究
  • BTC-匿名性

    Bitcoin and anonymity 比特币中不要求用真名 可以用公钥产生的地址 可以产生任意多的地址 用不同的地址干不同的事情 用的是化名 也被叫做pseudonymity 一般来说 匿名性多与隐私保护相关 但实际上 比特币中的匿名
  • DynamicDet: A Unified Dynamic Architecture for Object Detection 一个目标检测器的通用动态架构

    目录 检测代码 本文分享 CVPR 2023 论文 DynamicDet A Unified Dynamic Architecture for Object Detection 北京大学王选计算机研究所王勇涛团队所提出的一个目标检测器的通用
  • matlab练习程序(对应点集配准的四元数法)

    这个算是ICP算法中的一个关键步骤 单独拿出来看一下 算法流程如下 1 首先得到同名点集P和X 2 计算P和X的均值up和ux 3 由P和X构造协方差矩阵sigma 4 由协方差矩阵sigma构造4 4对称矩阵Q 5 计算Q的特征值与特征向
  • 记录--手把手教你Vue+ECharts+高德地图API实现天气预报数据可视化

    这里给大家分享我在网上总结出来的一些知识 希望对大家有所帮助 前言 所谓数据可视化 我们可以理解为从宏观角度来看一眼就能看出来整个数据的占比 走向 对于数据可视化 很多互联网公司是很看重这一块的 包括大厂 就比如阿里的淘宝 双十一的时候往往
  • 【小沐学NLP】关联规则分析Apriori算法(Mlxtend库,Python)

    文章目录 1 简介 2 Mlxtend库 2 1 安装 2 2 功能 2 2 1 User Guide 2 2 2 User Guide data 2 2 3 User Guide frequent patterns 2 3 入门示例 3
  • 随机变量序列的两种收敛性

    随机变量序列的收敛性有多种 其中常用的是两种 依概率收敛和依分布收敛 大数定律涉及的是一种依概率收敛 中心极限定理涉及的是依分布收敛 1 依概率收敛 为什么要研究随机变量序列的收敛性 依概率收敛的定义 依概率收敛于常数的四则运算 2 依分布
  • 简单HTML的使用

    1 html的简介 什么是html HyperText Markup Language 超文本标记语言 网页语言 超文本 超出文本的范畴 使用html可以轻松实现这样的操作 标记 html所有的操作都是通过标记实现的 标记就是标签 lt 标
  • 如何判断是PC端还是移动端

    app vue 中 mounted if this browser mobile this browser android this browser ios document body clientWidth lt 787 判断是否是移动端
  • 任务调度系统(定时任务)

    1 运行流程 Cron表达式 设置触发规则 调度器 调度器本身就是一个线程 并且一定是单例的 如果不是单例 会出现多指挥官 任务乱套问题 存储任务位置 默认保存在内存中 RAMJobStore 出现重启后找不到任务问问题 所以可以在配置文件
  • Java语言学习基础

    文章目录 Java语言学习基础 01 计算机基础知识 01 01 计算机概述 01 02 硬件 01 03 软件 01 04 人机交互 01 05 计算机语言 01 06 常见的DOS命令 01 07 Java语言跨平台原理 01 08 J