零碎Java

news2025/1/19 3:34:28

1.  
1995年Sun公司开发了java    
 2009年Oracle收购了Sun公司  
  其中2004年的java5.0和2014年的java8.0更新力度最大
java特性:第一至今已有20多年了  第二编程语言   第三应用广泛

2.
二进制中逢二进一   1+1 =10    11+1=100
0000万    0000,0000亿      王健林的话说一个小目标
bit比特位  Byte字节  KB  MB  GB   TPEZ  带tp的ez   /正斜杠   \反斜杠

3.
java跨平台 JVM虚拟机(不跨平台)JRE运行java程序  JDK开发工具包
.java源文件---(javas.exe编译器)--->.class(字节码文件)----(java.exe运行)-->

4. 
关键字(小写 + 特殊颜色)--@邮箱 
标识符:$和_和大小写字母+数字,标识符不能是关键字,不能数字开头,类大驼峰,变量名和方法小驼峰

5.
常量:
字符串(内容可为空),单个整数类型/浮点类型,布尔类型(true/false),字符(内容不可为空,必须只有一个字符,可'中'),空常量(不能直接用来打印输出)

6.
变量
使用short和byte,右侧大小不能超过左侧范围
只有变量赋值了才可以打印使用
注意变量的作用域
int num1=10,num2=20,num3=30;定义/声明

7.
数据类型:基本数据类型(整数类型byte,short,int21个亿,long,浮点类型double,float,字符类型char,布尔类型boolean),引用数据类型(字符串,类,数组,接口)
java中默认整数类型是int(使用long类型要加L),浮点类型是double(使用float要加F)
浮点数可能只是一个近似值并非精确值(1/3)double 和 float区别
数据的范围与字节数无关,float(四个字节)比long(八个字节)数据范围更广泛

8.
自动类型转换/隐式类型转换   数据范围小->大
强制类型转换/显示类型转换  数据溢出(数据类型大->小   水桶)和精度损失(浮点到整形)
boolean类型不能发生数据转换
byte/short/char(char类型进行数据运算,字符会翻译成一个数字)在数据运算时先转换成int

9.
ASCII(美国信息交换标准码)
Unicode(万国码)  前面一样,后面包含更多字符
'0'->48  'A'->65   'a'->97

10.
运算符:+ -  表达式 运算符链接的式子 5+5
算数运算符:+(对于字符串来说String(不是关键字),加号代表链接操作,任何数据和字符串链接,结果都会变成字符串)   -   *   / %(取模,整数取模才有意义) ++  --(单独使用,前++和后++没区别  混合使用注意先使用在++还是先++后使用(--同理)只有变量才可以自增自减,常量不能用)  
运算中有不同类型,结果将会是数据类型范围大的那种
赋值运算符: =(常量不能用)  +=   -=  *=  /=  %=       复合赋值运算符自带一个类型转换  
比较运算符 >  <  >=  <=  ==  !=  比较运算符结果是一个boolean值,成立为true,不成立为false   1<x<3数学上可以,但程序不让连着写

11.
逻辑运算符: &&  ||  !具有短路效果,左边可以判断为最终效果,那么右边不再执行,节省性能(丈母娘房车存款)
三元运算符   条件判断?A:B     A和B的值要符合接受的数据类型   三元运算符结果必须使用
 

12.
方法:你可以大致理解为C中函数  方法定义不能有嵌套包含关系  方法小驼峰
蒙牛工厂(方法) 原料:奶牛,饲料(参数)  产出物:鲜牛奶(返回值)
return有两个作用:第一停止当前方法;第二将返回值给调用处
需要数据才能完成有参,不需要数据就可以完成无参
方法调用:单独调用,打印调用,赋值调用
如果方法有返回值,必须写return 返回值,不能没有
对于一个void没有返回值的方法可以写return;也可以不写(return另一个作用停止当前程序)
方法的重载:多个方法名称一样,参数不一样   优点:只需记住一个方法名,就可以实现多个功能
其实println就是运用了多次重载实现的

13.jshell  可以处理简单的程序  /exit退出

14.
编译器的两大优化:对于byte/short/char来说,如果赋值没有超过范围,则编译器自动补一个强转,超出范围报错;如果表达式为常量,则编译器会先把若干个常量转化为结果,有变量则不行,这叫做编译器的常量优化

 

15.
顺序结构 风和日丽上网吧  if(年龄)  if...else  else if(条件一满足,条件二就可以走了)
switch(表达式 byte/char/int/short /String字符串/enum枚举)语句  结束标志代码执行完或遇到break  (你好我也好) case 常量值:
for(我错啦宝宝)  while(原谅你了,起来吧,地上怪凉的)do...while(挖矿)
确定循环多少次用for,不确定用while
break打断循环和switch  continue跳过当前循环 开始下一次循环

16.
IDEA很多人都在用     Eclipse(免费)    集成开发(IDE) 把大象装在冰箱  
project(项目)---->module(模块)---->package(包,一组文件夹)

17.
数组是一个引用数据类型
数组两种初始化方式:动态初始化(指定长度),静态初始化(指定内容)
使用建议:如果不确定数组的个数用动态初始化,如果确定了数组个数,用静态初始化
C中数组下标在Java中叫索引值
直接打印数组名称,得到的是数组内存地址哈希值
动态初始化数组默认值:整形(0)  浮点(0.0) 字符('\u0000')  boolean(false)  引用(null)
静态初始化也有默认值的过程,只不过系统马上将默认值换成为了指定值
Java内存的五个划分:栈(方法的局部变量,方法运行在栈区进行,一超作用域立刻在栈区消失);堆区(凡是new出来的东西,都在堆区中,堆内存的里面的东西都有一个地址16进制);方法区(存放.class相关信息,包含方法的信息);本地方法栈(与操作系统相关);寄存器(与CPU相关)
所有引用类型都可以赋值为null,代表其中什么都没有.数组只有初始化(定义)才可以使用该元素。如果只赋值了null没有进行new创建就会发生异常
求数组长度  数组名称.length  将会得到一个int数字,代表其长度
数组创建后一旦运行,长度不可改变
数组遍历:打印数组中的每个元素     求数组的最值:比武招亲  0我不动手,不是我嘛?不现实当中有的人战斗力还真是负值
数组传参,传的是地址值;数组作为方法返回,返回的也是地址值

18.
面向对象:自动洗衣机    面向过程:手洗一系列操作,每个细节都要亲历亲为
遍历数组为  [10,20,30,40,50]


面向对象语言有三大特性:封装(洗衣机内部构造原理);继承;多态
类(抽象的)是属性(体重+身高+年龄)和行为(吃喝拉撒)的集合    对象(具体的  一个人,一支笔,一个晚上)     类是对象的模板(苹果构造图),对象是类的实体(苹果手机)
属性(成员变量)事物的状态信息       行为(成员方法):事物能做什么


通常情况下,一个类并不能直接使用,需要创建一个对象才能使用


导包:也就是需要使用的类在什么位置    对于当前类属于同一个包的情况,可以省略导包语句不写   import 包名称.类名称
当使用一个对象类型作为方法的返回值时,返回值就是对象的地址值
局部变量(在方法内)(方法中使用)(使用必须赋值)(栈内存)(随着方法出栈而消失)和成员变量(在方法外)(整个类全部都可以用)(不赋值会有默认值)(堆内存)(随着对象消失而消失)
private关键字阻止不合理的数据被设置进来,一旦使用本类当中任意访问,超出本类范围就不可以直接访问了
间接访问private成员变量,就要定义一对Getter/Setter方法  必须是setxxx或者是getxxx的命名规则。对于Getter来说不能有参数,返回值类型和成员变量对应;对于Setter来说不能有返回值,参数类型和成员变量对应
当方法的局部变量和成员变量重名的时候,根据就近原则,优先使用局部变量.如果需要访问本类的成员变量,要用 this.成员变量名    通过谁调用的方法谁就是this
构造方法就是在创建对象的方法,当我们用new来创建对象时,就是在调用构造方法  public 类名称(参数类型   参数名称){方法体}   构造方法的名称必须和所在的类完全一样,构造方法不要返回值类型,连void都不写;构造方法也不能return一个返回值;如果不编写构造方法,那么编译器会自动送你一个,没有参数,方法体什么也不用做;构造方法也可以重载
一个标准的类通常有四个组成部分:所有的成员变量都要使用private;每个成员变量都要编写一堆Getter/Setter方法;编写一个无参数的构造方法;编写一个有参数的构造方法

19.
API java的字典  是JDK给我们提供类的说明文档
Scanner:类似于C中scanf  .nextInt()  (输入数字,返回int)   .next()   (输入字符串)
创建对象标准格式  类名称  对象名 = new 类名称();  匿名对象只有右边的对象,没有左边的名字和赋值运算符 ;匿名对象只能使用唯一一次,下次使用要再创建一个新对象   使用建议:如果对象只使用唯一一次,就可以用匿名对象
Random用来生成随机数  参数代表范围(左闭右开)
对象数组
数组的长度不可改变,但ArrayList集合的长度是可以随便变化的,有一个<E>代表泛型(也就是在集合中的所有元素,必须是同一类型,泛型只是引用类型,并不是基本类型),直接打印ArrayList集合来说,打印的不是地址,而是内容  如果内容为空,是[]   .add向集合添加元素   .get从集合中获取元素   .remove在集合中删除元素    .size集合长度   如果集合ArrayList当中存储基本类型数据,必须使用基本类型的包装类  int(自动装箱)---->Integer (自动拆箱)--->int    char--->Character
程序当中所有双引号字符串都是String的对象,放在字符串常量值中;new不在池当中(就算没有new,也照样是)  字符串特点:字符串内容不可改变;字符串效果相当于char[]字符数组,但底层原理是byte[]字节数组
对于基本类型来说,==等于赋值比较;对于引用来说,==是地址值比较  .equals()参数可以是任何对象,只有参数是一个字符串,并且内容相同时才会给true;equals(区分大小写)具有对称性,比较对方一个常量和一个变量,建议把常量放在前面,防止变量是null造成空指针异常   equalsIgnoreCase不区分字符串的大小写    .length(s)字符串长度    .concat()字符串追加   .charAt()获取字符串索引值的单个字符   .indexOf("")查找参数字符串在本字符串中的位置  .substring(可,可不,)字符串的截取
.toCharArray()当前字符串拆分为字符数组作为返回值,可以对单个字符进行操作     .getBytes()字符串转换为字节数组  .replace(,)旧字符串转换为新字符串   .split分割字符串,参数其实是一个正则表达式,用英文句点"."要写成"\\."
一旦使用static关键字,那么这样的内容不再属于对象自己,而是属于类;凡是在本类的对象,都共享同一份(教室) 如果没有static关键字,那么首先要创建对象,然后通过对象才能使用它,如果有了static关键字,那么不需要创建对象,直接就通过类名称使用它  对于静态方法来说,可以通过对象名调用,但不推荐这种写法在编译之后也会被javac翻译成类名称.静态方法,也可以直接通过类名称调用
static修饰成员方法,这就变成了静态方法,静态方法不属于对象,而是属于类  静态不能直接访问非静态(内存先有静态内容,先人知道后人,但后人不知道先人) 静态方法中不能用this(this代表当前对象,通过谁调用的方法,谁就是当前对象) 根据类名称访问静态成员变量的时候,全程和对象就没关系,只有和类有关系
静态代码块的格式是  当第一次用到本类时,静态代码块执行唯一一次,静态内容优先于非静态,所以静态内容比构造方法先执行   静态代码块的典型用途:用来一次性地对静态成员变量进行赋值
.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法   .sort(数组)升序对数组元素进行排序 (数值从小到大,字符串按照字母升序,自定义类型需要Comparable或者Comparator接口的支持)  
java.util.Math类是关于数学的工具类,里面提供了大量的静态方法   .abs绝对值    .ceil向上取整   .floor向下取整    .round四舍五入   Math.PI近似代表圆周率    使用Math。ceil方法  -10.8可以变成-10,double可以++的
继承性:继承是多态的前提,没有继承就没有多态   继承主要解决的问题是:共性抽取   父类(超类,基类)  子类(派生类)  子类可以拥有父类的内容,也可以拥有自己专有的内容   public class 子类名称 extends 父类名称{//...}   子类和父类成员变量重名,访问有两种方式:直接访问,等号左边是谁,就优先有谁;间接访问:方法属于谁就优先用谁   在子类中,直接写成员变量名是局部变量,this.本类成员变量名   父类成员变量  super.成员变量名
父类子类访问方法的规则:创建的对象是谁,就优先用谁  无论是成员方法还是成员变量,如果没有都是向上找父类,绝不会向下找子类   重写:在继承关系中,方法的名称一样,参数列表也一样(覆盖,覆写) 方法的覆盖重写特点:创建的是子类对象,则优先用子类方法 @override写在方法前面,用来检测是不是有效的覆盖重写
子类方法的返回值必须小于等于父类方法的返回值  java.Lang.Object是所有类的公共最高父类   子类方法的权限必须大于等于父类方法的权限修饰符  public>protected>(default)不是关键字,而是什么都不写,留空>privatte
子类调用父类构造方法,不写赠送super();写了则用指定的super调用,super只能有一个,还必须是第一个   super在子类的成员方法中,访问父类的成员变量,访问父类的成员方法;在子类的构造方法中,访问父类的构造方法
this,在本类的成员方法中,访问本类的成员变量,访问本类的另一个成员方法;在本类的构造方法中,访问本类的另一个构造方法this(),调用也必须是构造方法的第一个语句,并且和super两种构造调用,不能同时使用  内存方法区子类额外有一个super_class用来找到父类.class;new子类时,里面有父类内容
java单继承,只有一个父亲;java也可以多级继承,我有一个父亲,父亲也有一个父亲;java一个父亲可以有多个子类
如果父类方法不确定进行{}方法体实现,那么这应该就是一个抽象的方法  抽象方法就是加上abstract关键字,去掉大括号,分号结束  抽象方法所在的类,必须是抽象类才行,在clsaa之前写上abstract  使用抽象类和抽象方法不能直接创建new抽象对象,必须用一个子类来继承抽象父类 ,子类必须覆盖重写抽象父类当中所有的抽象方法(去掉抽象方法abstract关键字,然后补上方法体和大括号),创建子类对象进行使用


 

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

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

相关文章

RK3568平台开发系列讲解(设备驱动篇)V4L2程序实现流程

🚀返回专栏总目录 文章目录 一、V4L2 进行视频采集二、命令标识符三、V4L2程序实例3.1、打开设备3.2、查询设备属性3.3、显示所有支持的格式3.4、设置图像帧格式3.5、申请缓冲区3.6、将申请的缓冲帧从内核空间映射到用户空间3.7、将申请的缓冲帧放入队列,并启动数据流3.8、启…

配置mpls vpn MCE组网

实验三&#xff1a;配置mpls vpn MCE组网 1、实验环境&#xff1a; 某公司需要通过mpls vpn实现总部和分部的互访&#xff0c;并且要实现不同部门之间的业务隔离&#xff0c;为了节省开支&#xff0c;总公司使用MCE设备接入不同的部门。要求分公司A只能访问总公司的部门A&…

分子生物学 第二章 遗传物质

文章目录第二章 遗传物质第一节 遗传物质的分子本质大多数生物体的遗传物质是DNA有些生物体的遗传物质是RNA蛋白质能否充当遗传物质第二节 核酸的结构1 DNA双螺旋结构的特征2 影响DNA双螺旋结构稳定性的因素3 DNA结构的多态性4 DNA多链结构5 DNA的超螺旋结构6 RNA的二级结构第三…

性能测评:腾讯云轻量2核4G5M服务器CPU内存带宽流量系统盘

2核4G云服务器可以选择腾讯云轻量应用服务器&#xff0c;自带5M公网带宽&#xff0c;5M带宽下载速度峰值可达640KB/秒&#xff0c;系统盘为60GB SSD盘&#xff0c;每月500GB流量包&#xff0c;折合每天16GB流量&#xff0c;2核4G5M轻量服务器一年168、198元15个月、三年628元&a…

OpenMV快速上手 | OpenMV硬件版本概述及HelloWorld

文章目录一、OpenMV1. 什么是OpenMV2. OpenMV版本2.1. OpenMV1&#xff08;M4 V1&#xff09;2.2. OpemMV2&#xff08;M4 V2&#xff09;2.3. OpenMV3&#xff08;M7&#xff09;2.4. OpenMV4&#xff08;H7&#xff09;二、OpenMV开发环境搭建三、hello world1. 连接OpenMV2.…

Callable、Runnable、Future 和 FutureTask

Callable 和 Future 是 Java 在后续版本中引入的&#xff0c;Callable 类似于 Runnable 接口&#xff0c;实现 Callback 接口的类与实现 Runnable 接口的类都可以用于被被线程执行的任务。 以下是两个接口的相关源码&#xff1a; // /xref/libcore/ojluni/src/main/java/java…

我为什么开发个人版的ChatGPT,而不使用集成好的商业版的十大好处。

随着人工智能技术的不断发展&#xff0c;ChatGPT已经成为了许多人工智能爱好者的热门话题。然而&#xff0c;面对现有的商业版ChatGPT&#xff0c;许多人可能会感到疑惑&#xff1a;为什么要自己开发个人版的ChatGPT&#xff0c;而不是直接使用集成好的商业版&#xff1f;本文将…

C++ 并发编程

文章目录基本概念编程创建线程启动共享数据相关条件变量时间相关future相关——等待一次性事件读写锁原子操作与缓存一致性关系线程管理启动线程从类的方法来创建线程传参标识线程常用API等待线程完成后台运行线程移动线程间共享数据互斥量&#xff08;mutex&#xff09;unique…

公网WebSocket Client远程连接本地WebSocket Server【内网穿透】

目录 1. Java 服务端demo环境 2. 在pom文件引入第三包封装的netty框架maven坐标 3. 创建服务端,以接口模式调用,方便外部调用 4. 启动服务,出现以下信息表示启动成功,暴露端口默认9999 5. 创建隧道映射内网端口 6. 创建隧道映射本地端口 7. 测试公网远程连接 1. Java 服…

一文轻松教会你基于Excel+关键字驱动的自动化测试框架封装

目录 一、概述 二、框架设计 测试用例管理 关键字库封装 数据驱动设计 日志记录和报告生成 三、框架实现 测试用例管理 关键字库封装 数据驱动设计 日志记录和报告生成 四、框架使用 编写测试用例 编写关键字库 执行测试 五、总结 一、概述 在软件开发过程中&a…

【Spring Security】| 从0到1编写一个权限认证 | 学会了吗?

目录一. &#x1f981; 认证前的工作1. 添加依赖2. 创建数据库表&#xff08;数据自行添加&#xff09;3. 编写用户实体类4. 编写Dao接口5. 在启动类中添加 MapperScan 注解6. 继续添加各种包二. &#x1f981; 自定义逻辑认证原理—UserDetailsService三. &#x1f981; 数据库…

Android Studio Flamingo | 2022.2.1 发布,快来看看有什么更新吧

原文链接 https://developer.android.com/studio/releases 新的 Android Studio 版本 Flamingo (火烈鸟) 已经发布&#xff0c;本次更改最有意思的点在于&#xff1a; Flamingo 自带的 JDK 是 JDK 17 而不再是 JDK 11&#xff0c;另外还有如 IDE 支持应用主题图标和动态颜色&am…

TikTok和国产抖音的发展路径和趋势

鑫优尚电子商务&#xff1a;以历史为镜子&#xff0c;我们可以知道变化。 纵观TikTok和国产抖音&#xff0c;我们会发现TikTok目前的发展路径和趋势与国产抖音的主线十分相似&#xff0c;直播也是如此。鑫优尚电子商务 国内抖音直播一般经历过四个时代&#xff1a;直播1.0时代…

AIGC周报|清华、北邮新研究:让文生图AI更懂你

AIGC通过借鉴现有的、人类创造的内容来快速完成内容创作。ChatGPT、Bard等AI聊天机器人以及DallE 2、Stable Diffusion等文生图模型都属于AIGC的典型案例。「AIGC技术周报」将为你带来最新的paper、博客等前瞻性研究。 OpenAGI&#xff1a;当大模型遇见领域专家 “愿原力与大型…

分子生物学 第五章 DNA损伤修复和突变

文章目录第五章 DNA损伤修复和突变第一节第二节 DNA损伤的类型1 造成DNA损伤的因素2 DNA损伤的类型3 DNA损伤修复机制3.1 直接修复3.2 切除修复3.3 双链断裂修复3.4 重组修复3.5 跨越合成第五章 DNA损伤修复和突变 第一节 损伤&#xff1a;比如碱基&#xff0c;甲基化 突变&…

JavaSE学习进阶day04_04 正则表达式和Lambda表达式

第六章 正则表达式&#xff08;超级重要&#xff09; 开发心得&#xff1a;看着正确数据&#xff0c;从左到右书写正则表达式 6.1 正则表达式的概念及演示 在Java中&#xff0c;我们经常需要验证一些字符串&#xff0c;例如&#xff1a;年龄必须是2位的数字、用户名必须是8位…

爬虫日常练习-协程方式爬取图片

文章目录前言代码设计前言 hello朋友们&#xff0c;欢迎回来。这里是无聊的网友。今天给大家分享另一种处理多任务的方法–协程 那么在开始之前我们首先要了解什么是协程。协程是在一个线程内&#xff1a;多个任务出现阻塞时&#xff0c;由envet_loop轮转查看阻塞状态&#…

Zeppelin0.9.0 连接 Hive 3.1.2(踩坑,亲测有效)

一、前提 已经安装好Hadoop、Hive&#xff08;可以启动hiveserver2&#xff09;、Zeppelin 1.启动Hadoop [roothurys24 ~]# start-all.sh 2.启动hiveserver2 [roothurys24 ~]# cd /opt/soft/hive312/conf/ [roothurys24 conf]# nohup ../bin/hive --service hiveserver2 &a…

kubernetes之Ingress介绍

Ingress 组成 ingress controller将新加入的Ingress转化成Nginx的配置文件并使之生效 ingress服务将Nginx的配置抽象成一个Ingress对象&#xff0c;每添加一个新的服务只需写一个新的Ingress的yaml文件即可工作原理 1.ingress controller通过和kubernetes api交互&#xff0…

【机器学习(五)】基于KNN模型对高炉发电量进行回归预测分析

文章目录专栏导读1、KNN简介2、KNN回归模型介绍3、KNN模型应用-高炉发电量预测3.1数据集信息&#xff1a;3.2属性信息3.3数据准备3.4数据标准化和划分数据集3.5寻找最佳K值3.6建立KNN模型预测4、完整代码专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN Python领域新星…