com.qcby

news/2024/10/31 5:32:29/

基本数据类型

整型:byte(1字节)  short(2字节)  int(4字节)  long(8字节) 

浮点型:float(4字节) double (8)

布尔型:boolen

字符型:char

引用数据类型:

接口

数组

以byte类型为例阐述计算机原码反码补码的作用

1.因为计算机在进行加减法的时候会产生+-0的问题,反码为了解决减法运算问题,补码解决0的符号以及两个编码的问题
反码:   00000001+10000001=10000002=-2  所以用00000001+11111110=11111111=10000000=-0  所以上一步11111111+1=00000000=0
补码:  +-0的问题:10000000和00000000   

构造器的特点

1.构造器与类同名
2.new一个对象时,new后边的就是构造函数
3.每个类中都有一个默认不显示的无参构造器,在不写构造器时默认调用它,在写了构造器后调用写的构造器
4.构造器没有返回值
5.一个类中可以有一个或多个构造器

==与equals()的区别
1) 、对于==,比较的是值是否相等
   如果作用于基本数据类型的变量,则直接比较其存储的 值是否相等,
   如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等。
2) 、对于equals方法,比较的是是否是同一个对象
  equals()方法不能作用于基本数据类型的变量,
另外,equals()方法存在于Object类中,而Object类是所有类的直接或间接父类,所以说所有类中的equals()方法都继承自Object类,  
在没有重写equals()方法的类中,调用equals()方法其实和使用==一样,也是比较的是引用类型的变量所指向的对象的地址,
有些类重写了equals()方法,重写后的equals()方法一般都是比较两个对象的值。

一、什么是面向对象编程?

面向对象的编程产生的历史原因:由于面向过程编程在构造系统时,无法解决重用,维护,扩展的问题,而且逻辑过于复杂,代码晦涩难懂,因此,人们开始想能不能让计算机直接模拟现实的环境,以人类解决问题的方法,思路,习惯和步骤来设计相应的应用程序。于是,面向对象的编程思想就产生了。

面向对象的编程的主要思想是把构成问题的各个事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在解决问题的过程中经历的步骤和行为。对象作为程序的基本单位,将程序和数据封装其中,以提高程序的重用性,灵活性和可扩展性。类是创建对象的模板,一个类可以创建多个对象。对象是类的实例化。

二、什么是类,什么是对象,类与对象的关系是什么?

类是抽象的,不占用堆内存空间;而对象具体的,占用堆内存空间。

类是对象的模板,我们可以将类想象成制作小甜饼的切割机,将对象想象成小甜饼,由类构造对象的过程叫做类的实例化。

三、封装

封装是java面向对象的一种特性,从形式上来看封装不过就是将数据和方法组合在一起,并对数据的访问者隐藏了数据的实现方式。在对象当中的数据称为实例域,操作数据的过程称为方法。

获得或者设置实例域的值应该提供下面三项内容

  • 一个私有的实例域
  • 一个公有的域访问器方法
  • 一个公有的域更改器方法

读取输入

Scanner in = new Scanner(System.in);

String name = in.next()

数组的扩容

由于数组的长度是不可变的,那么就会给我们造成一个问题,既当我们给数组添加数据满了以后就不能在添加了

解决思路:

我们只需要重新见一个数组,新的数组的长度是原来数组长度+1,然后将数组当中的值传递 给新数组,老数组的句柄指向新数组的堆内存空间

public static void main(String[] args) { //定义数组 int[] arr = new int[] {1,2,3};

//快速的查询出数组当中的元素

System.out.println(Arrays.toString(arr));

//要加入数组的目标元素 int dst = 10;

//创建一个数组,数组长度是原数组长度 + 1

int[] brr = new int[arr.length+1];

//数组当中的数据全部复制到新的数组当中去

for (int i = 0; i < arr.length; i++) { brr[i] = arr[i]; }

//将目标元素放入到新数组的最后 brr[3] = dst;

//新数组替换元素组 arr = brr; //快速的查询出数组当中的元素 System.out.println(Arrays.toString(arr));

数组的插入

数组的插入和删除都需要移动数据元素,插入x作为第 i 个元素,首先必须将元素ai,ai+1.......an-1向后移动,空出第 i 个元素,然后将 x 插入。如果数组,则不能插入,称为数组 溢出 。解决数据 溢出 的办法是,申请一个更大容量的数组,并复制全部的数组元素,这样就扩充了顺序表得容量

有序数组的二分法查找

思路

以及数组元素是按顺序排序的,value是我们要查询的数据,begin和end表示要查询子序列 的范围 ①:从子序列的中间位置mid开始比较。value和mid元素相等,则查找成功;否则根据value 大小缩小查询范围,若value较小,则继续在子序列的前半段查找;反之继续在后半段查 找 ②:重复①,直到查询成功;当begin和end表示范围无效时,表示查询不成功


http://www.ppmy.cn/news/215614.html

相关文章

缺陷管理工具-QC篇

缺陷管理工具-QC篇 一、QC介绍&#xff1a; QC的全称Quality center, 质量中心的意思&#xff0c;它是一款缺陷管理工具&#xff0c;可以组织和管理一个项目所有的测试阶段&#xff0c;如&#xff1a;从需求-用例编写-用例执行-提交缺陷-回归测试等。 QC的背景&#xff1a;原…

视频转码、腾讯爱奇艺等各网站缓存文件转mp4等

不需要下载软件&#xff0c;windows命令可搞定&#xff0c;清晰度同下载的一样且无水印 如题&#xff1a;以腾讯视频为类&#xff0c;缓存的文件只有用腾讯视频才能打开&#xff0c;并且会将其分成十几秒的小段&#xff0c;并带有logo 找到缓存的片段&#xff0c;放置于一个文…

qq视频转码失败怎么办_微信视频大于25M发送失败怎么办?学会这3招教你秒传视频...

微信在我们的生活和工作中可谓是占有重要地位呀&#xff0c;接收和传送文件是常有的事。不知道大家有没有发现当我们发送视频时&#xff0c;超过25M的就不能发送出去了&#xff01;今天教给大家三招&#xff0c;大于25M的视频很快就可以发送出去啦&#xff01; 一&#xff1a;修…

优酷、爱奇艺视频码率与YouTube视频码率

YouTube视频码率 144p&#xff0c;288p&#xff0c;360p&#xff0c;480p&#xff0c;720p(HD)&#xff0c;1080p(HD)&#xff0c;1440p(HD)&#xff0c;2160p(4K)&#xff0c;4320p(8K) 优酷视频码率 标清448x336&#xff0c;高清576x432&#xff0c;超清1104x622 &#xff…

如何搭建一个优酷、爱奇艺这样的视频网站,都会有哪些技术难点?

曾经有太多人问过我这样一个问题&#xff1a; 如何搭建一个优酷这样的视频网站&#xff0c;与普通的图文网站差异大吗&#xff0c;这里面会有哪些坑需要注意&#xff1f; 下面&#xff0c;我以优酷平台开发工程师的身份大体回答一下这个问题。 首先要给一些外行的开发人员&a…

爱奇艺基于 Docker 的 App Engine 实践

杨成伟&#xff1a;大家好&#xff0c;我是来自爱奇艺的杨成伟&#xff0c;现在在爱奇艺公司内部负责弹性计算云方面的建设&#xff0c;之前我是做移动操作系统的&#xff0c;之前在因特尔做MeeGo和Python&#xff0c;有几年的经验&#xff0c;主要是在操作系统的核心层&#x…

怎样用计算机合并视频,怎么合并视频-只需1键,将多个腾讯|爱奇艺|优酷视频瞬间转换成mp4(送转换器)...

相信各位小伙伴都在腾讯、爱奇艺、优酷上看过视频吧。如果你还在里面下载过视频&#xff0c;会发现用一般的播放器无法打开&#xff0c;也无法进行后期剪辑&#xff0c;很麻烦。怎么办呢&#xff1f;一个非常简单的方法是进行视频格式转换。 怎么转换&#xff1f;我们以优酷视频…

爱奇艺容器实践(内附云原生落地沙龙干货下载)

4月10日下午&#xff0c;爱奇艺技术产品团队举办了“i技术会”线下技术沙龙&#xff0c;本次技术会的主题是“云原生落地探索与实践”&#xff0c;邀请快手、百度和字节跳动的技术专家&#xff0c;与爱奇艺技术产品团队共同分享与探讨云原生落地的实践经验。 其中&#xff0c;来…