发表于: 2018-03-22 10:23:13
3 590
Fifth day
Unconsciously, it has been the fifth day! Unbelievable ...
昨天针对英文书籍以及JDK文档看了些基础内容。对JDK大体的结构了解了,类似于网络路径的包管理方式(www.google.com <=> java.lang.xxx),估计James Gosling 老头就这看了http路径才这么设计的。对package概念做了进一步理解,以及保护性属性。
SQL 这边主要是找回root密码,中间删除过mysql,重装过brew,删除过brew路径,oh my god!昨天到底对那台电脑做了什么,只不过是 mysql 密码忘了 ...
算法,对插入排序又通过java实现了一遍,调试了一会儿才调试正确,还是基础不扎实啊
Spring boot 安上了,init 了一个基础项目,看了下目录结构:整体分为项目和测试,然后在各自细分
今天早上在家里找到了 Effective Java ,哈哈GL去年送给我的,小伙子背着走了好久送给了我这本书,这家伙肯定偷懒了,崭新没看,这次我给他画画重点。大概浏览了一下,这个系列的每一门语言基本上都有,应该还不错,不管了,有时间就看看,反正这么多条都是independent,一点一点学习积累。
今日任务:
0. 补一下昨天没完成的内容:多线程、Spring boot 例子、表的级连接
1. API 阅读(Thread)
2. 多线程
3. Spring 基础项目试试
4. SQL (Java 连接 mysql)
5. 阅读书籍
6. Java 菜鸟示例代码,这部分内容蛮多,类似题海战术
学习报告:
学习内容分为三部分:Java部分、SQL部分、Spring boot、阅读
第一部分: Java 部分
1. 线程学习(https://www.ibm.com/developerworks/cn/education/java/j-threads/j-threads.html),这是IBM一个小专栏,不知道是真IBM还是假IBM,看看有用就好。
1.1 为什么使用线程?
a. UI 响应更快
b. 高效利用多核处理器系统
c. 简化建模
d. 执行异步操作和后台处理
1.2 多线程的使用有风险:保证对数据的同步访问(synchronized & volatile)
1.3 线程不是韩信点兵,多多益善,要考虑到当前的资源问题,尤其是单核处理器
1.4 线程例子:计算素数的例子,反应了半天才明白怎么一个回事。。。
1.5 Thread API https://docs.oracle.com/javase/6/docs/api/, Thread 线程继承自Object,实现了Runnable接口
1.6 永远不要假设一个线程会在另一个线程之前执行某些操作,除非你已经使用了同步强制设定了一个顺序
1.7 不过运行程序验证发现,当两个想成加入的主线程中后,这两个线程执行不是交叉的,什么原因???难道新的JVM做了优化,不在线程之间切换,或者是某个时间片的原因?
IBM的结果是
增加线程任务的时间试试:结果出来了,MD IBM的文章鬼,估计那时没有优化吧,现在的处理器目前处理能力比之前大,在这几行打印的任务中一个时间片就搞定了,所以没有必要切线程了,只能这么理解。以后有机会深层次验证下。
IBM 这篇文章内容较多,明天继续看。
2. 菜鸟里面有些代码,照着敲了几个,主要是关于线程的,感觉设计的不太好,罗里吧嗦的
第二部分 SQL 部分
1. Join
1.1 创建Persons表,设置主键 Id_P
1.2 创建 Orders 表,主键为Id_O,查询订购人和订单号
select Persons.LastName, Persons.FirstName, Orders.OrderNO FROM Persons, Orders Where Person.Id_P = Orders.Id_P;
1.3 通过 join - inner 实现上述查询 和 join 查询结果一样的
select Persons.LastName, Persons.FirstName, Orders.Orders.OrderNo From Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P Order by Persons.LastName;
1.4 LEFT JOIN & RIGHT JOIN
LEFT JOIN 会列出左侧表的所有数据,但是不会关心右侧表的数据,如下所示Persons中的每条数据都会展示出来,无论在Orders表中有没有响应的记录,现实使用中有什么用???
select Persons.LastName, Persons.FirstName, Orders.OrderNO From Persons LEFT JOIN Orders ON Persons.Id_p = Orders.id_p Order by Persons.LastName;
RIGHT JOIN 雷同
select Persons.LastName, Persons.FirstName, Orders.OrderNo From Persons RIGHT JOIN Orders ON Persons.Id_p = Orders.Id_P Order by Persons.LastName;
1.5 全连接一直报错,明天再看看什么原因:
SQL 到这里高级部分应该差不多了,后面还有一些函数多练习练习,还有查询的一些地方也多练习下。
1.6 卡在JDBC这里了,我要好好看看。
1. Intro to Java programming IBM(英文:https://www.ibm.com/developerworks/learn/java/intro-to-java-course/index.html 中文:https://www.ibm.com/developerworks/cn/java/intro-to-java-course/index.html) 这是今天是看多线程的部分内容的时候发现的这么个教程,估计google官方也应该有类似的可以去了解下,基础入门课程,IDE 是 Eclipse,最后用的是IBM的云构建应用。最近发现国外的java book 动辄六七百页,啧啧啧。另外国外的书籍上的示例代码一般都在GitHub上,可以到上面看看。
思想汇总:
1.连着几天看的内容比较多,吃不消了优点,消化消化
2. 今天看的线程的里面概念看的多一些,理解起来相对难一些
3. Java 基础资料找了不少了,抽个地方汇总一下,做下筛选
4. 今天在看Thread,还有sql中的东西的时候,通过查看API文档,慢慢阅读文档里面的东西,结构基本掌握了。
5. 寻找素数的算法那个地方卡了一个小时,需要有点数论的知识,不好弄那个地方
问题汇总:
1. JDBC 怎么个意思?驱动是啥玩意儿?怎么个驱动法?纠结
明日计划:
1. 先把JDBC搞明白
2. 完成昨天没有完成的任务
3.IBM 线程部分
4. SQL 和 JDBC 有个教程看看
5. 找个项目看看
6. Spring boot 一直没轮上做啊 .... ....
DONE
评论