更新时间:2019年07月26日 11时10分26秒 来源:黑马程序员论坛
-----------------------ApI------------- 应用程序编程接口 java 中的的api: 概念 底层类库 ctrl+Alt +v 快捷键自动补全调用方法的接收数据 java。utll 需要导包 java.lang也可以导包 包下所以不需要导包 String 概念 : 用来描述字符串 特点 不可变的 可共享的 底层是字节数组 new出来的String堆内存开辟一条内存 没new的 String s1 = 都在字符串常量池中 数据相同 比较类型和大小 不一样的话在字符串常量池在开一处内存 减少内存的使用率 使用==做比较 基本类型 比较的是数据值是否相同 引用类型 比较的是地址值是否相同 equals 字符串来说的话 比较的是数据值 si.equals(s2); 输入的字符串的变量名.length 长度方法 变量名.charAt 和提取字符串数值 str.substring取字符串 equals String str = "123456789"; //长度 string的方法 System.out.println(str.length()); //内容是否相等 System.out.println(str.equals("123456789")); String str1 = "abc"; System.out.println(str.equals("aBc"));//这个是false System.out.println(str.equalsIgnoreCase("ABC"));//不在乎大小 //取字符 System.out.println(str.charAt(0)); //判断开始 是从这开始的吗 System.out.println(str.startsWith("123")); //判断结束 是从这里结束的吗 System.out.println(str.endsWith("789")); //取字符串 System.out.println(str.substring(0,5));//取字符串0到5(但不包括五)的数字 System.out.println(str.substring(1));//从第一位开始以后的字符打印 //是否包含 System.out.println(str.contains("456")); //字符出现的位置 System.out.println(str.indexOf('8')); System.out.println(str.indexOf('y')); System.out.println(str.indexOf("23")); split(\\.)切割 String Builder 和String区别在于可变换 只能用 appe赋值 区别- String:不可变字符串- StringBuilder:可变字符 在堆内存不断追加数据 拼接用StringBuilder 不拼接用String length 长度 append(任意类型) 添加数据 并返回对象本身 追加数据 链式编程 reverse 返回相反的字符 tostring StringBuilder转String String转StringBuilder 需要new他参数 - StringBuilder到String: toString(); - String到StringBuilder: new StringBuilder("abc") -------------------ArrayList-------------- 特点: 可变长度的数据容器 java.utll.ArrayList ArrayList 构造方法和添加方法 ArrayList<数据类型(泛型)> = new ArrayList<泛型> 1. ArrayList集合的特点 - 概念:可变长度的数据容器,java.util.ArrayList 2. ArrayList构造方法和添加方法 - ArrayList<String> list=new ArrrayList<String>(); - list.add("java"):添加数据 - list.add(0,"java"):插入数据 3. ArrayList常用方法 - remove(“java”):删除 - remove(index):删除 - set(0,"java"):替换 - get(index):取单个值 - size():长度 大小 数组获取长度是length 字符串是length() 集合是size ------------------继承------------------- 继承的概念:面向对象的三大基本特征之一,使子类可以拥有父类的属性和方法 继承的格式语法: public class 子类 extends 父类 继承的优点 提高代码的复用性 提高了代码的维护性 继承的缺点 父类和子类强耦合(紧密联系)在一起了,子类无条件的继承父类的方法 继承中变量的访问特点;规则:就近使用原则,局部优先原则子类的局部子类成员父类的成员 super关键字在访问成员变量时的用法 super.成员变量名-->父类的成员变量this.成员变量名-->本类的成员变量 继承中构造方法的访问特点(super调用构造方法) super(); 子类会默认调用父类无参的构造方法,super()方法当中除注释以外的第一句代码 this();本类的构造方法,方法当中除注释以外的第一句代码 继承中成员方法的访问特点(super调用成员方法) super.方法名() 调用父类的方法 this.方法名() 调用本类的方法 方法重写 子类中出现与父类相同的方法 方法重写注意事项 private方法不允许被重写 private->默认->protected->public 子类方法的修饰符的访问范围要大于等于父类方法的修饰符 继承的注意事项 单继承体系多层继承 package的概念包就是文件夹,主要用来管理类 语法: package com.test; import的概念 导入不同包中的java类语法: import com.test.类名; 支持通配符* import com.test.*; 15.final修饰符 变量:变量的值不可被改变方法:不可以被重写类:不可被继承 .static修饰符 修饰属性: 类名.属性名 方式访问 多个对象共享一个属性的值 修饰方法:类名.方法名()访问 -------------------------------多态------------------------------------ 多态的概述: 同一个对象 在不同时刻表现出来的不同形态 多态的前提和体现: 有几成实现关系 有方法重写 有父类引用指向子类对象 因为成员方法有重写 成员变量没有 子类有用重写子类的 没有用父类的 必须要重写 要不然掉不到 所以多态成员访问特点 变量 :编译看左边 运行看左边 方法 编译看左边 运行看右边 优点 :提高了代码的扩展性 缺点:父类的引用导致子类的 向上转型 自动类型转换 父类的类名 父类引用 = new 子类(); 向下转型 强制类型转换 子类的类名 子类引用 = (子类的类名)父类的引用(); instanceof 判断父类是否能转换子类 ---------------------------抽象类--------------------- abstract修饰的类 叫抽象类 没有方法体的的方法需要abstract修饰 public abstract void 方法名(){} 抽象类不一定有抽象方法 但是一个类有了抽象方法 类也必须是抽象类 抽象不能实例化对象 需要继承多态的形式使用它 抽象类的子类要么重写抽象方法 要么自己也变成抽象类 抽象类的成员特点 成员变量 可以是常量也可以是变量 有构造方法 给子类初始化对象的 ---------------------------------接口--------------------------------------- 接口 行为规范 特殊的类 所有方法都是抽象方法作为一种行为规范 public interface 接口名 接口通过interface关健字声明 类与接口之间的关系实现关系 implements 不能实例化对象 类实现接口后 要不重写接口里面的方法要不加abstract变成抽象类 接口成员变量(常量)默认语句是 public static final 变量类型和变量名 公有的常量 没有构造方法 因为没有变量 都是常量 成员方法默认是抽象方法public abstrac 返回值 方法名 公有的抽象方法(没有方法体) 实例化对象里面可以构造方法是因为他默认 继承object 给它里面super();并不是给接口 一个 实例化类可以继承后 继续实现单个 或多个接口 ,逗号隔开 接口和接口可以继承 也可以继承多个接口 extends 接口名 多个加逗号, 需求能被复用性一部分共有方法的一部分是抽象方法的使用抽象类 都是抽象类使用接口 新追加的功能使用接口 一个子类只能继承一个抽象类 但是可以实现多个接口 继承原来的子类添加新需求的接口 开闭原则 对新增开放 对修改关闭 |
推荐了解热门学科
java培训 | Python人工智能 | Web前端培训 | PHP培训 |
区块链培训 | 影视制作培训 | C++培训 | 产品经理培训 |
UI设计培训 | 新媒体培训 | 产品经理培训 | Linux运维 |
大数据培训 | 智能机器人软件开发 |
传智播客是一家致力于培养高素质软件开发人才的科技公司,“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。
传智播客从未停止思考
传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”
中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。
何为中高级程序员课程?
传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展。“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。
黑马程序员热门视频教程【点击播放】
Python入门教程完整版(懂中文就能学会) | 零起点打开Java世界的大门 |
C++| 匠心之作 从0到1入门学编程 | PHP|零基础入门开发者编程核心技术 |
Web前端入门教程_Web前端html+css+JavaScript | 软件测试入门到精通 |