赞
踩
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下
import entity.Customer;
class CustNode{
public Customer data;
}
CustNode类里面维护一个顾客的属性,为了方便起见,就直接用public了,反正我们自己用用的,无所谓。
============================================================================
可是这样也没用啊,这个类最多就是维护一个顾客的信息,没办法保存多个顾客啊。这可愁死我啦,想了老半天也没想出办法来。于是,我就去请教老板,老板正在炒菜,没空搭理我,但是也没赶我走。
“这样吧,马上会有很多顾客来取餐,想不出来就先放放,你在这帮我看着。”老板说。
“让我看排队啊,这有啥意思哦?”我虽然满腹牢骚,但还是照做了,一边拿出手机刷刷微博,一 边看着顾客在排队取餐。
没想到,看着看着,我突然有了灵感。
=====================================================================================
顾客A,B,C三个人在排队,顾客A知道他前面的是顾客B,顾客B知道他前面的是顾客C。那么从程序的角度来看,A里面肯定有一个属性是B的引用,B里面肯定有一个属性是C的引用。
那么,我只要在CustNode里面维护下一个数据的引用,不就可以实现在一个类里面保存多个顾客了吗?
=================================================================================
class CustNode{
public Customer data;
public CustNode next;
}
next就代表下一个数据。
==============================================================================
为了方便起见,我写一个有参数的构造方法,这样的好处就是new的时候直接就可以给data赋值了。
class CustNode{
public Customer data;
public CustNode next;
public CustNode(Customer data){
this.data = data;
}
}
========================================================================================
我盯着CustNode类看了半天,发现一个事情,就是如果我用这个类,最多只能装两个顾客,一个data,一个next。如果再装,就有点难度了。所以,我需要再写一个类,来维护CustNode,然后再提供一个一个add方法和display方法,分别用来添加和展示顾客的数据。
我憋了半天终于把代码写出来了。
===========================================================================================
package tool;
import entity.Customer;
import tool.CustNode;
public class TuziLinkedList{
public CustNode firstNode; //第一个节点
public CustNode currentNode;//当前的节点
//新增的方法
public void add(Customer cst){
//将数据用节点类包装好,这样才能实现下一个数据的指向
CustNode data = new CustNode(cst);
//先判断是否是第一个节点
if(this.firstNode == null){
this.firstNode = data;
this.currentNode = data;
}else{
//不是第一个节点,就指向当前节点的下一个节点,即currentNode.next
this.currentNode.next = data;
//因为已经指向下一个了,所以当前节点也要移动过来
this.currentNode = data;
}
}
//展示所有节点
public void display(){
//第一步,肯定是展示第一个节点(this其实可以省略的)
if(firstNode != null){
System.out.println(firstNode.data.getName());
//然后循环,一直寻找next是否为空
CustNode node = firstNode.next;
while(node != null ){
String name = node.data.getName();
System.out.println(name);
//循环的最后,再指向下一个节点,继续下一轮
node = node.next;
}
}
}
}
============================================================================
=================================================================================
后来查了资料才知道,哦,原来这个属于一种数据结构,叫做链表结构。
======================================================================================
我修改了一些类的访问权限和代码,顾客类针对name增加了get方法和set方法。
package entity;
public class Customer {
String name; // 客户姓名
String sex; //性别
String birthDate; //生日
String phoneNumber; //电话号码
int status; //客户状态(1:正常,2:不正常)
面试难免让人焦虑不安。经历过的人都懂的。但是如果你提前预测面试官要问你的问题并想出得体的回答方式,就会容易很多。
此外,都说“面试造火箭,工作拧螺丝”,那对于准备面试的朋友,你只需懂一个字:刷!
给我刷刷刷刷,使劲儿刷刷刷刷刷!今天既是来谈面试的,那就必须得来整点面试真题,这不花了我整28天,做了份“Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法等”
且除了单纯的刷题,也得需准备一本【JAVA进阶核心知识手册】:JVM、JAVA集合、JAVA多线程并发、JAVA基础、Spring 原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。
ndra、设计模式、负载均衡、数据库、一致性算法、JAVA算法、数据结构、加密算法、分布式缓存、Hadoop、Spark、Storm、YARN、机器学习、云计算,用来查漏补缺最好不过。
[外链图片转存中…(img-JB3J5Hjx-1714919373597)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。