赞
踩
由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档
还有更多面试复习笔记分享如下
Java把内存分成5大区域,我们重点关注栈和堆。
一般来讲局部变量存在栈中,方法执行完毕内存就被释放
对象(new出来的东西)存在堆中,对象不再被使用时,内存才会被释放
每个堆内存的元素都有地址值
对象中的属性都是成员变量,是有默认值的
TIPS: 栈与队列指的是一种数据的结构。
栈:先进后出(FILO – First In Last Out)
队列:先进先出(FIFO – First In First Out)
Phone p = new Phone(); 这句代码,再内存中会发生什么呢?
1.在栈内存中开辟一块空间,存放引用类型Phone类型的变量p
2.在堆内存中开辟一块空间,存放Phone类型的对象
3.要给这个对象进行初始化,比如:String brand = null;
4.当对象准备好以后,会生成一个唯一的地址值,然后将此地址值交给引用类型的变量p来保存
5.如果以后想要操作此对象的各种资源,可以通过p变量保存的地址值找到该对象,比如:p.call(); p.price = 66.6;
package cn.tedu.oop;
/**本类用作面向对象入门案例
设计手机这一类事物:
分析属性:品牌 价格 尺寸 颜色
分析功能:打电话 发短信 看直播*/
/**在一个java文件中可以写多个class`,但是,被public修饰的class只能有一个
public class TestCreateClass {
public static void main(String[] args) {
//help-findAction 或者 Alt+7
//4.创建手机类的对象p1
Phone p1 = new Phone();
//5.通过手机类对象调用手机类的功能
p1.call();
p1.message();
p1.video();
//6.通过手机类对象打印查看属性值
System.out.println(p1.color);//null
System.out.println(p1.price);//0.0
System.out.println(p1.size);//0.0
System.out.println(p1.brand);//null
//7.创建手机类的第2个对象p2
Phone p2 = new Phone();
//8.通过p2对象,调用Phone类的3个方法
p2.call();
p2.message();
p2.video();
//9.给p2对象的4个属性赋值
p2.brand = “HUAWEI”;
p2.color = “中国红”;
p2.price = 6666.66;
p2.size = 5.6;
//10.打印查看p2对象的4个属性值
System.out.println(p2.brand);
System.out.println(p2.price);
System.out.println(p2.color);
System.out.println(p2.size);
//11.查看两个对象的地址值
System.out.println(p1);//cn.tedu.oop.Phone@1b6d3586
System.out.println(p2);//cn.tedu.oop.Phone@4554617c
}
}
//1.通过class关键字创建手机类–用来描述手机这一类事物–属性+功能
class Phone{
//2.定义手机类的属性–用成员变量来描述–位置:类里方法外
String brand;//品牌
double price;//价格
double size;//尺寸
String color;//颜色
//3.定义手机类的功能–用方法来描述–格式:修饰符 返回值类型 方法名(参数列表){方法体}
public void call(){
System.out.println(“正在打电话~”);
}
public void message(){
System.out.println(“正在发短信!”);
}
public void video(){
System.out.println(“正在看直播~”);
}
}
p2.brand = “HUAWEI”;
就是先到栈内存中找到p2中保存的唯一的地址值
然后根据地址值找到对应的Phone对象,并对其对应的属性值进行修改
p2.eat();
也是先到栈内存中找到p2中保存的唯一的地址值
然后根据地址值找到对应Phone对象,执行Phone对象的eat()方法
==========================================================================
封装是隐藏对象的属性和实现细节,仅仅对外提供公共的访问方式,比如类和方法
好处:
提高安全性
提高重用性
是一个权限修饰符 ,可以用来修饰成员变量和成员方法.被私有化的成员只能在本类中访问
创建包: cn.tedu.oop
创建类: TestPrivate1.java
package cn.tedu.oop;
/本类用于测试封装的必要性/
public class TestPrivate1 {
public static void main(String[] args) {
//3.创建用户类的对象
User u = new User();
//4.修改对象的属性值
u.name = “李逵”;
/需要封装属性,如果不封装的话,就可以直接修改属性的值,不安全/
//u.money = 999999999;
//5.查看修改后的属性值
System.out.println(u.name);
//System.out.println(u.money);
//6.4调用两个方法修改和查看属性值
u.setMoney(8888888.88);
System.out.println(u.queryMoney());
}
}
//1.创建一个用户类User
class User{
//2.定义用户类的属性
String name;
//6.1封装属性–通过private关键字封装属性
private double money = 10000;
//6.2提供方法1:查询当前账户的余额
public double queryMoney(){
/后续可以添加权限校验的操作/
return money;
}
//6.3提供方法2:修改当前账户的余额
public void setMoney(double money){
/后续可以添加权限校验的操作/
/*当本类的成员变量与局部变量同名时
可以使用this关键字指定本类的成员变量*/
this.money = money;
}
}
创建包: cn.tedu.oop
创建类: TestPrivate2.java
package cn.tedu.oop;
/本类用于练习OOP的第一大特性:封装/
public class TestPrivate2 {
public static void main(String[] args) {
//4.创建学生类对象s
Student s = new Student();
//5.通过对象修改并查看属性值
s.sno = 1;
//s.name = “黄飞鸿”;
//s.subject = “Java培优”;
System.out.println(s.sno);
//System.out.println(s.name);
//System.out.println(s.subject);
//6.通过对象调用方法
s.study();
s.eat();
s.sleep();
//7.3使用刚刚生成的set()设置值方法与get()获取值方法
s.setName(“十三姨”);
s.setSubject(“美容美发”);
System.out.println(s.getName());
System.out.println(s.getSubject());
}
}
//1.定义类描述学生这一类型Student
class Student {
//2.特征:学号sno 姓名name 科目subject
//7.1 封装属性–用private修饰属性
int sno;
private String name;
private String subject;
//7.2提供被封装属性的get与set方法
//右键->Generate->Getter and Setter->Shift选择属性->OK
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
//3.定义学生的功能:学习 吃饭 睡觉
public void study() {
System.out.println(“正在学习中…”);
}
public void eat() {
System.out.println(“吃饭ing…”);
}
public void sleep() {
System.out.println(“我一点也不想睡觉,就想学Java!”);
}
}
创建包: cn.tedu.oop
创建类: TestPrivate3.java
package cn.tedu.oop;
/本类用于测试方法的封装/
public class TestPrivate3 {
public static void main(String[] args) {
//4.创建对象测试
Apple a = new Apple();
//5.没有封装方法时,调用没有限制
//a.eat();//封装eat(),此处调用报错
a.clean();
}
}
//1.创建苹果类
class Apple{
//2.定义方法1
public void clean(){
System.out.println(“苹果还是要洗洗的~”);
//6.在已有的公共方法clean()中调用被封装eat()方法的功能
eat();
}
//3.定义方法2
private void eat(){
System.out.println(“要吃苹果啦~”);
}
}
TIPS:如何封装?封装后的资源如何访问?
我们可以使用private关键字来封装成员变量与方法
如何访问私有资源?
关于成员变量:
setXxx – 对外提供公共的设置值方式
getXxx – 对外提供公共的获取值方式
关于成员方法:
把私有方法放在公共方法里供外界调用即可
==================================================================================
创建包:cn.tedu.oop
创建类:TestCar
package cn.tedu.oop;
/本类用于面向对象的巩固练习/
public class TestCar {
//创建程序的入口函数main()
public static void main(String[] args) {
//3.创建汽车类对象c
Car c = new Car();
//4.通过汽车类对象c设置属性值
// c.color = “暗夜紫”;
// c.brand = “BMW”;
// c.price = 200;
// c.length = 0.2;
//5.查看刚刚设置好的属性值
// System.out.println(c.brand);
// System.out.println(c.price);
// System.out.println(c.color);
// System.out.println(c.length);
//6.通过c对象调用汽车类的方法
c.start();
//c.stop();
//7.3调用提供的set与get方法,设置并获取对应属性的值
c.setBrand(“特斯拉”);
小编在这里分享些我自己平时的学习资料,由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
开源分享:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】
程序员代码面试指南 IT名企算法与数据结构题目最优解
这是” 本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一-痛点, 本书选取将近200道真实出现过的经典代码面试题,帮助广“大程序员的面试准备做到万无一失。 “刷”完本书后,你就是“题王”!
《TCP-IP协议组(第4版)》
本书是介绍TCP/IP协议族的经典图书的最新版本。本书自第1版出版以来,就广受读者欢迎。
本书最新版进行」护元,以体境计算机网络技不的最新发展,全书古有七大部分共30草和7个附录:第一部分介绍一些基本概念和基础底层技术:第二部分介绍网络层协议:第三部分介绍运输层协议;第四部分介绍应用层协议:第五部分介绍下一代协议,即IPv6协议:第六部分介绍网络安全问题:第七部分给出了7个附录。
Java开发手册(嵩山版)
这个不用多说了,阿里的开发手册,每次更新我都会看,这是8月初最新更新的**(嵩山版)**
MySQL 8从入门到精通
本书主要内容包括MySQL的安装与配置、数据库的创建、数据表的创建、数据类型和运算符、MySQL 函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份与还原、MySQL 日志、性能优化、MySQL Repl ication、MySQL Workbench、 MySQL Utilities、 MySQL Proxy、PHP操作MySQL数据库和PDO数据库抽象类库等。最后通过3个综合案例的数据库设计,进步讲述 MySQL在实际工作中的应用。
Spring5高级编程(第5版)
本书涵盖Spring 5的所有内容,如果想要充分利用这一领先的企业级 Java应用程序开发框架的强大功能,本书是最全面的Spring参考和实用指南。
本书第5版涵盖核心的Spring及其与其他领先的Java技术(比如Hibemate JPA 2.Tls、Thymeleaf和WebSocket)的集成。本书的重点是介绍如何使用Java配置类、lambda 表达式、Spring Boot以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。
JAVA核心知识点+1000道 互联网Java工程师面试题
企业IT架构转型之道 阿里巴巴中台战略思想与架构实战
本书讲述了阿里巴巴的技术发展史,同时也是-部互联网技 术架构的实践与发展史。
实用指南。
本书第5版涵盖核心的Spring及其与其他领先的Java技术(比如Hibemate JPA 2.Tls、Thymeleaf和WebSocket)的集成。本书的重点是介绍如何使用Java配置类、lambda 表达式、Spring Boot以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。
[外链图片转存中…(img-QbPryVaI-1715139881038)]
JAVA核心知识点+1000道 互联网Java工程师面试题
[外链图片转存中…(img-WwfrktoN-1715139881039)]
[外链图片转存中…(img-6SKA6bvr-1715139881039)]
企业IT架构转型之道 阿里巴巴中台战略思想与架构实战
本书讲述了阿里巴巴的技术发展史,同时也是-部互联网技 术架构的实践与发展史。
[外链图片转存中…(img-40BLDybl-1715139881039)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。