最全用大白话聊聊JavaSE -- 如何理解Java Bean,得物java面试题

惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

image.png

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

package com.springmvc.bean;

public class Person {

private String name; // 姓名

private Integer age; // 年龄

private String gender;// 性别

private String hobby;// 爱好

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

public String getHobby() {

return hobby;

}

public void setHobby(String hobby) {

this.hobby = hobby;

}

}

毋庸置疑,这就是一个java bean。

在很多教材上,我们都被告知,现实中有人,分为男人和女人,这是一个类。然后,我们用java的面向对象将人抽象成一个Java类 —— Person类。

这固然不错,然而,也就只是如此而已了。没有什么其他的东西,弄了半天,我们初学者学java,都在那写人类,车子类,房子类,等等。学继承的时候,总是写这样的代码,老师也举类似这样的例子。

package com.springmvc.bean;

/**

  • 水果类

*/

public class Fruit {

private String name; //水果的名称

private Float price;//价格

public Fruit(String name, Float price) {

super();

this.name = name;

this.price = price;

}

// getters 和 setters 省略

}

package com.springmvc.bean;

/**

  • 苹果类

*/

public class Apple extends Fruit {

private String color;//颜色

public Apple(String name, Float price,String color) {

super(name, price);

this.color = color;

}

// getters 和 setters 省略

}

没错,这些都是Java Bean,对于初学者,这些例子的确比较好理解。但是,这样就有个弊端,它很容易让人产生一种迷茫,就是说,这些例子我固然听得懂,但是,我不知道学这些有什么用?我看过很多培训机构的视频,里面多半都是这么讲的,这导致我整个JavaSE都学完了,还是不知道自己能干嘛?

去企业面试,人家一口一个专业词汇,弄得我好不尴尬。

想想也知道,去企业里不可能让我写这种代码的。归根到底,还是这些例子不实用。再举个例子,学校学数据库的时候,肯定会举一个被举了N多次的例子,就是有一张学生表,学生有姓名,性别,课程,分数。然后来一个

select * from t_student;

恩,我的确听懂了,可是,然后呢。。。?

然后?我们只负责领你入门,你学费也交了,你赶紧去企业里面学吧!

好吧,说多了都是泪。我就见过好多简历被包装过的培训生,结果一进来,连JSON都不知道是啥,ajax也不清楚怎么用。让写个多表查询或者连表查询吧,琢磨个半天还是写不出来。

我个人主张实用主义,所以,本节就 JavaBean 的基本概念来稍微延伸一下,看看我学这些东西,什么String,Integer啊,数据库啊,到底可以用在哪里?

###2. 需求分析

举个例子咯,就拿简书来说好了,比如一个文章列表:

每一条数据,说实话,就是一个对象,对象有各种属性,从图片中,我们起码就可以获得这些信息:

一篇文章具备的属性:

1.发布时间

2.文章标题

3.点击量

4.评论数

5.点赞数

6.显示图片

当然,还需要有文章内容(因为是举例子,我就先不写了),这些属性,不就是Java类里面修饰符为private的私有属性吗?对应数据库表里面,这些就是所谓的字段。

你可能会说,对啊,可是我为什么要专门去写一个JavaBean来承载这些数据呢?我用一个HashMap不是也一样吗?

是的,从某种程度上,的确可以,可是,用JavaBean的话更加清晰明了。

你可能写了很久的代码,都不清楚到底为什么要定义JavaBean,尤其是做JavaWeb开发的时候,Java的作用其实就是两句话:

1.1 控制数据的流向,将前台传过来的数据包起来,然后一个一个地插入数据库永久保存。

1.2 从数据库中用jdbc取出数据,然后包起来,最终传递到前台页面进行公开展览

JavaBean就是一个中转载体。

不就是这么回事吗?作为码农的我们,每天不就是在做这些事情吗?这就是所谓的增删改查。

最多就是,我们很根据业务需求,通过写Java代码,来进行一些逻辑的控制,说穿了就是:

数据不是你想增,想增就能增。

数据不是你想删,想删就能删。

数据不是你想改,想改就能改。

数据不是你想查,想查就能查。

查个权限 , 做个判断 , 放手你的爱。

不就是这么回事吗?

什么JavaBean,dao,事务管理,切面,这些我认为反而是次要的,都是一些专业术语的堆积,作为一名码农,我认为首先得知道,自己每天到底在干嘛,然后根据需要再去学对应的知识或者理论来给自己充电。

不要连本职工作都还没做好,就一会跟风去学大数据,一会又去学bootstrap,node.js,我不是说多学点技术不好。而是,我认为还是要分一个轻重缓急,比如你现在待的公司,根本用不到大数据,你花了那么多精力去学了又怎样呢?

再说个实际的,如果你的网站访问量每个月1千都达不到,你高并发,分布式学得再好,又能怎么样呢?

再说了,如果一个网站真的做大了,到最后其实都是拼的服务器,而不是技术。

当你确实需要用到大数据了,再去学,也行啊。到那个时候,公司肯定会想办法的,实在不行,向外招人也是非常必要的。

可是,还没有达到那个层次之前,说句大白话,你的工资只跟你对当前岗位的适应程度挂钩。你不可能说,我已经学了大数据了,就跑到老板的办公室要求涨工资吧。也不现实啊,你觉得呢?

好了,回到正题,刚才我们从图片中获取了这么多字段:

1.发布时间

2.文章标题

3.点击量

4.评论数

5.点赞数

6.显示图片

写在最后

学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

最后再分享的一些BATJ等大厂20、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

Mybatis面试专题

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

MySQL面试专题

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

并发编程面试专题

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

…(img-DPscje3p-1715609639966)]

Mybatis面试专题

[外链图片转存中…(img-p44DhZ7y-1715609639966)]

MySQL面试专题

[外链图片转存中…(img-b4UWWTvA-1715609639967)]

并发编程面试专题

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值