更新时间:2019年07月26日 11时13分53秒 来源:黑马程序员论坛
来黑马程序员之后的部分纠错点: 1.关于常量的打印输出,下列哪个选项是正确的?( A) A: System.out.println(""); B: System.out.println(''); C: System.out.println(null); D: System.out.println('ab'); 答案解析: A选项:该选项正确,空字符串常量可以通过打印语句输出。 B选项:该选项错误,字符常量,在单引号之间有且仅有一个字符。 C选项:该选项错误,空常量,不能使用打印语句输出。 D选项:该选项错误,字符常量,在单引号之间有且仅有一个字符,且不能为空。 2.下列代码的运行结果是(B ) public static void main(String[] args){ int x = 3; float y = x; System.out.println(y); //错选为C } A.3 B.3.0 C.3.0F D.3F float是浮点数类型,需要显示出浮点数类型的结果,控制台当中不会出现F作为后缀 A选项:该选项错误,3的数据值是错误的,结果是float类型,需要显示浮点数结果,应该是3.0 B选项:该选项正确,3.0的数据值是正确的,结果是float类型,需要在末尾加上.0 表示浮点数 C选项:该选项错误,3.0F 控制台不能显示出后缀F,后缀F是为了区分单精度float和双精度double的书面写法 D选项:该选项错误,输出结果不会显示字母F,因为字母F只在定义Float类型变量使用,如果float类型变量初始值是整数,打印结果时后面加.0 3.一旦JDK的环境变量配置完成,就可以在任意目录下执行jdk给我们提供的相关命令。 4.public class Test4{ public static void main(String[] args){ int a=10; System.out.println(a); a=a+10; System.out.println(a); short i=10; i=(short)(i+10); System.out.println(i); } } 5.字符串常量: 用双引号括起来的内容。"HelloWorld","黑马程序员" 整数常量: 不带小数的数字。666, -88 小数常量: 带小数的数字。13.14, -5.21 字符常量: 用单引号括起来的内容。'A','0','我' 布尔常量: 布尔值,表示真假。只有两个值:true,false 空常量: 一个特殊的值,空值,null(null值可以直接在输出语句打印吗?) 6. 在主方法中通过键盘录入三个整数。定义一个方法,方法接收三个整数变量,在方法中从大到小依次打印三个变量。执行效果如下: 请输入第一个整数:10 请输入第二个整数:30 请输入第三个整数:20 从大到小的顺序是: 30 20 10 1)方法一: import java.util.Scanner; public class demo1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个整数:"); int number1 = sc.nextInt(); System.out.println("请输入第二个整数:"); int number2 = sc.nextInt(); System.out.println("请输入第三个整数:"); int number3 = sc.nextInt(); get(number1,number2,number3); } public static void get(int number1,int number2,int number3 ){ int temp=number1>number2?number1:number2; int max=temp>number3?temp:number3; int temp1=number1<number2?number1:number2; int min=temp1<number3?temp1:number3; int mid=number1+number2+number3-max-min; System.out.println("从大到小的顺序为:"+max+","+mid+","+min); } } 2)方法二: public static void get(int number1,int number2,int number3 ){ int temp=number1>number2?number1:number2; int max=temp>number3?temp:number3; int temp1=number1<number2?number1:number2; int min=temp1<number3?temp1:number3; int mid=number1+number2+number3-max-min; System.out.println("从大到小的顺序为:"+max+","+mid+","+min); } } 6. A选项:该选项正确,使用面向对象的编程思想完成一个功能,需要找到一个能够完成该功能的对象,使用这个对象完成该功能,那么这个对象完成这个功能时需要一个步骤一个步骤的去完成,所以说面向对象是一种基于面向过程的编程思想。 B选项:该选项正确,使用面向对象编程思想完成一个功能,只要找到能完成该功能的对象,使用这个对象完成该功能即可,不需要关心过程中的每一个步骤。 C选项:该选项错误,王经理在完成修车这个功能时,每一个步骤都是自己亲力亲为,所以体现的是面向过程的编程思想。 D选项:该选项正确,小明在完成修电脑这个功能时,并没有亲力亲为,而是找会修电脑的师傅帮他完成,所以体现了面向对象的编程思想。 7. 面向对象思想,关注的是对象,让对象完成一个功能,我们关注的是结果而不是功能的每一个步骤! 生活中有很多面向对象思想的例子: 举例:洗衣服 面向过程:把衣服脱下来-->找一个盆-->放点洗衣粉-->加点水-->浸泡10分钟-->揉一揉-->清洗衣服-->拧干-->晾起来 面向对象:把衣服脱下来-->打开全自动洗衣机-->扔衣服-->按钮-->晾起来 面向过程:强调步骤。 面向对象:强调对象,这里的对象就是洗衣机。 8.代码如下,下列关于数组的反转描述正确的是( ) public static void main(String[] args) { int[] array = { 10, 20, 30, 40, 50 }; for (int min = 0, max = array.length - 1; min < max; min++, max--) { int temp = array[min]; array[min] = array[max]; array[max] = temp; } } 9.public int add(int a, int b) { int c = a + b; return c; System.out.println(c); 该选项考察方法中return语句执行流程的问题,一旦执行到return语句,后面的内容将不会执行,如果return语句后面具有必定会执行的其他语句,程序会编译失败。 学习笔记: -----------------Day4------------------------------------- 1.项目--》模块module--》package包--》class类 2.psvm回车--快速生成main方法 sout回车-- 快速生成输出语句 ctrl+alt+空格-----内容辅助代码补全 Ctrl+/ 单行注释 ctrl+shift+/ 多行注释 3.数组的定义格式: (1)数据类型【】数组名 int【】arr;(最好用该种方式)double[ ] arr; (2)数据类型 数组名【】 int arr【】; 4.不同数据类型系统给的默认值不同: byte short int long------》0 float double -------》0.0 boolean ------->false char---------------->' ' String ------------>null 5.数组的静态初始化; 格式1:int[ ] arr=new int[ ]{1,2,3}; 格式2:int [ ]arr={1,2,3};(两者均可,2较为常用) --------------------Day5------------------------------ !!!!!!!!!!!------面试之重:方法重载 1.方法使用 的注意事项:必须先定义再调用。 2.形参:定义方法时的参数 实参:调用方法时的参数 3.void表示无返回值,可以省略return,也可以单独书写return,后面不加数据。 --------------------Day7------------------------------- 1.this关键字 this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题) 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量 方法的形参如果没有与其同名,不带this修饰的变量指的是成员变量。 2.构造方法 格式:修饰符 类名(参数){ } 修饰符一般是public(无返回值类型,即无void) 构造方法在创建对象的时候调用执行 eg:Student s=new Student(); 1)构造方法与类同名,支持重载 2)可以使用有参构造方法,对成员变量进行赋值,达到初始化数据的效果 3)如果没有定义构造方法,系统会给出一个默认的无参数构造方法,如果定义了构造方法,系统将不再提供默认的构造方法。 4)只能在通过new实例化对象的时候执行 建议:空参有参都手动给出 3.局部变量优先执行 比如在一个方法中有this.name和name,先执行局部变量的name 栈 : 存储局部变量 在方法中或者是在方法的声明上()存储的变量 程序的运行都必须要进栈的 堆: 只要是能被new出来的都是存储在堆内存中 地址值是以十六进制的形式打印出来的 成员变量都是有默认初始化值 方法区: 存储.class相关信息,包含方法的信息 ------------------------------------Day8---------------------------- 1.String类 1)因为是在lang包下,应用的较为频繁,所以不需要导包,而且就算导了也不会报错 但对于java.util的包以及其它非lang包则必须导包 2)四种创建字符串对象的方式 String s1= new String(); new String(new char[]); new String(new byte[]); String str=""; 一般采用最后一个直接创建的方式 3)通过new String实例化对象的方式,每次new,就占一块独立内存 String s="";时,指向常量池的同一块内存,则共享一块内存。 2.使用==作比较 基本类型:比较的是数据值是否相同 引用类型:比较的是地址是否相同 而若想判断字符串内容是否相同,则用equals方法(s1.equals(s2)) 3.String str="123456789"; //长度 System.out.println(str.length()); //内容是否相等 System.out.println(str.equals("123456789")); String str1="abc"; System.out.println(str1.equals("aBc")); System.out.println(str1.equalsIgnoreCase("ABC")); //取字符 System.out.println(str1.charAt(0)); //判断开始 System.out.println(str.startsWith("123")); //判断结束 System.out.println(str.endsWith("789")); //子字符串 System.out.println(str.substring(1,6)); System.out.println(str.substring(2)); //是否包含 System.out.println(str.contains("456")); //字符出现的位置 System.out.println(str.indexOf('6')); System.out.println(str.indexOf('y')); System.out.println(str.indexOf("12")); 运行结果如下: 9 true false true a true true 23456 3456789 true 5 -1 0 4.StringBuilder append()方法:添加数据,并返回数据本身 链式编程:sb.append().append().append(); ------------------------------------Day9--------------------------- 1.\t:转义字符 2.想要彻底结束,就写return; -------------------------------Day 6.18 继承-----------(面试的点)---- 继承的优点:1,提高代码的复用性 2.提高了代码的维护性 1.子类中所有构造方法默认都会访问父类中无参的构造方法。 2.如果在子类中显示调用父类中的方法,则super()一定要是方法当中除注释以外的第一句,否则会报错; 3.this()调用构造方法,则必须是第一句,同2的super()方法。 但this.id调用成员变量/属性时,则不必是第一句。 4.调用本类方法,show()或者this.show()均可,而如果子类中的方法名与父类中的方法名重名,则为了区分调用的是哪个方法采用super(),如果只有show,就是采用就近原则。 5.被static修饰的类中某个属性,比如public static String company,所有对象将共用这个属性的值。调用方法为:类名.属性名; 6.静态成员方法只能访问静态成员(变量、方法),因为main方法为静态成员方法,所以要用static修饰 而非静态成员方法则可以访问任何其他方法。 -----------------------------------Day 6.19 多态-------------------------- 1.父类引用指向子类对象 Animal a=new Cat(); 成员变量访问特点:编译看左面,运行看左面 成员方法访问特点:编译看左面,执行看右面(因为子类进行了重写,所以调用了子类,但如果没有重写子类,则是运行父类) 2.多态中的转型: 向上转型:父类引用指向子类对象(比如Animal a=new Cat();) 向下转型:子类型 对象名=(子类型)父类引用;(比如Cat c=(Cat)a;) 2.父类的成员变量和成员方法(即属性和行为)可以继承,但是构造方法不可以继承 3.抽象类的④大特点: 1)抽象类和抽象方法必须用abstract关键字修饰 2)抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类 3)抽象类不能实例化对象(若想实例化,则只能是参照多态的方式,通过子类对象实例化即类似 Animal a=new Cat();) 4)抽象类的子类 要么重写抽象类中的所有抽象方法 要么是抽象类 3.1抽象类的成员特点: 1)成员变量:既可以是变量,也可以是常量 2)构造方法:空参构造,有参构造 3)成员方法:抽象方法,普通方法 4.接口:特殊类(java中的接口更多的体现在对行为的抽象) 类中所有方法都是抽象方法,与抽象类不同(允许有非抽象方法,即普通方法) 4.1 接口的特点: 1)接口用关键字interface修饰 2)类实现接口用implements表示 3)接口不可实例化对象,比如不可 jummping j=new jummping();只能是参照多态的方式,通过实现类对象实例化,这叫接口多态,比如jummping j=new Cat(); 4)接口的子类 要么重写接口中的所有抽象方法 要么子类也是抽象类 4.2接口的成员特点: 1)成员变量:只能是常量,默认修饰符是public static final 2)构造方法:没有,因为接口主要是扩展功能的,而没有具体存在 3)成员方法:只能是抽象方法,而且所有的都是抽象方法,默认修饰符:public abstract 4.3 1> 类与类的关系:继承关系,只能单继承,但是可以多层继承 2> 类与接口的关系:实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时时实现多个接口 3> 接口与接口的关系:继承关系,可以单继承,也可以多继承。 |
推荐了解热门学科
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 | 软件测试入门到精通 |