牛客java训练题 day1
9.24 day1 Q
1.
this 指针是用来干什么的?
2.基类和派生类分别是指什么?
3.为什么方法中不能写静态变量
4.
解释一下ASCII码和ANSI码和两者的区别
5.简述j ava.io java.sql java.awt java.rmi 分别是什么类型的包
6.
看下面一段代码:
public class Test{private static int i = 1;public int getNext(){return i++;}public static void main(String[] args){Test test = new Test();Test testObject = new Test();test.getNext();testObject.getNext();Sout(testObject.getNext());}
}
最后打印的值
7.
以下的代码结果是:
public class foo {public static void main(String sgf[]) {StringBuffer a=new StringBuffer("A");StringBuffer b=new StringBuffer("B");operate(a,b);System.out.println(a+"."+b);}static void operate(StringBuffer x,StringBuffer y) {x.append(y);y=x;}
}
8.
分析此构造结果:
class Base{public Base(String s){System.out.print("B");}
}
public class Derived extends Base{public Derived (String s) {System.out.print("D");}public static void main(String[] args){new Derived("C");}
}
10.
说一说HashMap 和 Hashtable 两者的区别?
1.线程安全性:
2.null键和null值
3.继承关系
4.效能
5.初始容量和负载因子
6.迭代顺序
12.
那些类实现或继承了COllection接口和Map接口?
13.
看一下的代码,其中能正常执行的有
public static void main(String args[]) {
byte a = 3;
byte b = 2;
b = a + b;
System.out.println(b);
}
// A
public static void main(String args[]) {
byte a = 127;
byte b = 126;
b = a + b;
System.out.println(b);
}
// B
public static void main(String args[]) {
byte a = 3;
byte b = 2;
a+=b;
System.out.println(b);
}
//C
public static void main(String args[]) {
byte a = 127;
byte b = 127;
a+=b;
System.out.println(b);
}
//D
14.说一说实例变量、局部变量、类变量和final变量之间的异同点
实例变量
是在类中声明的变量,可以具有访问修饰符(public,private,protected等)可以通过对象引用以及在类中的方法进行访问和修改
只有对象被销毁后才会被销毁
局部变量
局部变量不具有默认值,必须初始化
在代码块执行结束之后被销毁
类变量
用static修饰的变量
会一直存在于内存中,直到程序退出或类被卸载
final 变量
final变量是一个常量,一旦被赋值后就不能再更改它的值
final变量可以是实例变量,局部变量或类变量
final变量必须在声明时或构造函数中进行初始化,且不能再被修改
final变量在java编译器中有重要作用,提供了不可变性和线程安全性
public class VariableExample {// 实例变量private int instanceVariable;// 类变量private static String classVariable = "Hello";
public void exampleMethod() {// 局部变量int localVar = 10;
// 使用实例变量和类变量instanceVariable = 20;System.out.println("Instance Variable: " + instanceVariable);System.out.println("Class Variable: " + classVariable);
// 使用局部变量System.out.println("Local Variable: " + localVar);// 使用final变量final int finalVar = 30;System.out.println("Final Variable: " + finalVar);// 错误示例:finalVar = 40; // 无法修改final变量的值}public static void main(String[] args) {VariableExample obj = new VariableExample();obj.exampleMethod();}
}
15.
Q: 以下代码将打印出
public static void main (String[] args) { String classFile = "com.jd.". replaceAll(".", "/") + "MyClass.class";System.out.println(classFile);
}
9.24 java 1 A
1.
this指针是隐藏的,可以使用该指针来访问调用对象中的数据。
保证每个对象拥有自己的成员,但共享处理这些数据的代码
2.
基类是继承关系中位于最高i级别的类,也就是父类
派生类是从基类继承属性和方法的类
3.
因为被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,两者矛盾
public class Test {static String x = "1";static int y = 1;public static void main(String args[]){static int z = 2;//error}
}
4.
相同点:都是用于表示字符的编码方案
ASCII码无法包括所有国际字符
ANSI码使用更加广泛,因为它包含的更多
标准ASCII只使用7 个bit
ANSI就是GB2312
ASCII码是ANSI码的子集
都不能打印,因为包含一些特殊空字符
5.
java,io提供了全面的IO接口。包括:文件读写、标准设备输出
java.sql:提供使用编程语言访问并处理在数据源中的数据的API。此API包括一个框架,凭借此框架可以动态地安装不同驱动程序来访问不同数据源
java.awt:是一个软件包,包含用于创建用户界面和绘制图形图像的所有分类。功能:包含用于创建用户界面和绘制图形图像的所有类
java.rmi:提供RMI包。RMI指的是远程方法调用。它是一种机制。能够让某个java虚拟机上的对象调用另一个java虚拟机中的对象上的方法
6.
答案是:3
return i++,先返回i,然后i+1
7.
简单来说就是有a,b,x,y四个指针
往方法中传参,传的仅仅知识地址,而不是实际内存,所以y = x ,并不是b=a的执行,这里只是y指向了a指向的地址
8.
子类构造方法在调用时必须先调用父类的,由于父类没有无参构造,所以只能在子类中显性调用,在子类构造方法的第一行
public Derived extends Base{
public Derived(String s){super("s");
System.out.print("D")
}
}
9.

这个表记住
10.
Hashtable and HashMap 的区别:
1.线程安全性:Hashtable是线程安全的,而HashMap不是。Hashtable中的方法是同步的,多个线程可以安全的同时访问和修改Hashtable 的内容
2.null键和null值:
HashMap允许使用null作为键和值,而Hashtable不允许。在HashMap中,可以将null作为键和值都可以
3.继承关系:
都是基于哈希表实现的,Hashtable是基于哈希表和同步机制的组合实现的
4.效能:HashMap 通常比 Hashtable具有更好的性能。由于Hashtbale 中的方法是同步的,这会在多线程环境下引入一定的性能开销。而HashMap不具备同步机制,可以在单线程环境或自行进行线程同步时提供更高的性能
5.初始容量和负载因子:HashMap允许设置初始容量和负载因子。初始容量是指哈希表初始的大小,负载因子表示哈希表在容量自动扩充之前可以达到多满的程度。而Hashtable有一个默认的初始容量,且在内部逻辑中使用了默认的负载因子
6.迭代顺序:HashMap的迭代顺序不保证是特定,他可能会随着时间和容量的变化而变化。而Hashtable的迭代顺序是按照插入顺序保持不变的
在这里帮大家总结一下hashMap和hashtable方面的知识点吧:
-
关于HashMap的一些说法: a) HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap的底层结构是一个数组,数组中的每一项是一条链表。
-
b) HashMap的实例有俩个参数影响其性能: “初始容量” 和 装填因子。 c) HashMap实现不同步,线程不安全。 HashTable线程安全
-
d) HashMap中的key-value都是存储在Entry中的。
-
e) HashMap可以存null键和null值,不保证元素的顺序恒久不变,它的底层使用的是数组和链表,通过hashCode()方法和equals方法保证键的唯一性
-
f) 解决冲突主要有三种方法:定址法,拉链法,再散列法。HashMap是采用拉链法解决哈希冲突的。
-
注: 链表法是将相同hash值的对象组成一个链表放在hash值对应的槽位;
-
用开放定址法解决冲突的做法是:当冲突发生时,使用某种探查(亦称探测)技术在散列表中形成一个探查(测)序列。 沿此序列逐个单元地查找,直到找到给定 的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,在探查到开放的地址,则可将待插入的新结点存人该地址单元)。
-
拉链法解决冲突的做法是: 将所有关键字为同义词的结点链接在同一个单链表中 。若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数 组T[0..m-1]。凡是散列地址为i的结点,均插入到以T[i]为头指针的单链表中。T中各分量的初值均应为空指针。在拉链法中,装填因子α可以大于1,但一般均取α≤1。拉链法适合未规定元素的大小。
-
Hashtable和HashMap的区别: a) 继承不同。
public class Hashtable extends Dictionary implements Map public class HashMap extends AbstractMap implements Map
-
b) Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了。
-
c) Hashtable 中, key 和 value 都不允许出现 null 值。 在 HashMap 中, null 可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为 null 。当 get() 方法返回 null 值时,即可以表示 HashMap 中没有该键,也可以表示该键所对应的值为 null 。因此,在 HashMap 中不能由 get() 方法来判断 HashMap 中是否存在某个键, 而应该用 containsKey() 方法来判断。
-
d) 两个遍历方式的内部实现上不同。Hashtable、HashMap都使用了Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式 。 e) 哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。
-
f) Hashtable和HashMap它们两个内部实现方式的数组的初始大小和扩容的方式。HashTable中hash数组默认大小是11,增加的方式是old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。 注: HashSet子类依靠hashCode()和equal()方法来区分重复元素。 HashSet内部使用Map保存数据,即将HashSet的数据作为Map的key值保存,这也是HashSet中元素不能重复的原因。而Map中保存key值的,会去判断当前Map中是否含有该Key对象,内部是先通过key的hashCode,确定有相同的hashCode之后,再通过equals方法判断是否相同
11.
[a,b):包括a,但不包括b
12.

13.
byte类型的值在进行运算的时候,会强行转化为int
A and B 都是左边是byte,右边是int,转换不了
而C,D语句中用的是 a+=b 的语句,此语句会将被赋值的变量自动强制转化为相对应的类型
14.
float占4个字节为什么比long占8个字节大呢,因为底层的实现方式不同。
浮点数的32位并不是简单直接表示大小,而是按照一定标准分配的。
第1位,符号位,即S
接下来8位,指数域,即E。
剩下23位,小数域,即M,取值范围为[1 ,2 ) 或[0 , 1)
然后按照公式: V=(-1)^s * M * 2^E
也就是说浮点数在内存中的32位不是简单地转换为十进制,而是通过公式来计算而来,通过这个公式虽然,只有4个字节,但浮点数最大值要比长整型的范围要大。
不行
15.
replaceAll()函数的第一个参数是一个正则表达式,而“."在正则表达式中代表的了全部字符
R:
1.接口与抽象类是不同的概念,抽象类是捕捉子类的通用特性,接口是抽象方法的集合
2.实现接口必须实现接口的所有方法
3.接口可以继承一个或多个接口,抽象类只能继承一个类或多个接口
4.一个类只能继承一个类,但是可以实现多个接口
一个接口可以实现多个接口的原因是多重继承的替代方案,多态化实现,接口的解耦和复用,使用不同的业务需求。如果没有实现所有接口的方法,那么该类必须声明为抽象类
相关文章:
牛客java训练题 day1
9.24 day1 Q 1. this 指针是用来干什么的? 2.基类和派生类分别是指什么? 3.为什么方法中不能写静态变量 4. 解释一下ASCII码和ANSI码和两者的区别 5.简述j ava.io java.sql java.awt java.rmi 分别是什么类型的包 6. 看下面一段代码:…...
接口测试练习步骤
在接触接口测试过程中补了很多课, 终于有点领悟接口测试的根本; 偶是个实用派~,那么现实中没有用的东西,基本上我都不会有很大的概念; 下面给的是接口测试的统一大步骤,其实就是让我们对接口…...
Qt/C++音视频开发56-udp推流和拉流/组播和单播推流
一、前言 之前已经实现了rtsp/rtmp推流,rtsp/rtmp/hls/flv/ws-flv/webrtc等拉流,这种一般都需要依赖一个独立的流媒体服务程序,有没有一种更便捷的方式不需要这种依赖,然后又能实现推拉流呢,当然有的那就是udpp推流&a…...
人工智能轨道交通行业周刊-第61期(2023.9.18-9.24)
本期关键词:焊线机器人、智能综合运维管理系统、信号平面图、铁路部门架构、书生浦语大模型 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通…...
for...in 和 for...of 的区别
for...in 和 for...of 都是 JavaScript 中的循环语句,但它们的作用和使用方式略有不同。 1、for..in 循环 for..in 循环用于遍历对象的可枚举属性,它会将对象的每个属性名称(或键名)作为迭代变量来遍历。 以下是 for...in 的基本语法 for (variable …...
高并发系统 - 接口幂等技术方案,高可用系统架构与技术选型
幂等概念来自于数学,在计算机科学中,幂等表示一次后、或多次请求某一资源,应该有同样的影响效果。 在业务表现上一般是同样的数据效果,下面就常用的业务场景,来聊聊幂等的技术方案。 ----------------- 数据层 ----------------- 索引与事务 根据业务需要,给表添加唯一索…...
简单的手机电脑无线传输方案@固定android生成ftp的IP地址(android@windows)
文章目录 abstractwindows浏览android文件环境准备客户端软件无线网络链接步骤其他方法 手机浏览电脑文件公网局域网everythingpython http.server 高级:固定android设备IP准备检查模块是否生效 windows 访问ftp服务器快捷方式命令行方式双击启动方式普通快捷方式映射新的网络位…...
Unity3D 检测鼠标位置的Sprite像素颜色
思路 获取鼠标所在屏幕坐标(Vector2)通过相机ScreenToWorldPoint(Vector3)转为世界坐标 (注意Vector3的z是距离相机的距离,相机需要正交)通过SpriteRenderer访问边界Bounds通过Bounds.Contain检测世界坐标是否在SpriteBounds内通过比例计算来确定在Sprite内的UV坐标…...
layui input 监听事件
//监听表单单选框复选框选择 form.on(radio, function (data) { console.log(data.value); //得到被选中的值 }); //监听表单下拉菜单选择 form.on(select, function (data) { console.log(data.value); //得到被选中的值 }); //监听表单复选框选择 …...
一致性思维链(SELF-CONSISTENCY IMPROVES CHAIN OF THOUGHT REASONING IN LANGUAGE MODELS)
概要 思维链已经在很多任务上取得了非常显著的效果,这篇论文中提出了一种 self-consistency 的算法,来代替 贪婪解码 算法。本方法通过 采样多个思维链集合,然后LLM模型生成后,选择一个最一致的答案作为最后的结果。一致性思维链…...
腾讯云16核服务器配置大全_16核CPU型号性能测评
腾讯云16核CPU服务器有哪些配置可以选择?可以选择标准型S6、标准型SA3、计算型C6或标准型S5等,目前标准型S5云服务器有优惠活动,性价比高,计算型C6云服务器16核性能更高,轻量16核32G28M带宽优惠价3468元15个月…...
HTML中Input elements should have autocomplete attributes的解决方案
kwfwservice.php:1 [DOM] Input elements should have autocomplete attributes (suggested: “current-password”): (More info: https://goo.gl/9p2vKq) <input name"password" id"password" lay-verify"required" placeholder"密码&…...
2808. 使循环数组所有元素相等的最少秒数;1015. 可被 K 整除的最小整数;1001. 网格照明
2808. 使循环数组所有元素相等的最少秒数 核心思想:枚举每个元素作为相等元素最多需要多少秒,然后维护它的最小值。最多需要多少秒是怎么计算的,我们可以把相等值的下标拿出来,然后你会发现两个相邻下标(相邻下标只的…...
Python爬虫在Web应用自动化测试中的应用
在Web应用开发过程中,自动化测试是确保应用质量和稳定性的重要环节。本文将介绍如何使用Python爬虫与自动化测试技术相结合,实现对Web应用进行自动化测试的方法和步骤。通过这种结合,我们可以提高测试效率、减少人力成本,并确保应…...
苹果手机短信删除了怎么恢复?3种有效方法介绍
手机短信是一种即时通信方式,人们可以使用短信来达到快速传递信息的目的。在没有网络或者网络不稳定的时候,短信仍然可以做到发送和接收,这弥补了其他网络通信软件的缺点。 所以说,手机短信仍然是我们生活中不可缺少的一部分。当…...
前端JavaScript中的 == 和 ===区别,以及他们的应用场景,快来看看吧,积累一点知识。
🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 一、等于操作符 二、全等操作符 三、区别 小结 一、等于操作符 等于操作符用两个等于号( &am…...
文献阅读:LIMA: Less Is More for Alignment
文献阅读:LIMA: Less Is More for Alignment 1. 内容简介2. 实验设计 1. 整体实验设计2. 数据准备3. 模型准备4. metrics设计 3. 实验结果 1. 基础实验2. 消解实验3. 多轮对话 4. 结论 & 思考 文献链接:https://arxiv.org/abs/2305.11206 1. 内容简…...
机器学习第十四课--神经网络
总结起来,对于深度学习的发展跟以下几点是离不开的: 大量的数据(大数据)计算资源(如GPU)训练方法(如预训练) 很多时候,我们也可以认为真正让深度学习爆发起来的是数据和算力,这并不是没道理的。 由于神经网络是深度学习的基础,学…...
React(react18)中组件通信04——redux入门
React(react18)中组件通信04——redux入门 1. 前言1.1 React中组件通信的其他方式1.2 介绍redux1.2.1 参考官网1.2.2 redux原理图1.2.3 redux基础介绍1.2.3.1 action1.2.3.2 store1.2.3.3 reducer 1.3 安装redux 2. redux入门例子3. redux入门例子——优…...
最新AI创作系统+ChatGPT网站源码+支持GPT4.0+支持ai绘画+支持国内全AI模型
一、AI创作系统 SparkAi系统是基于很火的GPT提问进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT系统?小编这里写一个详细图文教程吧&#x…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
