java 板


LINE

※ 引述《lueichun (no anonymous)》之铭言: : ※ 引述《qrtt1 (有些事,有时候。。。)》之铭言: : : 单纯概念练题的话, : : 用候捷早年放在网路上的 thinking in java 2/e 的 pdf : : 看完该章本文然後做它的习惯就行了。 : : 章节集中在 6, 7, 8 章。 : : 不过,不赶时间的话,还是有 4, 5 开始做吧。 : : 目录: : : https://i.imgur.com/xf50Cv8.png : : https://i.imgur.com/QwY0EYw.png : 我也想问类似的问题 结果被抢先了 所以我就借这标题问一下 : 就是我目前从事java开发的工作已经两年了 : 基本的语法大概都有印象 但是要具体描述自己到底哪里会 不会还是不太行 : 刚好我找到TonyQ大以前的文 提到做个检查表来检视: : 知道J2EE、J2SE、J2ME这三个领域的对象的差异 : 知道if-else、switch是什麽 : if-else常用 但switch几乎不会用到 不熟 : 知道for、while是什麽 : 都会用 其实大部分的问题在第 1 年後,应该不再是问题。 它们会被内化为反射动作,或是解决问题的直觉。 像基本语法的问题就不太该再问了,并且要随的新时代习得 lambda 语法 还有新的 api 例如,java 8 新 date/time api : 知道 API Document的使用方法 : 需要的时候会查 : 知道String有哪些函式、怎麽切割字串跟组合字串。 : 切割用split 组合用concat : 知道main的用途与main的参数用法 : main是jvm首先执行的方法 main的参数没用过 api document 要查其实不是那麽方便, 因为随着公司内专案建立的年代不同 library 冻结的版本不同 上网随意要 google 到对的版本的 api 不那麽容易 一个正常稍有规模的专案不会只有用 standard library 的部分 像是常见的 spring framework 或 hibernate 就有许多版本 配合流行很久的 ant ivy 或 maven 或 gradle 作相依管理工具 应该有机会直接透过 IDE 追入函式看到它的 source code 的, 当然 api doc 的 annoation 也在里面,IDE 会自然地带出 api document 不过一旦你对基本语法没有疑问,也渐渐能掌握 OOP 概念 与 Design Pattern 等等的想法, 你可能会觉得看 source code 是一件更加明确的事, 并且开始觉得看别人的 source code 其实并不可怕 比起对於『一时忘了改』就会过期的文件来说,source code 才是真理! : 知道static method怎麽设计 : 不会 只有用过math.random() integer.parseInt()这类方法 : 知道class跟instance method怎麽设计 : 工作上还没设计过 只有自己练习coding设计简单的 当一个东西你需要随着 class level 初始化时也需要用的 static 啊。 像 Jdbc Driver 就是典型的例子 : 知道Classpath是什麽,能引用第三方的套件。(通常是jar档) : classpath就是java档被编译後形成的class档 所在的路径 : 在eclipse新增dynamic web project时 会询问你class档要放哪 : 套件的话 ojdbc spring hibernate struts 1 都用过 : 但都只会基本功能 『现代化』一点的开发方式不会再自己加 jar 档了, 除非是有特别的需求,或维护 legacy project 才会这麽做的。 这反而是该改成用相依性管理工具。 : 知道什麽是IDE,并了解IDE提供开发流程中哪些协助,扮演什麽角色。 : 这个不太会讲 比起会讲这个,更希望你专注在优化你运用『开发工具』开发的流程 有些人明明有了 IDE 但却没用到 IDE 的优点, 仅作为一种华丽的编辑器程式使用着它,这样实在太浪费了。 热键记熟了,有没有调到最适合自己的状态? 共通的 coding style 的 formatter / editor config (line width) / code template / import orders / favorite static import 都设好了吗? 辅助你提昇昇产力的 plugin 或元件装了吗? : 2.资料结构基础 : 知道什麽是Array : 只知道中文叫阵列 长度是固定的... : 知道什麽是List (ArrayList、LinkedList) 除了复杂度,重点在结构的特性,这影响到你的应用场景。 如果你总是需要在 index 0 做 insert/delete 或在中间 insert/delete,与你只需要简单 append 的情况 会有不同的选择。 : 只会用get set size 知道arrayList预设长度是10 : arrayList会随着元素数量动态增减长度 其他的不会解释... : 知道什麽是Map (HashMap、TreeMap的不同点?) : 一样只会用基本的方法 : 知道如何浏览Map及其他Collection的浏览法(iterator()) : 只会forEach 另外知道forEach是语法蜜糖 : 编译器会把forEach转成iterator()的格式 在这新的时代,你更该关注 stream api 啊 :P : 3.演算法基础 : 知道什麽是演算法 : 讲不出来Orz : : 有时间复杂度的概念 : 有空间复杂度的概念 : 知道什麽叫递回 (实务上偶尔会有机会用到) : 太久没用都忘光光QQ 看得我都要『回』『光』返照了 orz.. : : 对基本的演算法有一定了解 : 基本排序法(buble、selection、insertion、quick、merge) : 动态规划(Dynamic Programming) : 以上都忘光光... 演算法的种类不少,若能对复杂度有概念是挺好的。 实际哪类都可能应用到,若不是为了要面试,而是要实作应用的东西。 那就不用太钻基础元件设计的演算法, 特别是别人都已经整包写好的排序什麽的。 : 4.Java进阶应用 : 能用java.text.* 做日期的格式化、数字的格式化 : 能用java.io.* 做文字档的读档、存档 (java.util.Scanner也行) : 能用 java.lang.Math 做一些数学运算 : 这些都是要用到时才会去GOOGLE 由 console 输入文字这东西太少用了, 直接手写读档其实也没想像中的多,即使有,也用用. Apache Commons IO 系列,并记得现代的写法可以 try-resource : 知道什麽是Jar档,并了解class是能够被反编译(de-compile)的。 : 一种java档的压缩档 若要在专案引入框架或其他工具 : 常常需要引入jar档 class是可以被反编译 但我几乎没做过o.o 当然是装 IDE plugin 做啊。 : 知道什麽是 JDBC ,能对资料库操作有基本了解。 : 一种让程式跟资料库得以连接起来的介面 : 各家资料库厂商实作了这个介面 并打包成jar档 只要再专案引入jar档 : 即可将专案连接到资料库 JDBC 的部分 1. 它的 index 是由 1 起算的,这无敌重要。 2. 记得要有正确使用 connection pool validation string / validation interval / ... 只有单一 connection 是难以逼出效能的, 并且断线重连的处理也不好做。 3. 使用 transaction 前,请确定 db 有支援,不然就没戏了 4. 如果是新专案,请开始以 UTC+0 作为资料库时区, 之後要上云比较方便 (旧专案就继续 work around 吧) : 能熟悉使用IDE,减少多余开发时间在制造错误跟重复的行为上。 : 有时候同事会说我对工具不熟悉 甚至全选 复制的动作可以用滑鼠 : 点两下全选再复制 而非用滑鼠拖曳再复制都是同事教的 : 能了解在Object这个基底类别中,toString、equals、hashcode : 这三个method扮演什麽样的角色。 : toString用来转型成字串 equals用来比较物件的值 其他的不会= = 要知道这些东西都能用 IDE 产生, 或透过 Annotation Processing Tool 产生。 : 1.Java高阶应用 : : 会利用 java.net.* 处理网路上的沟通 : (ex. Socket、ServerSocket,也可以用URL抓抓网页之类) : 会利用 javax.swing.* 、 java.awt.* (或者SWT)做GUI的处理 : 没做过 写 Web 就写 Spring Boot 实作网路底层就靠 Netty,如果要实作 RPC 那就要考虑学一下 gRPC 了 GUI .... 完全忽略吧,除非那是你的真爱。 : 了解什麽是介面,并能利用介面撰写程式。 : 没有设计过介面 只有拿既有的程式来改 : 了解什麽是 Design Pattern,并且能举出java api中 : 使用Pattern的实例。 interface 只是个语法,它具体意义是『事先约定』好的事项 若都实作好,那依约定可以有可预期的行为。 像是 JDBC 在 standard libary 内,其实只有 interface 而已。 不同的 jdbc driver 有着不同的实现。 : 我只知道java io用到装饰者模式 : 能以J2SE基础切入J2EE的 JSP 网页应用程式。(有兴趣可再深入J2EE : ) JSP ...(不想谈他) 现在多为只出 restful api,前端另外搞不管是 reactjs 或 angularjs 直接写 jsp 页面转来转去的渐渐减少了,前後端分离,前端也能独立做测试 : JSP会基本的语法 知道如何将後端传过来的值写在JSP档上 至少要会搞定 servlet container 的 encoding 还有知道 get, post 的不同啊 : 能以J2SE基础编写J2ME的应用程式(MIDP) : 不会 现在是 Android 的天下了,不用提这个历史遗迹啊@@ : 有能力依需求编写一个以上的Thread,并考虑到Thread-safe的问题。 : 工作上没遇过多执行绪的状况 都忘了QQ 你有在写 web 一定有多执行绪,只是你是参与其中,并非制造新的 thread。 若是直接实作 servlet 那麽就有机会遭遇 thread safe 的问题。 或接续先前的 date format,要知道 SimpleDateFormat 这类东西 并不是 thread safe 的,所以你若要写个公用函式来给 servlet/jsp 呼叫,记得每次都要 new 一个新的,才不会有 race condition 发生 : 2.工具部份 : 能了解 Framework 是什麽,并了解目前能见到的Framework的目标。 : 只有碰过Spring hibernate struts基本用法 不敢说会 : 也不敢说了解框架是什麽 你得了现一下新的趋势,这检查表旧了,你得找替代的问题放上去。 : 能了解 Ant 这个建立开发的自动化流程的工具 : 没用过 ant, maven, gradle 常用的都要摸一下啊 : -------------------------------------------------------------------------- : 我目前感觉就是这边会一点 那边会一点 但是都不熟 也不专精 : 我去书店 图书馆找书来看 要嘛觉得太简单 要嘛觉得太难 : thinking in JAVA 或是 java how to program都看得头昏脑胀 你要的是放较多的心力,选个主轴刻个喜欢的 side project 出来 由 side project 会用到的东西,去把它的周边都学一学。 得满足自己『让事情发生』的能力,而不是让自己得检核表获得高分。 所以,基本语法、语言的教学书籍,帮不上你太多的。 : 就算看到自己可以接受的 比方说Head first JAVA : 也不知道自己会不会不小心又看到太细或跟工作无关的地方 : 所以我现在想继续自学 实在是找不到方向 : 如果是要能提升工作能力 我目前想到的方法是 : 自己重制一个我目前工作正在进行的专案 : 不知道可不可行 希望好心人的指点 感谢 是个好方向,那就开始动工吧。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.139.60
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1511025050.A.0C6.html
1F:推 swallowcc: 推这篇 11/20 10:09
2F:推 yinxuanh: 推 11/20 22:31
3F:推 v9290026: 良心推 11/22 17:49







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP