1. 概述
系统介绍一下接下来阶段要学习的内容:
1.JAVA:
1.1 java语言基础
1.2 java面向对象阶段(很重要!起的承上启下!!)
1.3 API阶段(Application Interface )学会看字典 提供好的工具:String、Date、Scanner
1.4 网络编程阶段
2.web阶段
2.1 html、css、js(前端3剑客)
2.2 前端进阶:elementUI(快速搭建网页)、前端框架Vue(国人出品:尤雨溪)
2.3 数据库(重点!!)
2.4 数据库框架:Mybatis
主流三大框架(SSM):S:Spring、SpringBoot、Mybatis
2.5 数据库和java如何进行联系:JDBC(Java Database Collection)
3.Spring阶段(打通任督二脉)
3.1 SpringMVC(分层架构,遵循开发规则)
3.2 SpringAOP
3.2 SpringIOC
3.3 Vue和Spring如何联系(页面和java如何联系)
3.4项目:酷鲨商城、京淘项目
3.5 如何部署项目(上线)输入一个网址能够访问你的页面
3.6 Linux系统(稳定,Windows系统一直不关机会卡!!宕机,收费!!!)
达到企业用人的最低标准
4.微服务、大数据
2. 面向对象阶段复习
2.1 补充:
运算符/成员变量/局部变量串讲:
package cn.tedu.basic;
public class Test1 {
public int a;
public static void main(String[] args) {
//运算符
// >>(二进制) ??
//怎么算 面试题 8 除 2 的效率是最快的
//计算机 位运算是最快的 1000 0100 15 >> 1 1111 0111=7
// System.out.println(8 /2 );
// System.out.println(8 >> 1);
// System.out.println(15 >> 1);
// & |
//1 & 2 true| false C语言:0代表假 非0数代表真
// 1: 0001
// 2: 0010
// 3 0000
// System.out.println(1 | 2);
// System.out.println(1 & 2);
//成员变量和局部变量的区别???
//1.位置:成员变量:类里方法外 局部变量:方法内
//2.特征: 默认值:整形 0 浮点型 0.0 字符型:空字符\u0000 局部变量有默认值吗???
// 拓展???
//修饰符角度 成员变量可以被权限修饰符修饰符???
//局部变量不允许使用权限修饰符 public int b = 0;//错
//权限修饰符:public protected 默认 private
//3.使用范围:成员变量可以被本类中的所有方法使用 局部只能被方法使用
int c; //局部变量没有默认值 使用时必须初始化!!!
// System.out.println(c);
}
}
2.数组、对象的内存
package cn.tedu.basic;
public class Test2 {
public static void main(String[] args) {
/*
int[] arr1 = new int[]{1,2,3};
int[] arr2 = arr1; // 里面{1,2,3}
arr2[1] = 10; // 2换成10
//问 arr1[1] =?
System.out.println(arr1[1]);
*/
//升级 我谈对象
// Person p = new Person();
// p.name = "张飞";
// Person p2 = p;
// change(p2);
// System.out.println(p.name); //实参 问:现在结果是什么 p.name = null
//值传递/值拷贝 基本类型 传的是值
// 引用传递 引用类型:String 传的是地址
int a = 10;
int b = a;
b = 20;
System.out.println(a);
}
public static void change(Person a){ //做了形参的操作 会不会影响实参
a.name = null;
}
}
class Person{
String name;
}
3.方法(可变类型参数、重载)
package cn.tedu.basic;
public class Test2 {
public static void main(String[] args) {
//方法的重载:在同一个类中 方法名相同 参数列表不同的现象 : 方法的签名:方法名+参数列表
//自己做一个功能
//我想要模拟System.out.println()方法,
// 可以打印int 类型 double 类型 char 类型 方法名:print
System.out.println(print(1));
//问重载的好处是什么????
//使程序的拓展性变强
//提高了代码的复用性 ??? 方法 一次书写 到处使用
//可变参数类型???
//需求是打印2个整数的和??
System.out.println();
//需求是打印3个整数的和??
//需求是打印4个整数的和??
//可变参数类型 数量是不确定的!!!
//为什么
//看三国演义
//诸葛亮北伐
//凡兵法韬略 说透了 术是表 道才是根本 你要是悟透了这个道理 比你学上千种阵法还要重要
// 解决有多个相同参数 但是又不想重复书写参数的问题
//补充:细节 一个参数列表可以有几个可变类型 只能有一个
//2 .必须放在参数列表的最后
int res = sum(1, 1, 1);
System.out.println(res);
}
public static int sum(int...data){ //可变参数类型 底层就是一个数组 data是一个数组
int sum = 0;
for (int i = 0;i < data.length;i++){
sum+=data[i];
}
return sum;
}
public static int print(int data){ //int 类型
return data;
}
public static double print(double data){ //double 类型
return data;
}
public static char print(char data){ //double 类型
return data;
}
}
2.2 面向对象
术是表 道才是根本
2.2.1 类
类是实际生活中事物的一种抽象??/模板、图纸
动物:猫、狗、鸟……
class 类名{}
2.2.2 对象
类的具体实现(物象化、实例化)
new 类名
2.2.3 构造方法
语法:
1.方法名和类名相同
2.无返回值类型
3.权限修饰符
4.可以重载
道???
为什么使用?诞生的意义是什么
完成对象的初始化(赋值)
现实生活:
手机:恢复出厂设置:打电话、发短信
使用时机
创建对象的时候
构造代码块:
语法:{} 位置:类里方法外
作用:提取构造方法的共性 {打电话、发短信}
加载时机:比构造方法快
例子:
public Phone(){
}
public Phone(int a){
}
疑问:假如发生了继承关系,请说明:子类的构造方法、代码块、父类的构造方法
执行顺序:父类的构造方法 > 构造代码块 >构造方法
package cn.tedu.basic;
public class Test3 {
public static void main(String[] args) {
new Dog();
}
}
class Animal{
public Animal(){
System.out.println("我是父类的构造方法");
}
}
class Dog extends Animal{
public Dog(){
System.out.println("我是子类的构造方法");
}
{
System.out.println("我是子类的构造代码块");
}
}
2.2.4 代码块
静态代码块、构造代码块、局部代码块
局部代码块:
语法:{}
位置 类里方法内
道(作用):控制变量的作用范围
问:变量的作用范围,一般来说越小越好
局部变量只能在方法内
静态代码块
语法:static {} 位置:类里方法外
作用:从加载时机考虑,当我的资源需要第一时间被程序读取,并且只读取1次,考虑使用静态代码块
2.2.5 this/super
this
是什么:指代当前对象(谁new 就是谁)???
this可以应用的领域:
可以变量、方法(构造方法、普通方法)、不行类(没有)
为什么要使用this:当我的变量名发生冲突时(名字一模一样) ,java会采取就近原则,但是我自己想要指定使用本类的变量,this应运而生
package cn.tedu.basic;
public class Test5 {
public static void main(String[] args) {
}
}
class Student{
String name;
String no; //学号 201911310107
public Student() {
}
public Student(String name, String no) { //起名字的难度大了 形参叫什么名字 成员变量叫什么名字 很累
//this(); //只能在构造方法内调构造方法 为什么有这个功能???业务需要
//现在的需求 因为形参和成员变量方法名重复了,如果不使用this默认会使用就近原则
//问:我不想使用this,又想使用成员变量
/*
Student this = new Student();
this.name = name;
Fu super = new Fu();
super.xx
*/
this.name = name;
this.no = no;
}
/*public Student(String name,String no){
this.name = name;
this.no = no;
}*/
public void testThis(){
name = "张飞";//变量功能只有两个操作 1.打印 2.赋值
a();
}
public void a(){
}
}