java编写银行存取款,Java系列学习进阶视频

前言

前两天,我收到了蚂蚁金服的offer,从朋友的内推开始面试到拿到最后offer经历了4面技术、一面交叉面和一面HR面。经过了漫长的等待和几次几乎折磨的面试之后,终于拿到了offer。

京东Java研发岗一面(基础面,约1小时)

  • 自我介绍,主要讲讲做了什么和擅长什么

  • springmvc和spring-boot区别

  • @Autowired的实现原理

  • Bean的默认作用范围是什么?其他的作用范围?

  • 索引是什么概念有什么作用?MySQL里主要有哪些索引结构?哈希索引和B+树索引比较?

  • Java线程池的原理?线程池有哪些?线程池工厂有哪些线程池类型,及其线程池参数是什么?

  • hashmap原理,处理哈希冲突用的哪种方法?

  • 还知道什么处理哈希冲突的方法?

  • Java GC机制?GC Roots有哪些?

  • Java怎么进行垃圾回收的?什么对象会进老年代?垃圾回收算法有哪些?为什么新生代使用复制算法?

  • HashMap的时间复杂度?HashMap中Hash冲突是怎么解决的?链表的上一级结构是什么?Java8中的

  • HashMap有什么变化?红黑树需要比较大小才能进行插入,是依据什么进行比较的?其他Hash冲突解决方式?

  • hash和B+树的区别?分别应用于什么场景?哪个比较好?

  • 项目里有个数据安全的,aes和md5的区别?详细点

京东Java研发岗二面(问数据库较多)

  • 自我介绍

  • 为什么MyISAM查询性能好?

  • 事务特性(acid)

  • 隔离级别

  • SQL慢查询的常见优化步骤?

  • 说下乐观锁,悲观锁(select for update),并写出sql实现

  • TCP协议的三次握手和四次挥手过程?

  • 用到过哪些rpc框架

  • 数据库连接池怎么实现

  • Java web过滤器的生命周期

京东Java研发岗三面(综合面,约一个小时)

  • 自我介绍。

  • ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用 ConcurrentHashMap?

  • 加锁有什么机制?

  • ThreadLocal?应用场景?

  • 数据库水平切分,垂直切分的设计思路和切分顺序

  • Redis如何解决key冲突

  • soa和微服务的区别?

  • 单机系统演变为分布式系统,会涉及到哪些技术的调整?请从前面负载到后端详细描述。

  • 设计一个秒杀系统?

京东Java研发岗四面(HR面)

  • 你自己最大优势和劣势是什么

  • 平时遇见过什么样的挑战,怎么去克服的

  • 工作中遇见了技术解决不了的问题,你的应对思路?

  • 你的兴趣爱好?

  • 未来的职业规划是什么?

最后

光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性,因此仅以截图展示,需要的小伙伴可以点击这里即可免费获取!

Java面试宝典2021版

最常见Java面试题解析(2021最新版)

2021企业Java面试题精选

)]

[外链图片转存中…(img-w0F71Nrv-1622038971091)]

2021企业Java面试题精选

[外链图片转存中…(img-ZAIjq05C-1622038971092)]

好的,我可以为您提供一些指导。 首先,您需要创建一个Java项目,并在Eclipse中打开它。在项目中,您需要创建以下类: 1. Account类:表示银行账户,包含账户号码、账户余额和密码等属性,以及存款、取款和修改密码等方法。 2. Bank类:表示银行,包含一个账户列表,并提供添加新账户、删除账户和查找账户等方法。 3. Main类:包含main方法,作为程序的入口点,用户可以在命令行中输入命令执行不同的操作,例如存款、取款、修改密码等。 下面是一些示例代码来帮助您开始编写程序: Account类: ```java public class Account { private String accountNumber; private double balance; private String password; public Account(String accountNumber, double balance, String password) { this.accountNumber = accountNumber; this.balance = balance; this.password = password; } public String getAccountNumber() { return accountNumber; } public double getBalance() { return balance; } public boolean withdraw(double amount) { if (amount > balance) { System.out.println("余额不足!"); return false; } balance -= amount; System.out.println("取款成功!"); return true; } public void deposit(double amount) { balance += amount; System.out.println("存款成功!"); } public boolean validatePassword(String password) { return this.password.equals(password); } public void setPassword(String password) { this.password = password; System.out.println("密码修改成功!"); } } ``` Bank类: ```java import java.util.ArrayList; import java.util.List; public class Bank { private List<Account> accounts; public Bank() { accounts = new ArrayList<Account>(); } public void addAccount(Account account) { accounts.add(account); System.out.println("账户添加成功!"); } public void removeAccount(String accountNumber) { for (Account account : accounts) { if (account.getAccountNumber().equals(accountNumber)) { accounts.remove(account); System.out.println("账户删除成功!"); return; } } System.out.println("账户不存在!"); } public Account findAccount(String accountNumber) { for (Account account : accounts) { if (account.getAccountNumber().equals(accountNumber)) { return account; } } return null; } } ``` Main类: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Bank bank = new Bank(); while (true) { System.out.println("请输入命令: (add, remove, find, deposit, withdraw, password)"); String command = scanner.nextLine(); String accountNumber; double amount; String password; switch (command) { case "add": System.out.println("请输入账户号码:"); accountNumber = scanner.nextLine(); System.out.println("请输入账户余额:"); amount = scanner.nextDouble(); scanner.nextLine(); // 读取换行符 System.out.println("请输入账户密码:"); password = scanner.nextLine(); Account account = new Account(accountNumber, amount, password); bank.addAccount(account); break; case "remove": System.out.println("请输入账户号码:"); accountNumber = scanner.nextLine(); bank.removeAccount(accountNumber); break; case "find": System.out.println("请输入账户号码:"); accountNumber = scanner.nextLine(); Account foundAccount = bank.findAccount(accountNumber); if (foundAccount != null) { System.out.println("账户号码: " + foundAccount.getAccountNumber()); System.out.println("账户余额: " + foundAccount.getBalance()); } else { System.out.println("账户不存在!"); } break; case "deposit": System.out.println("请输入账户号码:"); accountNumber = scanner.nextLine(); System.out.println("请输入存款金额:"); amount = scanner.nextDouble(); scanner.nextLine(); // 读取换行符 Account depositAccount = bank.findAccount(accountNumber); if (depositAccount != null) { depositAccount.deposit(amount); } else { System.out.println("账户不存在!"); } break; case "withdraw": System.out.println("请输入账户号码:"); accountNumber = scanner.nextLine(); System.out.println("请输入取款金额:"); amount = scanner.nextDouble(); scanner.nextLine(); // 读取换行符 Account withdrawAccount = bank.findAccount(accountNumber); if (withdrawAccount != null) { withdrawAccount.withdraw(amount); } else { System.out.println("账户不存在!"); } break; case "password": System.out.println("请输入账户号码:"); accountNumber = scanner.nextLine(); System.out.println("请输入原密码:"); password = scanner.nextLine(); System.out.println("请输入新密码:"); String newPassword = scanner.nextLine(); Account passwordAccount = bank.findAccount(accountNumber); if (passwordAccount != null && passwordAccount.validatePassword(password)) { passwordAccount.setPassword(newPassword); } else { System.out.println("账户不存在或密码错误!"); } break; default: System.out.println("无效的命令!"); break; } } } } ``` 以上代码只是一个简单的示例,您可以根据实际需求进行修改和扩展。希望能帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值