目录

学习目标:

学习内容:

延伸:

final关键字:

修饰类:

修饰方法:

修饰变量:

修饰成员变量:

final变量和普通变量的区别:

String类的常用方法:

·public String toString()

·public char charAt(int index)

· public int compareTo(String anotherString)

·public boolean contains(CharSequence s)

·public boolean startsWith(String prefix)

·public boolean endsWith(String suffix)

·public boolean equals(Object anObject)

·public boolean equalsIgnoreCase(String anotherString)

·public byte[] getBytes()

·public int indexOf(String str)

·public int lastIndexOf(String str)

·public boolean isEmpty()

·public int length()

·public String replace(CharSequence target, CharSequence replacement)

·replaceFirst(CharSequence target, CharSequence replacement)

·public String[] split(String regex)

·public String substring(int beginIndex, int endIndex)

·public char[] toCharArray()

·public String toLowerCase()

·public String toUpperCase()

·public String trim()

LintCode刷题:

·bug修复之final关键字

· 打印Hello World

·打印三个对象的名字和编号信息

·计算1949年到n年中所有的闰年

· 获取去除空格后的字符串长度

·向课程表指定的列插入'FlashSale'课程信息

学习时间:

学习产出:


学习目标:

  • 面向对象设计思想
  • 面向对象的分析与设计
  • Java与面向对象
  • 类中成员变量的定义与意义
  • 构造方法的定义和调用
  • 面向对象的封装特性
  • 局部变量和成员变量的作用域问题
  • 静态属性、静态方法、静态代码块
  • 面向对象的继承特性
  • 继承中构造方法的细节
  • 面向对象的多态特性
  • 抽象方法与抽象类
  • 接口

学习内容:

延伸:

final关键字:

表示最终的,不可变的。

修饰类:

final修饰一个类时,表明这个类不能被继承。

final class Father{}
class Son extends Father{   //编译报错,不能继承final修饰的类}

修饰方法:

final修饰方法,方法不可以重写,但是可以被子类访问 (前提:方法不是 private 类型)。

class Father{public final void speak(){System.out.println("爸爸:我是你爹");}
}
class  Son extends Father{//直接编译失败,被final修饰的方法不能被重写
//    public void speak(){
//        System.out.println("熊孩子:我才是你爹");
//    }
}public class FinalMethod {public static void main(String[] args) {Son son =new Son();son.speak();  //访问final修饰的方法}
}// 输出结果: 爸爸:我是你爹

修饰变量:

如果被final修饰的是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

public class FinalVariable {public final int a=1;public void method(){// final修饰基本数据类型的变量,其数值一旦在初始化之后便不能更改a=2;// final修饰引用类型的变量,其初始化之后便不能再让其指向另一个对象final String str=new String();str=new String();}
}

修饰成员变量:

成员变量必须在定义时或者构造器中进行初始化赋值,如果在定义成员变量的时候不初始化,前提是在构造方法中将成员变量b进行初始化。

public class FinalVariable {public final int a=1;public void method(){// final修饰基本数据类型的变量,其数值一旦在初始化之后便不能更改a=2; //编译失败// final修饰引用类型的变量,其初始化之后便不能再让其指向另一个对象final String str=new String();str=new String();//编译失败}
}

final变量和普通变量的区别:

public class Solution {public static void main(String[] args)  {String a = "hello2";final String b = "hello";String d = "hello";String c = b + '2';String e = d + "2";System.out.println((a == c));    //tureSystem.out.println((a == e));    //false}
}

由于变量b被final修饰,因此会被当做编译器常量,所以在使用到b的地方会直接将变量b 替换为它的值(这种情况我们成为编译器的优化)。而对于变量F的访问却需要在运行时才能连接确定,所以返回false

注意:只有在编译期间能确切知道final变量值的情况下,编译器才会进行这样的优化,那是不是只要是被final修饰的变量就会进行优化呢?当然不是!比如下面的这段代码就不会进行优化:

public class Solution {public static void main(String[] args)  {String a = "helloWord2";final String b = getHello();  //尽管是final修饰,但不会进行优化,因为它要运行时初始化才被确定String c = b + 2;System.out.println((a == c));    //false}public static String getHello() {return "helloWord";}
}

String类的常用方法:

·public String toString()

返回本身。

System.out.println("abc".toString());  //输出:abc

·public char charAt(int index)

用于查找字符串中下标为index的字符,返回一个字符。

System.out.println("student".charAt(0));  //输出:s
System.out.println("student".charAt(6));  //输出:t

· public int compareTo(String anotherString)

按照字典顺序比较两个字符串大小。返回0表示两个字符串的值相同。如果不相同,返回两个字符串 的 第一位不相同字符 的 ASCII之差。如果是包含关系的话,返回长度之差。

System.out.println("abc".compareTo("abc"));  //输出:0
System.out.println("abcd".compareTo("abcg"));  //输出:-3
System.out.println("abcf".compareTo("abcb"));  //输出:4
System.out.println("ab".compareTo("abcc"));  //输出:-2
System.out.println("ab".compareTo("abygdfg"));  //输出:-5
System.out.println("abygdfg".compareTo("ab"));  //输出:5

·public boolean contains(CharSequence s)

判断前面的字符串是否包含后面的字字符串。

System.out.println("hello World".contains("hello"));  //输出:true
System.out.println("hello World".contains("hello!"));  //输出:false
System.out.println("good".contains("goodjob"));  //输出:false

·public boolean startsWith(String prefix)

判断当前字符串是否以prefix字符串开头。

·public boolean endsWith(String suffix)

判断当前字符串是否以suffix字符串开结尾。

System.out.println("hello world".startsWith("hel"));  //输出:true
System.out.println("hello world".endsWith("world"));  //输出:true

·public boolean equals(Object anObject)

判断当前字符串内容是否与后面字符串内容相同。

System.out.println("abc".equals("abc"));  //输出:true
System.out.println("abc".equals("def"));  //输出:false

·public boolean equalsIgnoreCase(String anotherString)

忽略大小写,判断当前字符串内容是否与后面字符串内容相同。

System.out.println("abC".equalsIgnoreCase("ABc"));  //输出:true

·public byte[] getBytes()

将字符串转成byte[]数组。

byte[] bytes = "abcde".getBytes();
for (byte x : bytes) {System.out.print(x + "  ");  //输出:97  98  99  100  101
}

·public int indexOf(String str)

返回某个子字符串在当前字符串中第一次出现的下标,没有就返回-1。

·public int lastIndexOf(String str)

返回某个子字符串在当前字符串中最后一次出现的下标,没有就返回-1。

System.out.println("aaabbssddcdd".indexOf("dd"));  //输出:7
System.out.println("aaabbssddcdd".lastIndexOf("dd"));  //输出:10

·public boolean isEmpty()

判断某个字符串是否为空字符串,已经实例化了,也就是字符串的长度是否为0。

System.out.println("".isEmpty());  //输出:true
System.out.println("abc".isEmpty());  //输出:false

·public int length()

返回当前字符串的长度。

System.out.println("".length());  //输出:0
System.out.println("abcde".length());  //输出:5

·public String replace(CharSequence target, CharSequence replacement)

将当前字符串当中的所有target字符串换成replacement字符串。

·replaceFirst(CharSequence target, CharSequence replacement)

将当前字符串当中的第一个target字符串换成replacement字符串。

System.out.println("year/month/day".replace("/", "."));  //输出:year.month.day
System.out.println("http://www.baidu.com-http://".replaceFirst("http://", "https://"));  //输出:https://www.baidu.com-http://

·public String[] split(String regex)

将当前字符串以regex字符串隔开,隔开后的片段以String[]形式返回。

String[] ymd = "2020-1-1".split("-");
for (String x: ymd) {System.out.print(x + "  ");  //输出:2020  1  1
}

·public String substring(int beginIndex, int endIndex)

在当前字符串中,从beginIndex开始截取,截取到endIndex的新字符串,返回新字符串。

String str1 = "abcdefgh".substring(3, 6);
System.out.println(str1);  //输出:def

·public char[] toCharArray()

将字符串转换成char[]数组,并返回。

char[] chars = "student".toCharArray();
for (char c : chars) {System.out.print(c + "  ");    //s  t  u  d  e  n  t
}

·public String toLowerCase()

将字符串全都转换成小写字母。

·public String toUpperCase()

将字符串全都转换成大写字母。

System.out.println("ABcDeFG".toLowerCase());  //输出:abcdefg
System.out.println("abcDefG".toUpperCase());  //输出:ABCDEFG

·public String trim()

去除字符串前后的空格。

System.out.println("    hello   world  ".trim());  //输出:hello   world

LintCode刷题:

·bug修复之final关键字

延伸->(final)

public class Solution {String a = "hello2";final String b = "hello";String d = "hello";String c = b + '2';String e = d + "2";
}

· 打印Hello World

第一个编写的程序 ,有点小后悔一开始为啥没好好学,不过现在也不算太迟

public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World");}
}

·打印三个对象的名字和编号信息

创建子类使用父类方法的应用

Father(String name,int id){this.name=name;this.id=id;}Son(String name,int id){super(name,id);}

·计算1949年到n年中所有的闰年

知道判断闰年条件即可

public class Solution {public void leapYear(int year) {for (int i=1949;i<=year;i++){if (i%4==0&&i%100!=0||i%400==0){System.out.println(i);}}}
}

· 获取去除空格后的字符串长度

延伸->(String类常用的方法)

public class Solution {public int getLength(String str) {str=str.replace(" ","");return str.length();}
}

·向课程表指定的列插入'FlashSale'课程信息

延伸->SQL语句

insert into `courses` (`name`,`student_count`,`created_at`,`teacher_id`)
values("Flash Sale",100,'2018-01-01',5)

学习时间:

2021-8-20 9:00-11:45、13:30-17:00


学习产出:

刷题*6

学习笔记*1

程序员成长之路(Day 12)相关推荐

  1. 程序员成长之路(四)之有用的网址

    2019独角兽企业重金招聘Python工程师标准>>> 通过Java来测试JSON和Protocol Buffer的传输文件大小 http://www.jb51.net/articl ...

  2. 程序员成长之路--软件架构

    程序员成长之路--软件架构 一.想成为一个合格的架构师,你要知道软件架构是个什么概念,明白架构的定义: 1.软件架构是一个系统的草图. 2.软件架构描述的对象是直接构成系统的抽象组件. 3.各个组件之 ...

  3. 原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

  4. JAVA程序员成长之路的总结

    JAVA程序员成长之路的总结 看了篇推荐贴,JAVA程序员成长之路的总结,大致适用于各种初级JAVA程序员规划借鉴之用, 原文地址http://tieba.baidu.com/p/2017010306 ...

  5. 程序员成长之路(一)

    最近 ,总感觉有点郁闷,工作原因! 我是一名程序员,但完全没有经历过过正统的的程序员之路,一直在自我摸索,迷茫了,总结一下,找到迷茫的原因,再继续, 直到现在,仍旧如此.有的人限于能力愿意,到了某个高 ...

  6. Java程序员谈一谈-----java程序员成长之路

    转载:http://www.banzg.com/archives/679.html?ref=myread 阿里面试回来,想和Java程序员谈一谈 引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力 ...

  7. 我的程序员成长之路——回顾自己三年的工作

    本来不准备写年度总结的,但是恰逢今天北京同事年会,不禁回首,发现自己已经在程序员的职业道路上走了三年,也算初中毕业了,总的来说,自己勤勤恳恳,未曾懈怠,也感谢这三年在我工作和生活中出现的每一个人和每一 ...

  8. 一个电子发烧友的程序员成长之路

    回想起高考已经是7年前的事情了,一直想在毕业之际记忆记录一下7年的历程,懒惰始终占据着我的整个身躯.看到这个征文活动,让我有点想提笔记录的冲动了. 1.邂逅 一直在想该用什么样的语言来将我对电子制作发 ...

  9. 一个JAVA程序员成长之路分享

    我搞JAVA也有些日子了, 因为我比较贪玩,上进心不那么强, 总是逼不得已为了高薪跳槽才去学习, 所以也没混成什么大牛, 但好在现在也已经成家立业, 小日子过的还算滋润, 起码顶得住一月近万元的吃喝拉 ...

最新文章

  1. 全国大学生智能汽车竞赛介绍-2020
  2. Impala与Hive的比较
  3. 免费Opengrok-代码阅读工具:Kernel,Optee,ATF,Uboot...
  4. 图像降噪算法——图像噪声模型
  5. java callable 详解_Java多线程详解(七)------Callable接口介绍
  6. linux下的安装:openssl
  7. 小程序添加和删除新元素功能实例
  8. c语言中打印ipv6地址,c-来自任何有效地址的ipv4和ipv6
  9. 一杯水怎么测试_每滴都是“芯”鲜好水,碧然德新款净水器实测
  10. HDU2035 人见人爱A^B【快速模幂】
  11. pip更新升级后Import Error:cannot import name main及pip安装包后出现环境错误拒绝访问...
  12. 设计模式(14)——原型模式(Prototype)
  13. Tomcat常见内存溢出的解决方案
  14. 考研计算机专业课复试都有什么,2019计算机考研复试科目总结
  15. 31、当当图书榜单爬虫
  16. FrankMocap:A Monocular 3D Whole-Body Pose Estimation System via Regression and Integration 2021阅读理解
  17. 浏览器兼容性工具 Spoon Browser Sandbox
  18. 项目管理5阶段|一位高级项目经理的4年项目经验分享
  19. [转]网站整合Ucenter详细流程
  20. 记一次nginx配置自定义错误页面的麻瓜经历

热门文章

  1. 怎么快速学习英语的诀窍
  2. c++基础温习之指针分配空间
  3. 移动端项目功能点及实现方案 (图片居多)
  4. Git rebase(变基)操作详解
  5. 加密数据库与密文检索、同态加密
  6. 一、Ubuntu安装HomebridgeUI
  7. BBUCTF消失的MD5题解
  8. js获取当前时间 年月日 分秒
  9. 沐风老师3DMAX网球建模教程
  10. 颜色转换公式大全及转换表格(31种)