今天是野码哥c盘爆红的一天,不和弹幕对线先和c盘对线半小时,直奔主题先提了一个小概念前后端交互用Json
目录
继承:
父与子,公共类中已有的特征和行为而在多个类型只需要编写自己独有的特征和行为,叫做继承。X表示extends。子类不能继承父类的构造方法和私有方法,另外,在创建子类对象时,其实是先创建父类的对象,再创建子类的对象,一个孩子只能有一个爹,一个爹可以有多个孩子,通过super可以改变父类的属性
方法重写:
面试可能常会问的重写与重载的区别
继承练习:父类动物类
public class Animal {
private String name;
private String color;
public Animal() {}
public Animal(String name, String color) {
this.name = name;
this.color = color;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public void show(){
System.out.println("我叫"+getName()+",我的颜色是"+getColor()+"色");
}
}
小狗子类:
public class Dog extends Animal{
private int teethNumber;
public Dog(){}
public Dog(int teethNumber) {
this.teethNumber = teethNumber;
}
public Dog(String name, String color, int teethNumber) {
super(name, color);
this.teethNumber = teethNumber;
}
public int getTeethNumber() {
return teethNumber;
}
public void setTeethNumber(int teethNumber) {
this.teethNumber = teethNumber;
}
public void show(){
System.out.println("我叫"+getName()+",我的颜色是"+getColor()+"色,我有"+getTeethNumber()+"个牙齿");
}
}
测试类:通过有参和无参构造来进行测试
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.show();
Dog dog1 = new Dog("花花","白色",21);
dog1.show();
}
}
final关键字的作用:
使用final关键字可以声明一个常量,一旦被赋值后就不能再被修改,防止继承,防止方法被重写,确保安全性
final,finalize,finally的区别:final是Java中的关键字,可以用来修饰类、方法和变量。finalize是Object类中的一个方法,它是Java垃圾回收机制中的一个重要方法。当一个对象即将被回收时,垃圾回收器会调用该对象的finalize方法,开发者可以重写该方法来进行一些资源释放或清理操作。finally是Java中的关键字,用于定义在try-catch语句块中的一段代码,在try块中的代码执行完毕后,无论是否发生异常,finally块中的代码都会被执行。
互联网行业与信息安全分享:
互联网行业的现状:单纯的互联网已经消退(博客,论坛之类),目前的互联网+(物联网)是未来的常态,一定要有很强的综合能力
人工智能:GPT横空出世,里程碑式的发展,流程化,规则化的东西基本都可以被GPT代替,张一峰老师演示了AI工具的强大,只要你会题词的规则,AI工具可以给你设计出一款完善的APP,所以即会编程也会使用AI,会为你节省很多时间
开发和研发的区别:开发是产品功能的实现,研发是在产品功能上的扩展,重点是探索性的工作;研发的需求要高于开发
行业的现状:大树底下寸草不生,需要新的刺激点。行业在降温(裁员传统的人员),需要新的创新,需要综合性人才(编程,运维,商业逻辑.....)
技能的现状:大牛盛行(竞争更激烈),无厘头内卷,技术红海;没有哪个语言更厉害,只有更好的程序员
职位招人:工作经验(多用github,码云,在开源社区有过贡献,热衷于开源的,完全可以对冲三到五年工作经验)、基础能力、项目能力;迭代很快,要源源不断的学习,一直学习
信息安全:目前为止较为不卷,需要具备运维能力,具备web的渗透能力,内外的渗透能力,所有的天花板就是编程
认证和证书:越多越好,本身含金量不高,只是证明你具备基本的能力,并不能认证你是个专家,其中软考(软件设计师职业资格考试)的含金量最高,很多公司投标需要这个资质;
每日实习经验分享:
1、java后端实习要掌握java的基础和进阶知识,可以不理解原理,但是一定要会使用,会问你408,linux操作系统也要尽量去学,可以吹,但写在简历上的东西一定要会
2、多看校招,多做准备,根据招聘的方向去学习
3、沟通能力和态度,每次面试都可以拿录音笔录一下,下来复盘自己的问题,尽量不要保持沉默,也要准备几个问题,将面试官的问题引导向我们的熟悉的方向,简历中要突出自己的成就和能力,面试的时候能够帮助你的就是你的hr,这关乎他的业绩,你们两个是同一战线,他从简历中将你挑出来,就是想让你通过
抽象类:
抽象类的主要作用是为了提供一种模板或者框架,让子类可以继承并实现其中定义的抽象方法,从而实现特定的功能。要注意抽象方法没有方法体,直接();结束,他的出现就是为了被继承;抽象方法只能在抽象类中,被继承的子类必须重写父类的方法;抽象类必须用public或protected修饰,默认为public修饰,例子如下:
public abstract class Personal {
String name;
int age;
double height;
public Personal() {
System.out.println("抽象父类的无参构造被调用");
}
public abstract void show();//抽象方法没有方法体
}
public class Nurse extends Personal{
@Override
public void show() {
System.out.println("我也被调用了");
}
}
多态:
例如Person person = new Student(); person.show;这样在编译过程中调用的是person中的show的方法,但执行的是Student中的show方法.练习如下
父类Person
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name =name;
this.age =age;
}
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void show() {
System.out.println("我叫"+name+" 刚满"+age+" 并且我会吃饭");
}
}
子类worker:
public class Worker extends Person{
private double salary;
public Worker() {
}
public Worker(String name, int age) {
super(name, age);
}
public Worker(String name, int age, double salary) {
super(name, age);
this.salary = salary;
}
public Worker(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Worker{" +
"salary=" + salary +
'}';
}
public void show(){
System.out.println(toString());
}
}
多态调用,以三种方式
public class PersonWorkerTest {
public static void main(String[] args) {
new Person("zhangfei",18).show();
new Worker(10021).show();
Person person = new Worker(10021);
person.show();
}
}
接口:
接口是用public interface xxxx接口中的方法默认是public abstract
的,可以省略这些修饰符。常量默认是public static final
的,也可以省略这些修饰符,如果一个类中的方法全是抽象方法,常量全是全局常量;业务就是在面向接口编程;面向接口编程的思想可以降低程序的耦合性,易于拓展,易于维护;接口都是抽象部分,所以支持多继承
接口练习:
两个接口,接口和接口之间的继承用extends,而普通类和接口的继承是implements
public interface Runner {
// String name = "";全局常量,省略了public static final
void run();
}
public interface Hunter extends Runner {//普通类继承接口是用impls,而抽象类继承使用extends
void hunt();
}
继承并实现
public class Chinese implements Hunter{
@Override
public void hunt() {
System.out.println("捉到一只兔子");
}
@Override
public void run() {
System.out.println("正在全力奔跑");
}
}
public class ChinsesTest {
public static void main(String[] args) {
//接口类型的引用指向实现类的对象,从而形成多态
Runner runner =new Chinese();
runner.run();
Hunter hunter = new Chinese();
hunter.hunt();
}
}
今日实训到此为止