javase入门
最近在学习大数据,学到flume拦截器的时候发现自定义拦截器需要使用java编写,现在开始学一些java入门的东西.
一. java相关组成

path环境变量: 环境变量用于记住程序路径,方便在命令行窗口任意目录启动程序.
二 java中的变量
- 变量要先定义在使用.
int age = 15 - 定义变量要定义其数据类型.
- 什么类型的变量只能存储什么类型的数据.
- 变量存在访问范围,同一个范围内,多个变量的名字不能一样.
- 变量定义时可以不给赋值,但使用的时候一定要有值.
2.1变量的数据类型
基本数据类型
注意:直接写的小数就是double类型变量.
2.3 类型转换
2.3.1 自动类型转换
类型范围小的变量,可以直接赋值给类型范围大的变量.
2.3.2 表达式的自动类型转换
- 表达式的最终结果由表达式中的最高类型决定.
byte a=10 int b = 20 long c =30 long d=a+b+c # a+b+c表达式的最高类型是long,所以d的类型为long.
- 在表达式中,short,byte,char是直接转化成int类型参与运算的.
byte b1=1 byte b2 =2 int b3 =b1+b2
2.3.3 强制类型转换
当大范围类型的变量赋值给小范围类型的变量时.需要强制转换.

但是,将大范围类型转化为小范围类型,容易出错,因为大范围类型变量可能会超出小范围变量的范围.
三 程序流程控制(控制程序执行的顺序-->重点)
程序中最经典的三种执行顺序:

3.1 if 分支

3.2 switch分支

当一个一个比较的时候,还是使用switch..case比较好,优雅.
使用switch的时候需要注意:
- 表达式类型只能是byte,short,int,char,string,不支持double,float和long.
- case后边的值不可以重复,不可以是自变量,只能是字面量.
- 正常使用switch时不要忘记写break,如果不写break,会有穿透影响.
3.3 for 循环

3.4 while循环
while和for的区别:
- 功能上一样,for可以解决的,while也可以解决.
- 知道几次使用for,不知道几次使用while.
3.5 do-while循环


do-while执行的特点:先执行,后判断
四 数组的定义和访问
4.1 静态初始化数组
静态初始化数组表示在定义数组的时候直接给数组赋值.
定义语法:
数据类型 [] 数组名字 = new int[] {元素1,元素2....};
int [] arr =new int {1,2,3}
简化写法:
数据类型 [] 数组名 = {元素1,元素2,...}
注意:
- 数据类型 数组名字 [] = new int[] {元素1,元素2....}; 也可以
- 什么类型的数组存储什么类型的元素.
数组存的是元素的地址.在定义数组时,会开辟一块内存,然后把一串元素赋值给该数组变量,该数组变量存放的是这些元素的内存中的地址.
4.2 访问数组
语法:数组名 [索引]
数组长度:数组名.length
4.3 动态初始化数组
定义数组时,先不存入具体的元素,之确定数组存储的数据类型和数组的长度.
语法:
数据类型 [] 数组名 =new 数据类型[长度]
int [] arr =new int [13]
五 方法
概述:方法是一种语法结构,它可以把一段代码封装成一个功能,以便重复调用.
语法:
修饰符 返回值类型 方法名 (形参列表){方法代码return 返回值;
}
# 定义
public static int sum(int a,int b){int c =a+breturn c;
}# 调用
# 语法:方法名(参数)
int res =sum(1,2)
- public static 是方法的修饰符
- 如果方法不需要返回值,那么返回值类型为void
总结:
- 方法在 类中的位置前后是无所谓的,但是一个方法不能放在另一个方法里边.
- 方法不调用不会执行.
- 有返回值的方法,调用的时候可以直接输出调用(但是python不行)
- java的参数传递机制是值传递,把变量对应的值传递给某个函数的形参,该函数对该形参做改变,不影响原来的值.
六 方法重载(overload)
定义:一个类中,出现多个方法名称相同,但是参数列表不同的,那么这些方法就成为方法重载.

方法重载的应用场景:
- 在开发过程中,为一类业务 提供多种处理方案.
七 return在无返回值方法中的应用.

八 字符串
在java中,String是字符串的类,java程序中,所有字符串文字都是此类的对象.
String name = "123"
字符串的两种创建方式:
String str = "ayh"
String str = new String("ayh")
字符串的内容不能发生变化.
九 接口
接口就是给出一些没有实现的方法,将他们封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来.(所有抽象方法都要实现)
语法:
# 定义接口
interface 接口名{属性方法
}# 定义其他的类来使用接口
public class 类名 implements 接口名{自己的属性自己的方法必须实现的接口的抽象方法}
在jdk7.0前,接口里的所有方法都没有方法体,即都是抽象方法.
jdk8.0后,接口可以有静态方法,默认方法,也就是说接口中可以有方法的具体实现.(现在一般都用这个)
相关文章:
javase入门
最近在学习大数据,学到flume拦截器的时候发现自定义拦截器需要使用java编写,现在开始学一些java入门的东西. 一. java相关组成 path环境变量: 环境变量用于记住程序路径,方便在命令行窗口任意目录启动程序. 二 java中的变量 变量要先定义在使用. int age 15 定义变量要定义其…...
Wireshark显示过滤器大全:快速定位网络流量中的关键数据包
文章目录 一、简介二、wireshark中的逻辑运算符三、过滤示例集合3.1 过滤指定日期和时间3.2 过滤指定协议3.2.1 例:仅显示SMTP(端口 25)和ICMP流量:3.2.2 例如:Windows 客户端 - DC 交换 3.3 过滤指定网段(…...
OOP笔记4----抽象类、接口、枚举
抽象类 简介 父类可以封装不同子类的共同特征或者共同行为.而有的时候,父类中封装的方法无法具体完成子类中需要的逻辑,因此我们可以将此方法设计成抽象方法,即使用关键字abstract进行修饰。而有抽象方法的类,也必须使用abstract…...
MySQL面试题全解析:准备面试所需的关键知识点和实战经验
MySQL有哪几种数据存储引擎?有什么区别? MySQL支持多种数据存储引擎,其中最常见的是MyISAM和InnoDB引擎。可以通过使用"show engines"命令查看MySQL支持的存储引擎。 存储方式:MyISAM引擎将数据和索引分别存储在两个不…...
01_Electron 跨平台桌面应用开发介绍
Electron 跨平台桌面应用开发介绍 一、Electron 的介绍二、关于 NW.js 和 Electron 介绍三、搭建 Electron 的环境1、准备工作:2、安装 electron 环境3、查看 electron 的版本,electron -v 一、Electron 的介绍 Electron 是由 Github 开发的一个跨平台的…...
【C语言-扫雷游戏】mineweeper【未完成】
编程小白如何成为大神?大学新生的最佳入门攻略 编程已成为当代大学生的必备技能,但面对众多编程语言和学习资源,新生们常常感到迷茫。如何选择适合自己的编程语言?如何制定有效的学习计划?如何避免常见的学习陷阱&…...
psychopy stroop 实验设计
斯特鲁stroop实验就是色词一致/不一致实验。 设计步骤如下: 1. 先去设置中将Input改为PsychToolbox, 2. 然后左上角File-New新建一个 3. 右键trial,rename改名 改成自己想要的名字即可,比如欢迎界面welcome。 4. 接下来添加提示语…...
c++精品小游戏(无错畅玩版)
一、俄罗斯方块 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> #include <conio.h> #include <windows.h>#ifdef _MSC_VER // M$的编译器要给予特殊照顾 #if _MSC_VER < 1200 // VC6及以下版本 #err…...
应急响应-主机安全之系统及进程排查相关命令(Linux操作系统-初级篇)
目录 概述lscpu-显示有关CPU架构的信息uname-查看系统信息lsmod-输出加载的所有模块lastb-输出最后登录失败的用户last-展示用户最近登录信息lastlog-展示所有用户最后的登录时间systemctl-系统服务,开机自启排查crontab-计划任务选项 history-查看历史命令选项常用…...
java中RSA分段加解密及Data must not be longer than异常处理
谈到RSA非对称加密,作为开发的我们第一想到的是安全,几乎不会被破解,以及公钥加密,私钥解密这些。在Java代码中,我们常使用一些现成的工具类如hutool中提供的工具类、网上在线的或者博客上的RSAUtils工具类来实现公钥私…...
MySQL数据分析进阶(十二)设计数据库——PART3
※食用指南:文章内容为‘CodeWithMosh’SQL进阶教程系列学习笔记,笔记整理比较粗糙,主要目的自存为主,记录完整的学习过程。(图片超级多,慎看!) 【中字】SQL进阶教程 | 史上最易懂S…...
Kubernetes-1.22.0 可视化部署
目录 Kubeadm方式部署3master,2work集群(Kubernetes-1.22.0)-CSDN博客 1. 官方Dashboard 2. Kuboard 部署 3. Rainbond 部署 4. Kubesphere 部署 1. 官方Dashboard kubectl apply -f https://kuboard.cn/install-script/k8s-dashboard/v2…...
在 vue3 中动态路由问题记录
第一种 如果这样子的话需要加上 /* vite-ignore / ,但是在这样用这行部署服务器上跳转会有问题 component: () > import(/ vite-ignore */ ../views/ e.component .vue) 第二种 // 解决跳转问题const modeules imporet.meta.glob(/views/**/**.vue)component: modules…...
进程编程及其函数的使用
1. 创建进程 创建进程的核心操作是使用 fork() 系统调用。 1.1 fork() 系统调用 fork() 创建一个新进程(子进程),新进程几乎是父进程的完整拷贝。fork() 返回两次: 在父进程中,返回子进程的 PID。在子进程中&#…...
为什么funnel图在邮件中不显示
在电子邮件中嵌入的Funnel图或其他图表可能不显示的原因有以下几种: 1. 邮件客户端对外部内容的限制 大多数邮件客户端为了安全,会阻止从外部服务器加载的内容,如图片、脚本或嵌入式图表。Funnel图通常是通过链接或外部脚本生成的ÿ…...
C语言 ——— 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串
目录 题目要求 代码思路 代码实现 题目要求 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串 例如 s1 "AABCD" ;s2 "BCDAA" ,返回1 s1 "AABcd" ;s2 "BCDAA" …...
白骑士的Matlab教学实战项目篇 4.4 机器学习与AI
系列目录 上一篇:白骑士的Matlab教学实战项目篇 4.3 控制系统设计 机器学习与人工智能(AI)是当前技术发展的前沿领域,通过数据驱动的模型和算法,可以解决许多复杂的问题。MATLAB 提供了丰富的工具和函数,支…...
事件监控模块——Channel模块
这个模块就是 记录文件描述符 和 想要监控的事件,实际就绪的事件,以及事件发生之后要怎么做,判断有没有监控这个事件,获取事件。 class Poller; class EventLoop; class Channel {private:int _fd;EventLoop *_loop;uint32_t _ev…...
OCR调研
OCR调研 一、介绍 OCR(Optical Character Recognition,光学字符识别)是一种将图像中的文字转换为计算机可处理格式的技术。OCR技术经历了从传统OCR到基于深度学习的OCR的转变。深度学习OCR技术通过模拟人脑神经元结构处理文本和图像数据&am…...
数据结构(学习版)
考纲 (一)数据结构部分; 线性表栈、队列、数组查找和内部排序树和图 (二)计算机算法设计部分: 递归与分省策路、回溯法贪心算法、分支限界法、动态规划算法设计中的数据结构运用 (三)程序设计基础(C或C)部分: 基本数据类型、各种运算符和表达式、基本控制结构。数组的定义…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
深入理解Optional:处理空指针异常
1. 使用Optional处理可能为空的集合 在Java开发中,集合判空是一个常见但容易出错的场景。传统方式虽然可行,但存在一些潜在问题: // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...
图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...
6.9-QT模拟计算器
源码: 头文件: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMouseEvent>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);…...
【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解
一、前言 在HarmonyOS 5的应用开发模型中,featureAbility是旧版FA模型(Feature Ability)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文获取方式,而非依赖featureAbility。 FA大概是API7之…...

