黑马程序员——Java基础——基础内容

本文详细介绍了Java的基础语法,包括标识符的定义规则、名称规范、注释格式、常量和变量的概念及其使用方法,同时深入讲解了基本数据类型、类型转换及运算符等内容。
------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、标识符:


 定义合法标识符规则:

 1、由字母、数字、下划线、$组成,数字不可以开头。注:此处字母可以是中文、日文等。

 2、不可以使用Java中的关键字和保留字。

 3、Java中严格区分大小写。

Java中的名称规范:

包名:多单词组成时所有字母都小写。xxxyyyzzz

类名接口名:多单词组成时,所有单词的首字母大写。XxxYyyZzz

变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。 xxxYyyZzz

常量名:所有字母都大写。多单词时每个单词用下划线连接。 XXX_YYY_ZZZ


Java中的注释格式:

 单行注释: //注释文字

 多行注释: /*  注释文字  */

 文档注释:/** 注释文字 */


二、常量:

 常量表示不能改变的数值。

 java中常量的分类:

 1,整数常量。所有整数

 2,小数常量。所有小数

 3,布尔型常量。较为特有,只有两个数值。true false。

 4,字符常量。将一个数字字母或者符号用单引号( ' ' )标识。

 5,字符串常量。将一个或者多个字符用双引号标识。

 6,null常量。只有一个数值就是:null.

 

 对于整数:java有三种表现形式。

 十进制:0-9 ,满10进1.

 八进制:0-7 ,满8进1. 用0开头表示。

 十六进制:0-9,A-F,满16进1. 用0x开头表示。

 

  

进制的基本转换:

十进制  二进制互转:

十进制转成二进制  除以2取余数

 二进制转成十进制  乘以2的幂数

 十进制十六进制互转:

 负数的二进制表现形式

 对应的正数二进制取反加1


三、变量:

占据着内存中的某一个存储区域; 

该区域有自己的名称(变量名)和类型(数据类型); 该区域的数据可以在同一类型范围内不断变化;  

为什么要定义变量: 

用来不断的存放同一类型的常量,并可以重复使用;


使用变量注意: 

变量的作用范围:定义开始到定义它的代码块结束


初始化值 定义变量的格式: 

数据类型    变量名  =  初始化值; 



四、基本数据类型:

数据类型中,最常用也是最基础的数据类型,被称作基本数据类型。可以使用这些类型的值来代表一些简单的状态。 
Java 语言的基本数据类型总共有以下8 种,下面是按照用途划分出的4 个类别: 

整数型:byte(字节型)、short(短整型)、int(整型)、long(长整型)

小数型:float(单精度浮点型) 、 double(双精度浮点型)

字符型:char(字符型)

布尔型:boolean(布尔型)

基本数据类型转换之向上转型和向下转换 :


向上转换:

整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则: 

容量小的类型可自动转换为容量大的数据类型;

byte,short,char → int → long → float → double byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型。

boolean 类型是不可以转换为其他基本数据类型。 

Eg:

int i = 123;

long l = i; //自动转换,不需强转 

float f = 3.14F; 

double d = f;


向下转换

整型,字符型,浮点: 型的数据在混合运算中相互转换,转换时遵循以下原则:

容量小的类型可自动转换为容量大的数据类型;

byte,short,char → int → long → float → double 

byte,short,char之间不会相互转换,他们在计算时首先会转换为int类型。

boolean 类型是不可以转换为其他基本数据类型。 

Eg: 
long l = 123L; 

int i = (int) l;//必须强转 

double d = 3.14; 

float f = (float) d; 

总结:

小转大,自动!自动类型转换(也叫隐式类型转换)   

大转小,强转!强制类型转换(也叫显式类型转)


五、Java的运算符 :

运算符是一种特殊符号,用以表示数据的运算、赋值和比较等共分以下几种:   

算术运算符(+ 、— 、* 、/ 、%) 

赋值运算符(= 、+=、-=、*=、/=,、%=)

关系运算符(>、>=、<、<=、!=) 

条件运算符(&&、||、!&、|、^) 

位运算符(&、|、^、~、>>、<<、<<<、>>>)  


六、表达式和三目运算符 

表达式是由数字、运算符、数字分组符号(括号)等以能求得数值的有意义排列的序列;

表达式的类型和值: 

对表达式中操作数进行运算得到的结果是表达式的值。  

表达式值的数据类型即为表达式的类型。

表达式的运算顺序 应按照运算符的优先级从高到低的顺序进行; 

优先级相同的运算符按照事先约定的结合方向进行;   


“三目运算符”,语法格式:
  

x ? y : z; 

其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算符的结果是表达式y的值,否则就是z的值。  

例子:

package com.itheima;

public class Demo {

	public static void main(String[] args) {
		int a=5;
		String string =(a==5?"正确":"错误");
		System.out.println(string);
	}

}
正确


【SCI一区复现】基于配电网韧性提升的应急移动电源预配置和动态调度(下)—MPS动态调度(Matlab代码实现)内容概要:本文档围绕“基于配电网韧性提升的应急移动电源预配置和动态调度”主题,重点介绍MPS(Mobile Power Sources)动态调度的Matlab代码实现,是SCI一区论文复现的技术资料。内容涵盖在灾害或故障等极端场景下,如何通过优化算法对应急移动电源进行科学调度,以提升配电网在突发事件中的恢复能力与供电可靠性。文档强调采用先进的智能优化算法进行建模求解,并结合IEEE标准测试系统(如IEEE33节点)进行仿真验证,具有较强的学术前沿性和工程应用价值。; 适合人群:具备电力系统基础知识和Matlab编程能力,从事电力系统优化、配电网韧性、应急电源调度等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于复现高水平期刊(SCI一区、IEEE顶刊)中关于配电网韧性与移动电源调度的研究成果;②支撑科研项目中的模型构建与算法开发,提升配电网在故障后的快速恢复能力;③为电力系统应急调度策略提供仿真工具与技术参考。; 阅读建议:建议结合前篇“MPS预配置”内容系统学习,重点关注动态调度模型的数学建模、目标函数设计与Matlab代码实现细节,建议配合YALMIP等优化工具包进行仿真实验,并参考文中提供的网盘资源获取完整代码与数据。
一款AI短视频生成工具,只需输入一句产品卖点或内容主题,软件便能自动生成脚本、配音、字幕和特效,并在30秒内渲染出成片。 支持批量自动剪辑,能够实现无人值守的循环生产。 一键生成产品营销与泛内容短视频,AI批量自动剪辑,高颜值跨平台桌面端工具。 AI视频生成工具是一个桌面端应用,旨在通过AI技术简化短视频的制作流程。用户可以通过简单的提示词文本+视频分镜素材,快速且自动的剪辑出高质量的产品营销和泛内容短视频。该项目集成了AI驱动的文案生成、语音合成、视频剪辑、字幕特效等功能,旨在为用户提供开箱即用的短视频制作体验。 核心功能 AI驱动:集成了最新的AI技术,提升视频制作效率和质量 文案生成:基于提示词生成高质量的短视频文案 自动剪辑:支持多种视频格式,自动化批量处理视频剪辑任务 语音合成:将生成的文案转换为自然流畅的语音 字幕特效:自动添加字幕和特效,提升视频质量 批量处理:支持批量任务,按预设自动持续合成视频 多语言支持:支持中文、英文等多种语言,满足不同用户需求 开箱即用:无需复杂配置,用户可以快速上手 持续更新:定期发布新版本,修复bug并添加新功能 安全可靠:完全本地本地化运行,确保用户数据安全 用户友好:简洁直观的用户界面,易于操作 多平台支持:支持Windows、macOS和Linux等多个操作系统
### TCP传输原理与实现 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层协议。其核心原理是通过建立端到端的连接,确保数据在不可靠的网络中能够可靠地传输。TCP 使用确认机制、流量控制、拥塞控制等机制来保障数据的完整性和有序性。 在 Java 中,TCP 通信可以通过 `Socket` 和 `ServerSocket` 类实现。客户端使用 `Socket` 连接到服务器,服务器端使用 `ServerSocket` 监听连接请求。通信过程中,数据通过输入流和输出流进行传输。 #### 客户端实现 客户端的主要任务是与服务器建立连接,并通过输出流向服务器发送数据,同时可以通过输入流接收服务器的响应。例如: ```java Socket s = new Socket(InetAddress.getLocalHost(), 10004); OutputStream out = s.getOutputStream(); out.write("Hello TCPClient".getBytes()); InputStream is = s.getInputStream(); byte[] buffer = new byte[1024]; int len = is.read(buffer); System.out.println(new String(buffer, 0, len)); s.close(); ``` 该代码实现了客户端与服务器的连接,并发送了一条文本消息,同时接收服务器的响应[^1]。 #### 服务端实现 服务端通过 `ServerSocket` 监听指定端口,等待客户端连接。一旦连接建立,服务端通过输入流接收客户端发送的数据,并通过输出流向客户端发送响应。例如: ```java ServerSocket ss = new ServerSocket(10012); Socket s = ss.accept(); InputStream in = s.getInputStream(); byte[] buffer = new byte[1024]; int len = in.read(buffer); System.out.println(new String(buffer, 0, len)); PrintWriter out = new PrintWriter(s.getOutputStream(), true); out.println("<font color='red' size=7>客户端s你好</font>"); s.close(); ss.close(); ``` 该代码展示了如何在服务端接收客户端发送的数据,并向客户端发送 HTML 格式的响应[^3]。 #### TCP连接的建立与释放 TCP 连接的建立采用三次握手(Three-way Handshake): 1. 客户端发送 SYN(同步)报文给服务器,表示请求建立连接。 2. 服务器收到 SYN 报文后,发送 SYN-ACK(同步-确认)报文作为响应。 3. 客户端收到 SYN-ACK 后,发送 ACK(确认)报文,连接建立。 连接的释放采用四次挥手(Four-way Handshake): 1. 客户端发送 FIN(结束)报文,表示数据发送完成。 2. 服务器发送 ACK 报文,确认收到 FIN。 3. 服务器发送 FIN 报文,表示数据发送完成。 4. 客户端发送 ACK 报文,连接关闭。 #### TCP的可靠性机制 TCP 通过以下机制确保数据的可靠传输: - **确认机制**:接收方收到数据后,向发送方发送确认信息。 - **重传机制**:如果发送方未收到确认信息,则重传数据。 - **流量控制**:通过滑动窗口机制,控制发送速率,避免接收方缓冲区溢出。 - **拥塞控制**:通过慢启动、拥塞避免等算法,防止网络拥塞。 #### TCP的编程模型 TCP 编程模型通常包括以下几个步骤: 1. **创建 Socket**:客户端创建 `Socket` 对象,连接服务器;服务端创建 `ServerSocket` 对象,监听端口。 2. **获取流对象**:获取 `Socket` 的输入流和输出流,用于数据传输。 3. **数据读写**:通过输入流读取数据,通过输出流写入数据。 4. **关闭连接**:通信结束后,关闭 `Socket` 和流对象。 ### 示例代码:完整的 TCP 通信 以下是一个完整的 TCP 通信示例,包含客户端和服务端的代码。 #### 客户端代码 ```java import java.io.*; import java.net.*; public class TcpClient { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8888); OutputStream out = socket.getOutputStream(); out.write("Hello Server!".getBytes()); InputStream in = socket.getInputStream(); byte[] buffer = new byte[1024]; int len = in.read(buffer); System.out.println("Server response: " + new String(buffer, 0, len)); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` #### 服务端代码 ```java import java.io.*; import java.net.*; public class TcpServer { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(8888); System.out.println("Server is listening on port 8888..."); Socket socket = serverSocket.accept(); InputStream in = socket.getInputStream(); byte[] buffer = new byte[1024]; int len = in.read(buffer); System.out.println("Client message: " + new String(buffer, 0, len)); OutputStream out = socket.getOutputStream(); out.write("Hello Client!".getBytes()); socket.close(); serverSocket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值