Java基础 - 黑马

我是南城余!阿里云开发者平台专家博士证书获得者!

欢迎关注我的博客!一同成长!

一名从事运维开发的worker,记录分享学习。

专注于AI,运维开发,windows Linux 系统领域的分享!

知识库链接:

Java基础入门 · 语雀


1. 编程语言发展历史

机器语言-》汇编语言-》高级语言

Java属于高级语言,高级语言都是通过翻译之后变为计算机底层可以识别的机器语言

机器语言都是由0和1组成的

1.1. jdk组成

jdk是由jvm和核心类库(这两个叫做jre)还有开发工具(Java、Javac等组成)

jvm:Java虚拟机,真正让Java程序运行的地方

jre:Java运行环境

2. 类型转换

  1. 自动类型转换

类型范围小的变量,可以直接赋值给类型范围大的变量

byte -> short ->int -> long -> float -> double

char-> int(char转换为int对应的是字母所对应的数字)

 byte a = 12;int b = a; //发生了自动类型转换
  1. 表达式的自动类型转换

在表达式中,小范围类型的变量,会自动转换为表达式中较大范围的类型,在进行运算

byte 、short、char-> int -> long -> float -> double

表达式的最终结果类型由表达式的最高类型决定

在表达式中, byte 、short、char是直接转换为int进行运算

byte a = 10;
int b = 20;
long c = 30;
long rs = a + b + c; //表达式的最终结果由表达式的最高类型决定,所以前面为longbyte i = 10;
short j = 20;
int res2 = i + j; //在表达式中, byte 、short、char是直接转换为int进行运算
  1. 强制类型转换

大范围数据类型转换为小范围数据类型

强制类型转换

数据类型 变量2 = (数据类型)变量1、数据

int a = 20;
byte b = (byte) a; //alt+enter键int i = 1500;
byte j = (byte) i;
System.out.println(j); //-36

强制转换数据类型可能会导致数据(丢失)溢出

浮点型数据类型转换为整型,直接丢失小数部分,保留整数部分返回

3. 自增自减

放在变量的前面,先对变量+1或者-1,在拿变量的值进行运算(先加后用)

放在变量的后面,先拿变量的值进行进行运算,在对变量的值进行+1或者-1(先用后加)

a++; //a = a + 1;2++;//会报错 原因如下
//++ -- 只能操作变量,不能操作自面量int i = 10;
int res = i++;//10(先用后加) 
i;//11int j = 10;
int ress = ++j; //11
j; //11 (先加后用)//单独使用放在前面后面没有区别
//非单独使用:在变量前,先加后用,反之。

4. 扩展运算符

对应视频 p31

a += b; //等价于 a = a + b;
a /= b; //等价于 a = a / b;int a = 6;
int b = 2;
a *= b; //a = (int)(a * b); =后面的int是a的数据类型

5. 方法

修饰符 返回值类型 方法名(形参列表){方法体代码(需要执行的功能代码)return 返回值;  
}

方法是一种语法结构,它可以把一段代码封装城一个功能,以便重复调用

  1. 方法声明了具体的返回值类型,内部必须使用return返回对应数据类型
  2. 形参列表可以有多个,甚至没有,如果有多个形参,多个形参必须使用,隔开,且不能给初始化。

5.1. 方法的执行原理

方法运行在栈内存。

栈的特点:先进后出。方法在栈中运行,可以保证一个方法调用完另一个方法后,可以回来


5.2. Java的参数传递机制
  1. 基本类型的参数传递

值传递:传输的是实参存储的值的副本

实参:在方法内部定义的变量

形参:以方法为例,就是方法定义时的变量

  1. 引用类型的参数传递

基本类型的参数传递的是存储的数据值

引用类型的参数传递的是地址值 但是这两种类型都是值传递

5.3. 方法的书写规范

遵循1:是否需要定义返回值,返回值的类型

遵循2:是否需要定义形参

5.4. 方法重载

只关心名称(必须一样)和形参列表(形参个数,类型和顺序不同,不关心形参名称),不关系修饰符,返回值类型

方法重载的应用场景:

开发中我们经常要为处理一类业务,提供多种解决方案,此时用方法重载来设计。

//形参个数,类型和顺序不同,不关心形参名称
void test(int a,int b)
void test(int b,int a) //这是错误的,不是方法的重载!

5.5. 一些常用的跳出xxx的关键字使用方法

6. 面向对象

Java种存在自动垃圾回收机制,会自动清楚掉垃圾对象。

6.1. this关键字

this就是一个变量,可以用在方法中,来拿到当前对象

那个对象调用方法,this就指向那个对象

6.2. 构造器

6.3. 封装

6.4. 实体类

6.5. 成员变量与局部变量的区别

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

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

相关文章

第二十四章 $ZF Callout 快速参考 - $ZF()调用iriszf库

文章目录 第二十四章 $ZF Callout 快速参考 - $ZF()调用iriszf库$ZF()调用iriszf库$ZF() $ZF(-3): Call by Name$ZF(-3) 第二十四章 $ZF Callout 快速参考 - $ZF()调用iriszf库 $ZF()调用iriszf库 如果调用$ZF()时不带负数参数(例如,$ZF("myFunction "&…

剖析一下Mask R-CNN获得实例分割的这三个步骤。第一步,利用先验框获得建议框。第二步,利用建议框获得预测框。第三步,利用预测框获得语义分割结果。

问题描述: 剖析一下Mask R-CNN获得实例分割的这三个步骤。第一步,利用先验框获得建议框。第二步,利用建议框获得预测框。第三步,利用预测框获得语义分割结果。 问题解答: 生成建议框(Region Proposal&…

Linux IDEA 安装及环境配置

Linux系统安装IDEA保姆级教程_linux安装idea-CSDN博客 下载tar.gz解压缩添加环境变量: vim ~/.bashrc export IDEA_HOME/usr/local/src/idea/idea-IC-213.6777.52 export PATH:$PATH:${IDEA_HOME}/bin source ~/.bashrc验证环境:echo $PATH即可在任意目录…

使用MATLAB连接USRP

文章目录 前言一、本地环境二、前期准备1、MATLAB版本、labview版本、UHD 版本对应关系2、下载 GNU Radio Companion3、确定 USRP UHD 版本①、下载一个 USRP 硬件驱动程序②、确认 MATLAB 的 UHD 版本 三、下载 USRP 通信工具箱支持包四、使用 MATLAB 连接 USRP 前言 本文记录…

基于opencv的直线检测(pythonC++)

提供了直线检测python与C版本,用于检测竖直线与横线,主要流程为:图像二值化Canny边缘检测霍夫直线变换直线检测 一、python实现 import shutilimport osimport cv2 import numpy as npfilename "20230525-173637.jpg" file_ext …

F-Droid:开源Android应用的宝库

F-Droid:开源Android应用的宝库 引言 F-Droid是一个开源应用程序存储库,旨在为安卓用户提供自由、隐私和安全的应用程序。它最初于2010年由Ciaran Gultnieks创建,因为他认为Google Play Store上的应用程序不够透明和安全。F-Droid的目标是为…

Web3与环保:区块链如何推动可持续发展

随着气候变化和环境问题日益严峻,社会对可持续发展的需求变得愈发迫切。在这个背景下,Web3技术和区块链崭露头角,成为推动可持续发展的关键力量。本文将深入探讨Web3技术如何与环保理念相结合,引领我们迈向更加可持续的未来。 1. …

AtCoder Beginner Contest 336 D - Pyramid

题目链接 题意&#xff1a;就是给你一个长为n的序列&#xff0c;让你通过两种不限次数的操作 使其变为金字塔序列&#xff0c;(a1<a2<ak>ak-1>ak-2...>an) 两种操作分别是1&#xff1a;让任何一个数减一&#xff1b;2&#xff1a;去掉队头队尾 其实我们想这和…

每日一题——LeetCode1200.最小绝对差

方法一 个人方法 排序一次遍历&#xff1a; 最小差值一定是出现在大小相邻的两个元素之间&#xff0c;所以将数组从小到大排序 循环求两元素之间的差值&#xff0c;先假设当前差值为最小差值&#xff0c;先往res数组里面push数据&#xff0c;当碰到更小差值的时候&#xff0c…

VS 中调用调试DLL库的方法

前提条件&#xff1a; 1、当前代码是最新的&#xff0c;并且编译成dll的库有程序使用。 2、打开运行dll库的程序。 配置步骤&#xff1a; 1、使用VS打开要调试的dll库项目。 2、点击调试菜单展开调试菜单。 3、点击附加到进程&#xff0c;弹出配置框。 4、在配置框中选…

学习笔记-数据库概念介绍

一.数据库概述 1.数据库: 存储数据的仓库,本质是一个文件系统. 用户可以对数据库中的数据进行 增加,修改,删除以及查询操作 2.特点 可以结构化存储大量的数据可以有效的保持数据的一致性,完整性读写效率高 3.常用数据库 二.数据库分类及其常用 关系型数据库 指的是二维表格…

【51单片机系列】51单片机的中断系统使用总结一

本文是在学习51单片机的中断系统的简单性总结&#xff0c;着重于51单片机的中断系统的工作原理及如何使用。 文章目录 一、中断原理简单介绍二、 外部中断相关介绍2.1 与外部中断相关的寄存器2.2、外部中断0使用示例2.3、外部中断1使用示例 三、定时器中断相关介绍3.1、51单片机…

基于Ubuntu22.04部署生产级K8S集群v1.27(规划和核心组件部署篇)

本文档主要根据k8s官网文档和其插件的官网文档&#xff0c;参考部分他人优秀经验&#xff0c;在实际操作中逐渐完成&#xff0c;比较详尽&#xff0c;适合在境内学习者和实践者参考。 实操环境基于VMware Workstation 17 pro&#xff0c;采用ubuntu22.04操作系统&#xff08;有…

链接全域直播产业经济,天府锋巢直播产业基地10层正式起航

100㎡-400㎡多种类型的办公户型可选 精装全包 拎包入驻 【天府锋巢直播基地】 由德商产投与无锋科技联袂打造 坐落于天府新区核心区域科学城板块 包含电商直播、娱乐直播、跨境直播 多种直播业态的全域直播基地 基地【10层】于12月初全面竣工 招&#xff5c;商 &#xff5c;火&…

中小企业如何做好信息化规划?

中小企业需不需要做信息化规划&#xff1f;什么时候做信息化规划比较好&#xff1f; 企业的信息化规划&#xff0c;一定是越早越好&#xff0c;越快越好。 因为信息化是一个过程&#xff0c;不是一个结果&#xff0c;它不是一天完成的事情&#xff0c;而是贯穿着企业经营管理…

鸿蒙应用开发学习:让page页面强制横屏

一、学习做了个适合横屏的页面但进入页面后是竖屏显示的 前几天在B站上跟着 黑马程序员的 HarmonyOS4.0开发应用教学视频学习了显式动画&#xff08;animateTo&#xff09;和属性动画&#xff08;animation&#xff09;功能&#xff0c;并参照教学视频的内容做了个小鱼动画。…

瑞_Java开发手册_(五)MySQL数据库

文章目录 (一) 建表规约(二) 索引规约(三) SQL 语句(四) ORM 映射附&#xff1a;雪花算法&#xff08;Java&#xff09; &#x1f64a;前言&#xff1a;本文章为瑞_系列专栏之《Java开发手册》的MySQL数据库篇&#xff0c;主要介绍建表规约、索引规约、SQL语句、ORM映射。由于博…

力扣hot100 路径总和Ⅲ dfs 前缀和 一题双解 超全注释

Problem: 437. 路径总和 III 思路 树的遍历 DFS 一个朴素的做法是搜索以每个节点为根的&#xff08;往下的&#xff09;所有路径&#xff0c;并对路径总和为 targetSumtargetSumtargetSum 的路径进行累加统计。 使用 dfs1 来搜索所有节点&#xff0c;复杂度为 O(n)O(n)O(n)&am…

CPU 工作原理

随笔记录 目录 1. 简单介绍 2. CPU 工作原理详细介绍 2.1. 取值 2.2. 译码 2.3. 执行 2.4. 写回 1. 简单介绍 CPU(中央处理器)是一台计算机的主要组成部分&#xff0c;它承担着执行计算机指令和控 制计算机运行的任务。CPU 工作原理简单概述&#xff1a; 取值 --> 译…

【温故而知新】HTML链接a标签/图像img标签

文章目录 一、概念二、链接三、图像 一、概念 HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是用于创建网页的标准标记语言。它被用来描述网页的结构和内容&#xff0c;并且是网页浏览器能够解析和渲染网页的基础。HTML5 是 HTML 的最新版…