灰色关键词网站建设/互联网营销培训课程

灰色关键词网站建设,互联网营销培训课程,网站公司建设 中山,杭州知名的互联网公司一.面向对象的三大特性 1.封装:将对象内部的属性私有化,外部对象不能够直接访问,但是可以提供一些可以使外部对象操作内部属性的方法。 2.继承:类与类之间会有一些相似之处,但也会有一些异处,使得他们与众…

一.面向对象的三大特性

1.封装:将对象内部的属性私有化,外部对象不能够直接访问,但是可以提供一些可以使外部对象操作内部属性的方法。

2.继承:类与类之间会有一些相似之处,但也会有一些异处,使得他们与众不同,继承就是在父类的基础上,创建一个与父类有相同之处,但是也可以声明自己独有的方法与属性的对象,这样做可以增加代码的复用,使得维护或扩展更加的方便,灵活。

3.多态:一个对象有多种状态,这涉及到了向上或向下转型。
多态的特点:

  • 对象类型和引用类型之间存在继承关系
  • 引用类型变量的方法属于哪个类,要想知道这个问题,要看运行期间
  • 多态不能执行子类拥有但父类没有的方法
  • 如果子类重写了父类的方法,那么直接执行的是子类重新后的方法,若没重写,则执行的是父类方法

二.如何创建线程

1.继承Thread类并重写run()方法

  • 定义Thread类的子类,并重写run()方法,run()方法中的代码就是线程所要执行的任务,所以run()方法被称为执行体(线程体)
  • 创建Thread类的子类的实例对象,就是创建了线程的对象
  • 调用线程对象的start()方法来启动该线程
  • Java不支持多继承
package thread;public class ThreadTest extends Thread{String name;ThreadTest(String name){this.name=name;}@Overridepublic void run() {System.out.println("this is a thread");}
}
class StartTest{public static void main(String[] args) {ThreadTest test=new ThreadTest("thread");test.start();}
}

2.实现Runnable接口配合Thread

  • 定义Runnable接口的实现类,并重写run()方法,run()方法中的代码就是线程所要执行的任务,所以run()方法被称为执行体(线程体)
  • 创建Runnable接口的实现类的对象,使此对象作为Thread的target来创建Thread对象,这个对象才是真正的线程对象
  • 调用线程对象的start()方法来启动线程
  • Runnable接口支持多继承
package thread;public class RunnableTest implements Runnable{String name;RunnableTest(String name){this.name=name;}@Overridepublic void run() {System.out.println("this is a thread");}
}
class RunnableStartTest{public static void main(String[] args) {RunnableTest test=new RunnableTest("thread");Thread thread=new Thread(test);thread.start();}
}

3.通过Callable和FutureTask创建线程

  • 创建Callable接口的实现类,并重写call()方法,call方法是线程的执行体
  • 创建Callable接口的实现类的实例,然后创建包装了Callable接口的实现类实例的FutureTask类的实例对象,FutureTask对象封装了实现类中的call()方法的返回值(FutureTask是一个包装器,它通过包装Callable接口的实现类来实现,它同时实现了Future和Runnable两个接口)
  • 使用FutureTask对象作为Thread的target来创建实例,此实例对象为线程的对象
  • 调用线程对象的start()方法来启动线程
  • 调用FutureTask对象的get()方法来获取子线程结束的返回值
package thread;import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;public class CallableAndFutureTaskTest implements Callable {String name;CallableAndFutureTaskTest(String name){this.name=name;}@Overridepublic Object call() throws Exception {System.out.println("this is a thread");return null;}
}
class CallableAndFutureTaskStartTest{public static void main(String[] args) throws Exception{CallableAndFutureTaskTest test=new CallableAndFutureTaskTest("thread");FutureTask futureTask=new FutureTask(test);Thread thread=new Thread(futureTask);thread.start();String result=(String) futureTask.get();System.out.println(result);}
}

三.事务的四大特性(ACID)

1.原子性:事务是最小的执行单位,确保了动作要么完全完成,要么就是完全不起作用
2.一致性:处理的数据是一致的,例如转账者和收款者的总金额是不变的
3.隔离性:发生并发访问数据库时,一个事物不会被另一个事物所影响
4.持久性:一个事务提交之后,他对数据库中数据的影响是持久的,即使出现了数据库障碍也不会影响。

四.Get()方法与Post()方法的区别

Get()方法和Post()方法是Http协议中两种常用的请求方法,但是在不同的场景和目的下的使用是不同的。

1.在语义上:Get()方法用于获取和查询资源,而Post()方法更加偏向于修改或创建。这就意味着Get请求拥有等幂性。而Post()方法可能会有副作用,即每次执行都可能产生不同的结果,影响资源的状态。

2.在结构上:Get()方法的请求的参数传递会显示到url上,形成查询字符串(querystring),而Post()方法的参数在执行体(body)中,Get请求的查询字符串长度会受到url的限制,而Post请求则不会有明确的限制。

3.在缓存上:由于Get请求是等幂的,所以对于Get请求来说,在浏览器中会有缓存来保存数据,这样可以提高Get()方法的获取或查询的效率;而Post请求可能会有副作用,所以并没有缓存机制。

4.在安全性上:本质上Get请求和Post请求都不是绝对安全的,因为Http协议都是明文传输,无论是url,header或者是body都有可能被窃取,所以应该使用Http协议加密传输数据。但是在一些应用场景下,Get方法要比Post方法更加不安全,因为Get方法的参数传递会在url上显示出来,在一些代理日志上或者浏览器的历史上可以被找到,所以在传输一些私密数据的时候应该使用Post方法进行传递。

五,数据库(MySQL)的左,右连接以及内连接

1.Left join...on:左连接,以左表为基础,查询左表的所有数据以及满足on关键字后面的条件的右表数据,左连接又称左外连接,是外连接的一种。
2.Right join...on:右连接,以右表为基础,查询右表的所有数据以及满足on关键字后面的条件的左表数据,右连接又称为右外连接,是外连接的一种。
3.Inner join...on:内连接,以左右两表为参考对象,查询左右两表同时满足on关键字后面的条件的数据。

MySQL中没有全外连接,所以就不解释了。

首先创建了两个表table_left和table_right.

---------------------------------------------------------------------------------------------------------------------------------

左连接:

SELECT * FROM table_left LEFT JOIN table_right ON table_left.id=table_right.id

结果:

右连接:

SELECT * FROM table_left RIGHT JOIN table_right ON table_left.id=table_right.id

结果:

内连接:

SELECT * FROM table_left INNER JOIN table_right ON table_left.id=table_right.id

结果:

---------------------------------------------------------------------------------------------------------------------------------总结一下,这就相当于一个集合A和B

A left B join:A
A right B join:B
A inner B join:A∩B

左连接:

右连接:

内连接:

全连接:

六.数据库分表查询中使用到的in关键字可以使用什么代替

一般在做SQL优化的时候讲究使用EXISTS带替代IN的做法,理由是EXISTS执行效率要比IN高。

2d1876ca1c7bc478809ec24afc81dfe7.png

个人理解:

IN表示范围,指某一字段在某一范围之内,这个范围一般使用子查询来获取,由此可知IN子查询返回的结果应该就是这个范围集。

EXISTS表示存在,指至少存在一处,这个条件由EXISTS子查询来完成,但是在这里EXISTS子查询返回的结果却不再是一个结果集,而是一个布尔值(true或false),其实这个挺好理解的,EXISTS就表示如果子查询能查到值则返回true,则执行EXISTS之前的语句。

具体MySQl的详细介绍请看:MySQL数据库的详细介绍

---------------------------------------------------------------------------------------------------------------------------------以上问题都是面试官真实问的面试题,回答的一坨,在事后查询资料加个人理解写的blog,有错误之处还请多包容。

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

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

相关文章

SpringBoot的启动原理?

大家好,我是锋哥。今天分享关于【SpringBoot的启动原理?】面试题。希望对大家有帮助; SpringBoot的启动原理? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot的启动原理主要是通过 SpringApplication 类来…

Springboot的jak安装与配置教程

目录 Windows系统 macOS系统 Linux系统 Windows系统 下载JDK: 访问Oracle官网或其他JDK提供商网站,下载适合Windows系统的JDK版本。网站地址:Oracle 甲骨文中国 | 云应用和云平台点击进入下滑,点击进入下载根据自己的系统选择&…

基于javaweb的SpringBoot时装购物系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

B站pwn教程笔记-5

复习和回顾 首先复习一下ELF文件在内存和磁盘中的不同。内存只关注读写这权限,会合并一些代码段。 动态链接库只在内存中单独装在一份 因为很多软件都要用动态链接库了,不可能一个个单独复制一份。但是在有的调试环境下会单独显示出来各一份。 ld.so是装…

云原生网络拓扑:服务网格的量子纠缠效应

引言:数据平面的虫洞跃迁 谷歌服务网格每日处理5万亿请求,Istio 1.20版本时延降低至0.8ms。蚂蚁集团Mesh架构节省42%CPU开销,AWS App Mesh实现100ms跨区故障切换。LinkedIn Envoy配置规则达1200万条,腾讯云API网关QPS突破900万。…

爬虫——playwright获取亚马逊数据

目录 playwright简介使用playwright初窥亚马逊安装playwright打开亚马逊页面 搞数据搜索修改bug数据获取翻页优化结构 简单保存 playwright简介 playwright是微软新出的一个测试工具,与selenium类似,不过与selenium比起来还是有其自身的优势的&#xff…

Matrix-Breakout-2-Morpheus靶场通关心得:技巧与经验分享

1.安装靶机,并在虚拟机打开,确保和kali在同一个NAT网段 2.使用kali来确定该靶机的IP nmap -O 192.168.139.1/24 3.访问该IP192.168.139.171 4.访问robots.txt 5.扫描目录 gobuster dir -u http://192.168.139.171 -x php,bak,txt,html -w /usr/share/d…

机器学习扫盲系列(2)- 深入浅出“反向传播”-1

系列文章目录 机器学习扫盲系列(1)- 序 机器学习扫盲系列(2)- 深入浅出“反向传播”-1 文章目录 前言一、神经网络的本质二、线性问题解析解的不可行性梯度下降与随机梯度下降链式法则 三、非线性问题激活函数 前言 反向传播(Ba…

(一)飞行器的姿态欧拉角, 欧拉旋转, 完全数学推导(基于坐标基的变换矩阵).(偏航角,俯仰角,横滚角)

(这篇写的全是基矢变换矩阵)不是坐标变换矩阵,坐标变换矩阵的话转置一下,之后会有推导. 是通过M转置变换到P撇点.

C语言和C++到底有什么关系?

C 读作“C 加加”,是“C Plus Plus”的简称。 顾名思义,C 就是在 C 语言的基础上增加了新特性,玩出了新花样,所以才说“Plus”,就像 Win11 和 Win10、iPhone 15 和 iPhone 15 Pro 的关系。 C 语言是 1972 年由美国贝…

PCB画图软件PROTEL99SE学习-05画出铜箔来

sch设计的是各个器件的电连接。设计的就是各种节点的网络表关系。不管你器件怎么摆放,好看不好看。都不重要。最终设计电路板是把网络表中连线的网络节点都用铜箔实物相连,让他们导电。 网表导出后我们不用去看他,也不用管他的格式。 我们打开…

helm部署metricbeat

背景 在Elastic Stack 7.5版本之前,系统默认采用内置服务进行监控数据采集(称为内部收集机制),这种设计存在显著局限性: 当ES集群崩溃时自带的节点监控也会随之崩溃,直到集群恢复前,崩溃期间的…

【菜鸟飞】AI多模态:vsCode下python访问阿里云通义文生图API

目标 有很多多模态的AI工具,用的少就用在线图形化的,需要批量,就尝试代码生成,本文尝试代码调用多模态AI,阿里通义有免费额度,作为练手应该挺好,如果以后选其他的,技术也是相通的。…

从零实现本地文生图部署(Stable Diffusion)

1. 依赖安装 文件打包下载地址(Stable Diffusion) # git : 用于下载源码 https://git-scm.com/downloads/win # Python 作为基础编译环境 https://www.python.org/downloads/ # Nvidia 驱动,用于编译使用GPU显卡硬件 https://ww…

缓存监控治理在游戏业务的实践和探索

作者:来自 vivo 互联网服务器团队- Wang Zhi 通过对 Redis 和 Caffeine 的缓存监控快速发现和定位问题降低故障的影响面。 一、缓存监控的背景 游戏业务中存在大量的高频请求尤其是对热门游戏而言,而应对高并发场景缓存是一个常见且有效的手段。 游戏业…

WordPress漏洞

一,后台修改模板拿WebShell 1,安装好靶场后访问 2,在如图所示的位置选择一个php文件写入一句话木马,我们这里选择在404.php中写入 3,访问404.php 二,上传主题拿WebShell 1,找到如图所示的页面…

【Linux系列】实时监控磁盘空间:`watch -n 1 ‘df -h‘` 命令详解

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

腾讯云大模型知识引擎×DeepSeek:股票分析低代码应用实践

项目背景与发展历程 在金融科技快速发展的今天,股票分析作为投资决策的核心环节,正面临数据量激增和复杂性提升的挑战。传统股票分析依赖人工处理,效率低下且成本高昂,而人工智能(AI)的引入为这一领域带来…

高性能边缘计算网关-高算力web组态PLC网关

高性能EG8200Pro边缘计算算力网关-超强处理能力 样机申请测试:免费测试超30天(https://www.iotrouter.com/prototype/) 产品主要特点和特色功能 设备概览与连接能力 设备型号:EG8200P。主要特点: 支持多种工业协议&am…

Web开发-JS应用原生代码前端数据加密CryptoJS库jsencrypt库代码混淆

知识点: 1、安全开发-原生JS-数据加密&代码混淆 2、安全开发-原生JS-数据解密安全案例 一、演示案例-WEB开发-原生JS&第三方库-数据加密 前端技术JS实现: 1、非加密数据大致流程: 客户端发送->明文数据传输-服务端接受数据->…