【日记】Java学习日记(第63天)持续无聊更新

前言


Youtube上EJ Media(up主)的视频我依次学完了HTML、CSS、Javascript、Jquery。觉得他教得挺好的(短小精悍),就继续学他教的JAVA。感觉EJ教的都是些语法什么的。太复杂的没教。以及我也学过一点点python的语法。另外,大一还是大二的时候把Coursera上吴恩达的《机器学习》看了一遍,当时不懂编程所以操作题都是github上抄的,无奈,顺便学了点octave。总而言之,学习Java之前我只是会一些小小的语法罢了,总是这样浅尝辄止不行的啊。

当然不仅仅只跟着EJ Media学语法,学完语法还要学其他的,那些我就真的一无所知了。要努力啊!

隔一段时间上传一个版本(github)上,有时候会改一下前面的内容,尤其是前言(一直在改)。

注解:

  1. “?”意为“不确定并且暂时懒得查;

Day1 2018.7.4

想成为JAVA工程师,所以开始学JAVA。
万事开头难,还好我有点点基础。看了EJ Media 的 Java Tutorial for Beginners 01( #01 ),创建了第一个项目。一开始有点麻烦,还好没放弃。成功了。第一课学习完毕。发现还有 01之前还有00(intrudoction),看了一下,是基础介绍。加油!

Day2 2018.7.5

上午看了会儿JAVA的介绍,大致知道JAVA是面向对象,多平台,多应用的语言。刚刚完成了EJ Media 的 Java Tutorial for Beginners 02( #02 )。这节课讲了变量种类(int,double,float,String,boolean),跟着完成了练习。

#03 第三节课讲的是数学上的运算,加减乘除什么的,没什么难度。

#04 第四节课讲的是++和–,还有计算的优先级。优先级这块听得不是很懂,不过没关系。EJ说以后还会提起。

被实习公司炒鱿鱼了。真是被逼上绝路啊哈哈哈。要是我以后成了大神,我就可以说“不是我选择了编程,是编程选择了我啊”

#05 第五节课讲了String里面有引号怎么处理,这个学过(JavaScript?)。还有把字符串变大写,indexof。这节课也很简单。毕竟编程有相同之处啊。我就喜欢这种循序渐进的,学习重在坚持,不在效率。

#06 讲了新建java包和移动类。这节课有点点糊涂,但是操作基本还原。

今天学了五课,打算睡前再看看java学习的文章,别人学的日记,经验什么的。

Day3 2018.7.6

对了,昨天花了很长时间在Markdown和Github上了。就是把本地图片上传到Github变成在线图片。然后就在Markdown里面插入图片比较方便。本地图片的话,如果发布到其他的平台的话,上传图片好像不大方便。弄完了这个,我觉得很有用啊,上传到其他平台直接就一个Markdown文件就好了。真是提高效率的事情啊!本来看教程是在终端的,搞了半天不会。后来发现可以直接用网页版的Github啊!绕远路了。

#07 第七节课讲了if语句。感觉和以前学的Javascript差不多,就那样吧。很容易。其实语法什么的听说不用花多长时间的。所以……加快脚步。

#08 第八节课讲的是switch语句。同上。就是我现在用的IDE(是叫这个吧)是Netbeans。人家说初学用简单的notepad之类的就行了,免得IDE这种东西功能复杂,初学者会眼花缭乱。今天就眼花缭乱了。老说什么“一个或多个项目的编译错误”,我试着运行了一下,是可以的,不过既然它有提示,就一定出了问题。然后我把那些包(package)和类(class)搞了搞,理理清楚。现在已经没问题了。已上传压缩文件 MainjavaProject_2018.7.6.zip

#09 这节课讲的是for循环,有印象。刚刚敲代码的时候少敲了一个static,然后运行的时候找不到新建的类了。现在还不知道public,static,void这些是什么意思,应该跟结构有关。懒得还原了,现在能找到新的类了(forloop)

刚刚我的文本编辑器(?TextNut)突然闪退,然后打开来就只剩一行了。吓死我了。还好过了一两分钟重新打开又恢复了。吓得我赶紧把我这不成文的东西备份,先上传到github上去吧。

#10 这节课讲了while循环,有印象,敲一遍代码,pass。

哈哈哈找到Thinking in Java了。而且还有mobi版本的,感动到落泪。

#11 这节课讲的是dowhile。就是先执行(do),再循环。跟while的区别就是dowhile的话即使while()里的条件不符合也会执行一次。while的话就不执行。高中学VB的时候也讲过。

新技能get,复制 .java文件,粘贴的时候重构一下就好了。重构改文件名顺带可以把代码里的class名称一起改掉。不仅仅是完全的复制粘贴。迷之智能。

Day4 2018.7.7

Google了一下学习Java的路线图。以下引用自Neel Neeraj A G(Quora)的回答What are the learning stages of Java?

你可以按照以下路线来学习Java :

  1. Java 基础 - 变量, 数据类型, 操作符, 控制语句,字符串, 数组和函数。

  2. OOP(面向对象程序设计) - 类, 对象, 构造函数, 继承, 抽象概念 , 抽象类, 接口, 多态, 函数重载, 函数覆盖。

  3. 高级概念- 进程, 线程, XML文件操作符, 集合.

  4. 数据库连接 - JDCB操作.

  5. Windows应用的开发 - AWT, Swing.

  6. J2EE - Servlets, JSP.

  7. Java 框架: Spring, Hibernate.

注解:
(以下来自维基百科/菜鸟教程/简书/w3cschool)

  1. OOP 面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。

  2. XML 可扩展标记语言(英语:Extensible Markup Language,简称:XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。

  3. JDCB Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC是面向关系型数据库的。

  4. AWT 抽象视窗工具组(Abstract Window Toolkit=AWT)是Java的平台独立的视窗系统, 图形和使用者界面器件工具包。

  5. Swing

  6. J2EE Java EE是一系列技术标准所组成的平台

  7. Servlets Servlet 为创建基于 web 的应用程序提供了基于组件、独立于平台的方法,可以不受 CGI 程序的性能限制。Servlet 有权限访问所有的 Java API,包括访问企业级数据库的 JDBC API。

  8. JSP JSP 与 PHP、ASP、ASP.NET 等语言类似,运行在服务端的语言。JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。JSP文件后缀名为 *.jsp 。JSP开发的WEB应用可以跨平台使用,既可以运行在 Linux 上也能运行在 Windows 上。

  9. Java 框架 所谓的Java框架,简单理解是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。Struts、Hibernate和Spring是我们Java开发中的常用框架,他们分别针对不同的应用场景给出最合适的解决方案。

  10. Spring Spring 框架是一个开源的 Java 平台,它为容易而快速的开发出耐用的 Java 应用程序提供了全面的基础设施。

  11. Hibernate Hibernate是一种Java语言下的对象关系映射解决方案。它是使用GNU宽通用公共许可证发行的自由、开源的软件。

#12 这节课讲的是数组。有印象,敲了一遍。

3% Thinking in Java 看到3%。用kindle看的,kindle这点挺好的,有进度条。还是免费的。我看实体书中文版要80多,英文版没注意。我现在看的是英文版,网上有免费下载的,第四版。前3%讲的不是什么紧要的,就写著书的过程、感谢、别人的推荐什么的。话说这本书可真的够big的了。

Day5 2018.7.8

#13 objects。 跟javascript差不多,敲了一遍。

#14 继承。 跟javascript差不多,敲了一遍。

#15 转换,包括数据和对象。敲。话说为什么字符串String不能直接转换成数字Int呢?还要搞个方法method。

4% Thinking in Java 看到4%。讲的是OOP,即面向对象程序设计(英语:Object-oriented programming)。就是说自打有了OOP,程序就变得易读了,因为每个Object都会有特定的功能,可以从object的名字上看出来。我之前以为object就是class呢。object应该是在class里的。一个class里面可以有好多个object。

Day6 2018.7.9

#16 这节学的是构造函数(constructor)。听懂八成的感觉。不懂为什么还要特地搞个constructor,因为constructor跟class里面的内容差不多啊。

今天有点怀疑人生啊,不知道自己能不能坚持走下去。Thinking in Java书真的好厚啊!感觉前路漫漫,有很多要学的东西,不知道自己行不行。我这个人人际交往能力很差的,加之是日语专业的,我就想找个对日软件开发的工作。趁着应届生身份还能进坑,以后工作了的话,就不好转型了。离2019年春招还有7月、8月……2月,八个月。我这个人就是什么都抓,又什么都不行,其实吧20出头就特别厉害的也不多啊(不能这么想啊),要看潜力的嘛!我有考虑的工作有:出版社(工资低,要求高,北上广),画画的(感觉难糊口,不稳定),日语翻译(性格不适合的样子,临场反应差),摄影师(刚买单反,还不行呐,而且到处跑万一被拐了怎么办),养花的富婆……不说了。

#17 这节容易理解,讲个四个Access Modifier。无(限制在Package内),private(限制在class内),Public(范围不限),protected(限制在Package和子类内)敲代码的时候顺便把上节课的constuctor的概念也用上了,中间出了点小问题,不过被自己解决了。出的问题是新数据没用上,原因在于在constructor里面也要把数据之间的关系写出来,要和class里面一样。我就是class里面写了sum=num0+num1+num2;然后constructor里没写sum=num0+num1+num2,然后返回的永远是初始值,因为虽然constructor里的新数据都赋值了(num0 = A;num1 = B;num2 =C),但是sum还是原来的sum。所以constructor真是奇怪的东西啊,非得再写一遍。

5% Thinking in Java 看到5%。讲Object。讲了Object Access Modifier 和 继承。第一个今天刚刚学,但是新增了一点,即为什么要分这几个限制范围,因为要防止那些别的程序员不小心改了自己负责的内容,所以搞个界限,也方便自己修改private内容,不影响别人。第二个讲继承,概念上更加清楚了。就是两个class有相同之处,交集还是并集来着(交集吧),然后相同之处作为父类(super class)。终于看掉了一个百分点,真厉害。

Day7 2018.7.10

6% Thinking in Java 看到6%。发现一个百分点大约是20页。话说幸亏我之前没冲动买纸质版啊,很贵的呢!电子版(mobi)虽然有点错字(5hape是shape),有的单词会连起来(feeldifficult、suchapackage之类的),排版有点莫名其妙,总体上还挺好的。这次讲的内容还是Object(继承,contain,动态储存?,回收),里面有几个概念没弄清楚,先记下来。有空的时候查一下。所谓的不求甚解嘛,要不然死钻进去,这本书怕是看不完。

问题待查询List:

  1. late binding;
  2. polymorphism;
  3. container;
  4. interface;

#18 这节讲的是return和void,这个很好记。return 返回结果(学过),void不返回。

Day8 2018.7.11

#19 这节讲的是static。这个以前没接触过。不过昨天看Thinking in Java的时候看到过。就是Java的储存用的是动态储存(?),没有注明static的话,就是用完即弃,扔到那个garbage什么来着里面去(我理解为就像人一样忘记了);注明static的话,就会储存这个数据。不大明白的是,他说变量(variable)和对象(object)都要加static,不过我把object那里的static去掉之后也运行成功了。我猜数据保存到variable里面了。刚刚看了一下评论说“我喜欢这样的教学。把我当成五岁小孩。”我也喜欢这种讲得很清楚的教学,它让我克服了语言的困难去学他的教程而不是中文教程。我没说中文教程不好,我只是懒得去试去挑。

7% 讲了关于Web的事情,讲服务器(server)和客户端(client),讲Web语言发展。原来的Web上传信息很慢很麻烦,现在通过Java alphet(?),脚本,Javascript从client端着手,大大提高了速度。想到了个类比。老师是server,学习委员是javascript、脚本什么的。有问题不要老是跑老师办公室去问,太慢了,有的问题在班里问问学习委员、同桌就可以了,速度就比较快。这次还讲了微软开发的.NET和C#在抢Java的饭碗。又说了Intranet,跟Internet不一样,Intranet适用于client端都是一个系统的,都是windows之类的。因其安全性,比较适合企业。看完之后觉得Java跨平台和这个一点还是不错的。差不多就这么些了,理解能力有限,有错误之处,还请指摘。

Day9 2018.7.12

#20 继续讲了static。这次不用constructor,而是执行文件(有main的那个)里直接调用(?),object.name之类的,直接用class也行的(class.name)。

#21 讲了变量的范围(variable scope)。就是class里面的变量只能里面用(local),在class外面就不能召唤了。

8% 还是讲了关于Object的事情,讲了几种储存数据的方式,garbage collection(?自动删掉不用的变量,释放空间),又讲了reference,scope,methods之类的,有些基础的概念没怎么搞懂。不过还好这些只是概述,之后的章节会详细阐述的。就是排版,段落有的会错开的,不过看在免费的份上还是原谅吧。

Day10 2018.7.14

__10%__昨天懒癌发作,没有完成任务。今天多看了一个百分点。讲javadoc comment什么的,不懂跟HTML有什么关系。第一章节object结束,练习题看了一下题目,没做。


Day11 2018.7.15

#22 讲了this。

一开始没弄明白,不懂为什么一个one是79一个one是0.现在搞懂了。应该是constructor里的one被赋值之后(=79),就自动结束工作了。所以就没有返回到第二个one里面,所以就等于0,所以需要前面加个this(即this.one),叫它把79这个值返回到第二个one里。不过我不懂的是,java为什么在第一个得到值之后就停止工作(one=79),我不是调用了嘛(this2.png)

但是把one = one,变成one = one1就行了。不是应该一样的吗?刚刚在netbeans上敲了一下,上面提示“禁用自身赋值”,我觉得一般脑筋正常的人应该不会对自身赋值的吧,算了不深究了,超纲。

#23 很水的一节课。讲了default constructor。我觉得挺简单的,就你自己没创建constructor,Java帮你创建个简单的默认的constructor,复杂功能就不行了,需要自己创建个constructor,和default constructor重叠,是同一个constructor。

#24 讲了constructor和method的区别。constructor是method的一种,但是不能返回值(不能用return或void)。我觉得我还是分得挺清楚的。constructor比较系统(模型?),method是一个一个的动作。

#25 讲了super。就是当父类和子类methods名字重复的时候,如何使用父类。就是前面加个super。即,super.methodname()。很容易理解。

Day12 2018.7.16

11% 这部分在讲operator(运算操作符?),& OR 什么的,还有什么bits之类的没搞懂,bits是什么东西啊。昨天卡在这里了,没看下去。今天也没看得十分明白。打算看看别的博客讲operator的补一下。

暑假结束后的大四上学期周一周五都没课(坐标上海or苏州),就我现在这样怎么找得到Java实习呢,得学到数据库,Spring啥的。加油吧。

#26 这节讲了super在constructor上的应用。敲了一遍。

#27 Main Method 水

#28 讲了一下Java运行的过程

Day13 2018.7.17

#29 Methods 不知道为什么Methods用完之后class里面的变量会变呢,我以为Methods之间没关联的。跟static有关系吗

#30 Primitive and Object Reference variables. 没搞懂Object Reference variables。

Day14 2018.7.18

12% 讲operations和conditions。把菜鸟教程的讲操作符的内容看了一下,讲得挺清楚的,因为书里的没看懂(专业术语,代码排版错乱错字)链接-菜鸟教程-Java运算符

Day15 2018.7.19

13% 讲了循环语句,while for什么的。讲了goto,label什么的,这个没看懂。准备搜一下中文介绍资料,博客什么的。今天还把别人写的位运算看了一下,差不多懂了,原来是二进制啊。所以说这本书作为学习的框架还是不错的。

Day16 2018.7.20

14% 讲了overriding 和 default constructor。overriding 的细节没搞懂,就是如何区分两个相同name的method(type什么的,大片代码没看进去。什么type不是一眼就能识别的么)。

Day17 2018.7.21

看了几篇java相关的鸡汤和技术文章。明天要看到15%,补一下。

Day18 2018.7.23

15% 讲了垃圾回收。一知半解。得补博客文章。

最近看一个公众号的文章(码农翻身),挺通俗易懂的,对于了解概念很有用。

Day19 2018.7.24

看了些Java博客文章,Eclipse安装插件SpringBoot未果。

Day20 2018.7.26

16% 讲了静态变量,静态constructor优先级什么的。

17% 讲了public private什么的,access。

发现新大陆!我要学CS61B啦!话说伯克利真的是造福世界啊,免费的。排版我也喜欢。还有啊CS课程好多啊!CS Course

发现一个编程刷题网站leetcode。做了一下第一题(从排序数组中删除重复项),失败了。搜了一下别人的答案,没看懂。再接再厉吧(微笑)。

Day21 2018.7.28

16% 自己把THINKING IN JAVA转了下mobi,感觉好多了,最起码不会有那么多错字,代码格式也正常。之前看到代码自己也不敲(格式实在太乱),今天敲了一下import java.util.ArrayList的代码。不敲代码不行啊。因为你永远不知道自己会犯什么错。今天把util 敲成了uti,死活都是虚线。

//pa16 means it’s the 16% contents of THINKNG IN JAVA
package pa16;

//: access/SingleImport.java
import java.util.ArrayList;

public class SingleImport {

public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(“dog”);
list.add(“cat”);
list.add(“pig”);
System.out.println(list);
}

}

Day22 2018.7.30

下载安装了mysql。
改了一下用户名。

Day23 2018.7.31

mysql笔记:

  1. 用户名:shiqiu;
  2. 密码:有数字;
  3. 登陆:mysql -u shiqiu -p;
  4. ERROR 1045 (28000): Access denied for user ‘shiqiu’@‘localhost’ (using password: YES):密码错误;
  5. 路径: /usr/local/mysql (系统偏好设置-MYSQL-Configuration);

mysql问题:

1.brew services start mysql: 这行启动mysql的代码不行,我在系统偏好设置里启动的,不过一般默认启动的所以也无所谓,我一般不关机;

Day24 2018.8.1

mysql学习内容:

《MySQL核心技术手册》9%: 了解了MySQL的基本的语句,看起来还挺简单的。代码未敲;

mysql问题:

  1. %通配符;
  2. LIKE;
  3. 客户机、服务器怎么区分;
  4. 别名;

Day25 2018.8.2

《MySQL核心技术手册》10%

把昨天看的部分的代码码了一半,码到6%,记录了笔记,感觉不错;

mysql问题:

  1. 打算找一个好用的mysql的ide,命令行麻烦;

Day26 2018.8.4

今天的成果:


代码在这里,有部分遗漏

Day27 2018.8.5

mysql学习内容:

  1. 加密函数(不大会搞,明天弄吧);
  2. 授权(也没弄好,倒是新建了一个host是’%‘的用户);

mysql问题:

  1. 跟着人家的教程,出了错,各种google;
  2. 啥时候是个头啊,明天搞java吧,java跟数据库怎么连之类的;

Day28 2018.8.7

Java学习内容:

自己建一个print()和range()方法,(Thinking in Java上有代码,不全)然后range()里面有些我不知道什么概念,google几下就懂了。以及range()方法里我还“改良”了一些,很有成就感。还有要夸一夸Eclipse,出错的地方会有提示,应该怎么做,点一下有些问题就解决了,最起码也有头绪了,Eclipse的提示让我学到了很多。这样一个一个代码敲下来,Thinking in Java这本书超难啃的啊哈哈。今天敲代码、解决error,信心up up!

其他:

像我这种不喜欢跟人家讲话,觉得人际交往很麻烦的人,不学学代码就真的找不到什么比较好的工作了。拯救内向的自己,行动中……

Day29 2018.8.8

Java学习内容:

终于学会怎么把自己建的method放到library里,之后在另一个project里import,使用之前建的method了。

[Project Buildmylibrary]—export—next—finish

[Project Test]—buildpath–add External Archives(现在只需要refresh [Reference libraries]就好了

Day30 2018.8.9

Java学习内容:

Thinking in Java 18% 讲了Access Control,就是那些public protected private之类的,还有两种方式引用其他的class的内容(组合+ 继承)
今天敲了代码了,基础知识有待加强,那些函数什么的。

java问题:

  1. default package;
  2. protected 用法

其他:

  1. 被toString()搞死了,才学的又忘了,以为是新建的method。组合不就是用那个constructor嘛。
  2. 不要脸地投了几个数据分析的实习,有一个刚投就打电话来,好丢脸,给人什么都只学点皮毛的印象。算了算了。

Day31 2018.8.10

Java学习内容:

复制了一下外国小朋友(15岁)的贪吃蛇代码,运行了一下,还没吃到小方块23333。贪吃蛇代码Github链接
我打算研究一下。我也不是非要找外国人的代码,就是一开始搜中文博客,复制粘贴下来不知道怎么运行,而且有问题啊,总是下划线,就youtube上搜教程了,对了这个15岁小朋友有一个一个小时多的看样子是保姆级的教程 Programming Snake in Java! (Full Tutorial),视频字太小暂时没看。

Day32 2018.8.11

Java学习内容:

贪吃蛇代码有两个java文件,今天先看了一个(RenderPanel.java),然后边改边理解代码,就是改一改颜色啊什么的。今天修改注释的代码大概知道了怎么用java画图。我把背景啊什么的颜色都换成随机颜色,比较有新鲜感,但是如果“蛇”的颜色和背景颜色冲突了就会看不清,以后再说。

Day33 2018.8.14

Java学习内容:

今天把STS、Maven下载了,创建了一个Maven项目。现在体会到Homebrew的好处了,下载东西真的方便。创建一个Maven项目的教程我觉得这个教程不错,虽然不大清楚他在干嘛,但是我一路复制粘贴下来也运行成功了。完整的教程是这个Spring Boot - Hello world example一共有8个步骤。

Step 1 - Maven project (创建Maven项目) ----------------------------------------------------------------------------------------------已完成

Step 2 - Jar dependencies (创建Jar 依赖?) -------------------------------------------------------------------------------------------已完成

Step 3 - Controller class (创建控制类?) ----------------------------------------------------------------------------------------------已完成

Step 4 - Main class (创建主类) ---------------------------------------------------------------------------------------------------------已完成

Step 5 - Project structure (创建项目框架) ----------------------------------------------------------------------------------------------已完成

Step 6 - Run application (运行应用) ----------------------------------------------------------------------------------------------------已完成

Step 7 - Packaging Spring Boot application as an executable jar (把这个Spring Boot应用 打包成一个可执行jar) ---------------已完成

Step 8 - Running executable jar from command line (从命令行运行该可执行jar) ---------------------------------------------------已完成

我也搞出个Hello Spring Boot!!啦!

Java学习笔记:

  1. http://localhost:8080

Day34 2018.8.15

今天搞了搞服务器啥的,免费一个月阿里云主机 & 免费一年Freenom域名。今天把FTP连接好了,就是FTP客户端连接没成功。我那个域名也PING成功了。
起因是要搞个微信小程序玩玩的,可惜还要备案什么的,好麻烦。以后再说吧

参考文章*

使用免费域名快速搭建网站 一 (域名和服务器篇);

阿里云的ecs服务器,创建ftp站点死于 fileZilla;

阿里云ECS 实例常用端口介绍;

使用DNSPod解析Freenom域名;

Day35 2018.8.16

今天看了些关于Spring关于Java的博客文章,感觉前路漫漫。做了一下Spring的第二个教程。以及阿里云那个服务器死活连不上ftp,网站上的远程登录倒是可以的。已在服务器安装ftp了。安全组也设置了,好烦,不弄了。

Day36 2018.8.17

今天学习量少,看了几篇讲Java IO的文章。

Day37 2018.8.18

看了几篇讲CLASSPATH的文章,懂了。Eclipse不用自己写CLASSPATH(但会自动生成一个CLASSPATH文件),命令行需要设置CLASSPATH,要不然编译器找不到你的Jar(自己创的库)。看了一篇讲ENUM枚举的,没大搞懂。

Day38 2018.8.19

看了几篇讲多态,Java编译过程结构的文章。搞懂了父类引用子类对象,就是animal a = new Cat()。有几篇文章写得挺好的。什么时候要把java.lang这些基本的Api(?)看一下。

Day39 2018.8.21

看了几篇讲内部类的文章

Day40 2018.8.22

今天做得不错,把之前不懂的知识点温故了一遍。看的时间也长些。感觉有了点信心。今晚看了点Annotations,没大搞懂。

Day41 2018.8.23

看到一篇我居然都能看懂的英文文章,讲annotations的Java Annotations tutorial with examples把他的其他文章也下载了看。

Day42 2018.8.24

同上

Day43 2018.8.25

试一下MacDown编辑Markdown文章,目前感觉不错。

Variable Type Explain
static variable: 变量名前有static的,在class里
instance variable: 变量名前没有 static的,在class里
local variable: 在method里,外界无法访问

参考文章Variables in Java

把LeetCode第一题(从排序数组中删除重复项)做好了。我把题目改成“换成新数组”了,我觉得原题得出新数组的长度没什么意思。看了一下stackoverflow上的,代码比较短,用的java.util.Set。没搞懂,运行出来了。

搞了会儿数组,敲了会儿代码,打算明天弄一下上面在这个(从排序数组中删除重复项),琢磨一下别人的代码;

Day44 2018.8.28

终于把从排序数组中删除重复项这道题做好了,也不要改题目了,单求新数组长度容易的,但是没有删除重复数据的话,无法得到新数组,原题输出是数组格式(即,新数组)。跟网上看到的什么快慢指针不一样,我看不懂什么快慢指针。反正我的代码也运行出来了。

反正我的Leetcode的代码都放在这里了

Day45 2018.8.31

这几天被《大明宫词》迷住了,没怎么学习;

前几天做了那个买卖股票的最佳时机 II,挺简单的,第一次接触一个叫‘贪心算法’的;

今天做了两题(leetcode):旋转数组&存在重复;旋转数组leetcode上运行出来和eclipse上不一样,不管了。存在重复这题做了很久,不过我没参考答案,两个for循环,j和i还有关系(i=j+1)。成就感满满。

Day46 2018.9.2

导入外部jar包。今天用的是 org.apache.commons.lang3.ArrayUtils ,用来添加减少数组中的元素听不错。然后把leetcode上“从排序数组中删除重复项”重新做了一遍,leetcode上好像不能import,反正我在eclipse上运行出来了,感觉不错。

Day47 2018.9.3

死于 leetcode“只出现一次的数字”,有思路,就是不知道怎么把思路转换为代码。假设第一对相等,数字是3(即有两个3),之后如果有相等的话,都把3带入。假设原数组为{2,1,2,1,4,4,9,3,3},到最后就是{2,2,2,2,2,2,9,2,2}了,然后删除重复。死于第一步,不知道怎么得出第一对的值。应该是关于break和continue。

Day48 2018.9.5

把break、continue、label的基础运作搞清楚了。leetcode那道题还是不会。

原来leetcode那道题(只出现一次的数字)要用到异或的概念,用异或的话代码看起来很简洁,也很容易理解。就是相同的数字异或会被抵消,只剩一个只出现一次的数字。异或每个数字只能出现一次,不能有重复,重复数字会被抵消

顺便接触了junit,junit应该是用来测试的吧,true就是运行正确,@test写在method前面,表示测试哪个,junit那个run类,除了需要测试的method名字要改一下,其他的不用改,要import什么根据eclipse提示来好了。

知道了foreach,这个的确很方便,节省代码;

Day49 2018.9.7

想用异或修改一下MySolution3(数组中存在重复)的,结果当数组中没有元素的时候,行不通,其他还好,明天再试试。

Day50 2018.9.8

MySolution3(数组中存在重复)通过,不用异或,看了一眼别人的,人家用的Arrays.sort(nums),先把数组排序,再使用一个循环,我之前用了两个循环,所以超时了。

接触hashset。突然觉得还是刷题学java比较好,遇到不懂的再学;

Day51 2018.9.9

leetcode“加一”的代码没写好

Day52 2018.9.10

leetcode“加一”的代码差不多要好了,就是边界哪里有点问题

Day53 2018.9.11

leetcode“加一”这道题真是搞死人,好不容易做出来了,eclipse上我自己搞了些数组,都成功了,测试数组【1,2,3】也变成【1,2,4】了,leetcode上居然是编译错误,也没提示哪里编译错误,算了,暂且当这道题过了吧。

Day54 2018.9.12

leetcode“移动零”,差不多算是好了,就是当数组里根本没有零的时候,也移动了数的顺序。额。熟悉了一下hasNext,获取用户输入的信息。

Day55 2018.9.13

把之前的“旋转数组”改了一下,语句变简洁了,但是leetcode和eclipse上的结果还是不一样,可能leetcode比较严格吧。

Day56 2018.9.14

看看别人的代码怎么做leetcode的。简洁多了

Day57 2018.9.18

看了几篇英文的文章,讲ArrayList和List的区别,还有ParallelSort。英文的读起来也不大吃力,而且我觉得讲得很容易懂。尝试安装Tomcat失败,无法访问8080

Day58 2018.9.25

以后还是刷题吧,中秋这几天一点也没看java的文章,明明下载了很多到kindle上的。今天刷了leetcode的(两数之和),没想到居然凭自己真本事通过了,好像是头一次。好开心!下一题是数独,char什么的还不懂

Day59 2018.9.28

了解了一点点char[][]

Day60 2018.9.29

不大会搞,2d Array 怎么把列也从小到大排序,或者其他的方法判断存在重复

Day61 2018.9.30

有效的数独,默写网上的code过程中,九格那里我自己又想出来方法了,网上那个余数除法有点难懂。自己写的那个四重循环我觉得还挺易懂的。老是抄人家的不甘心啊。不过现在稍微弄懂了那个余数除法的。行用整除(\),列用余数。比如第三行第四列,行为整除为3,列为余数为4,不过鉴于计算机起始数字为【0】,所以行为整除为2,列为余数为3.

Day62 2018.10.1

旋转图像,大体上的代码都弄好了,就是旋转起来有个数字会被新的数字替代,即被赋值两次。

Day63 2018.10.2

看了答案,四个数字一循环,循环两次,不知道第二次循环怎么搞的,那个j和i。这题跳过吧

Markdown语法(方便复制)


name age
LearnShare 12
Mike 32

你可能感兴趣的:(日记)