1. Урок 1.00:06:54
    Why Yet Another Java Course?
  2. Урок 2.00:10:31
    Course Structure & UI Controls for Site Navigation
  3. Урок 3.00:03:09
    Chapter Introduction
  4. Урок 4.00:06:44
    What is Java & Who is Using It?
  5. Урок 5.00:07:37
    Story behind Java's Creation ~ A Brief History
  6. Урок 6.00:06:19
    Compilation
  7. Урок 7.00:08:39
    Platform Dependency + Demo
  8. Урок 8.00:07:54
    Interpreter
  9. Урок 9.00:05:40
    Platform Independence in Java + Demo
  10. Урок 10.00:12:30
    Java Virtual Machine
  11. Урок 11.00:08:35
    An Overview of Java SE
  12. Урок 12.00:19:14
    Installing JDK 10 on Windows
  13. Урок 13.00:04:47
    Installing JDK 10 on Mac
  14. Урок 14.00:06:53
    Installing JDK10 on Linux
  15. Урок 15.00:09:21
    Setting Classpath Environment Variable
  16. Урок 16.00:16:17
    Writing First Java Program + Demo
  17. Урок 17.00:02:41
    Conclusion
  18. Урок 18.00:03:20
    Chapter Introduction
  19. Урок 19.00:12:59
    Class & Objects
  20. Урок 20.00:17:14
    Demo: Absolute Java Basics
  21. Урок 21.00:07:22
    Variables: Introduction
  22. Урок 22.00:05:31
    Variable Kinds
  23. Урок 23.00:02:01
    Variables: Primitive Types
  24. Урок 24.00:14:18
    Primitive Variables: Integers + Demo
  25. Урок 25.00:05:27
    Primitive Variables: Floating-point Numbers + Item 48
  26. Урок 26.00:11:28
    Primitive Variables: Character Data Type + Demo
  27. Урок 27.00:07:41
    Primitive Variables: Boolean Data Type + Demo
  28. Урок 28.00:19:26
    Variables: Type Casting + Demo
  29. Урок 29.00:03:01
    Variables: Object References
  30. Урок 30.00:07:42
    Statements + Demo
  31. Урок 31.00:11:26
    Arrays + Demo
  32. Урок 32.00:07:23
    2D Arrays
  33. Урок 33.00:05:21
    3D Arrays + Demo
  34. Урок 34.00:20:52
    Methods: Introduction + Demo
  35. Урок 35.00:21:28
    Method Types + Demo
  36. Урок 36.00:18:19
    How Data is Passed to Methods in Java? + Demo
  37. Урок 37.00:10:28
    Method Overloading + Demo
  38. Урок 38.00:08:40
    Methods: varargs + Demo
  39. Урок 39.00:16:13
    Constructors + Demo
  40. Урок 40.00:05:18
    this Reference + Demo
  41. Урок 41.00:16:22
    Demo: Student Example
  42. Урок 42.00:09:46
    Demo: Reinitializing Object References ~ More Brainstorming!
  43. Урок 43.00:21:44
    Review of Exercise 1 Solution with Best Practices
  44. Урок 44.00:03:39
    Conclusion
  45. Урок 45.00:03:33
    Chapter Introduction
  46. Урок 46.00:04:10
    Operators
  47. Урок 47.00:22:14
    Arithmetic Operators + Demo
  48. Урок 48.00:08:56
    Arithmetic Operation Rules + Demo
  49. Урок 49.00:14:46
    Demo: Comparison Operators
  50. Урок 50.00:28:15
    Logical Operators + Demo
  51. Урок 51.00:19:49
    Car Price Estimator ~ Coding Exercise for Comparison & Logical Operators
  52. Урок 52.00:06:07
    Car Price Estimator - Exercise Solution
  53. Урок 53.00:09:25
    Bitwise Operators + Demo
  54. Урок 54.00:05:38
    Bit Shift Operators
  55. Урок 55.00:18:06
    Control-flow: Demo: if-statement
  56. Урок 56.00:18:06
    Control-flow: switch + Demo
  57. Урок 57.00:03:37
    When is switch Preferred?
  58. Урок 58.00:07:27
    Control-flow: Ternary + Demo
  59. Урок 59.00:11:58
    Control-flow: for Statement + Demo
  60. Урок 60.00:21:55
    Demo: More for Statement ...
  61. Урок 61.00:18:43
    Demo: for-each Statement (+ discussion on Item 46)
  62. Урок 62.00:05:17
    Variable Scope
  63. Урок 63.00:03:27
    Control-flow: while Statement
  64. Урок 64.00:09:17
    Control-flow: break Statement + Demo
  65. Урок 65.00:05:09
    Control-flow: continue + Demo
  66. Урок 66.00:27:02
    Recursion + Demo
  67. Урок 67.00:05:56
    Conclusion
  68. Урок 68.00:02:30
    Chapter Introduction
  69. Урок 69.00:09:22
    Java API + Item 47 (Know and use the libraries)
  70. Урок 70.00:16:42
    Accessing Packages + Demo
  71. Урок 71.00:29:40
    Creating Packages & Classpath Management + Demo
  72. Урок 72.00:04:19
    Naming Packages
  73. Урок 73.00:05:45
    Strings: Introduction
  74. Урок 74.00:19:47
    String Class + Demo
  75. Урок 75.00:15:53
    String Pool & Interning + Demo
  76. Урок 76.00:03:30
    String Immutability
  77. Урок 77.00:10:33
    String Concatenation + Demo
  78. Урок 78.00:03:15
    Item 51: String Concatenation Performance
  79. Урок 79.00:04:51
    Escape Sequences + Demo
  80. Урок 80.00:09:10
    Access Levels
  81. Урок 81.00:10:59
    Information Hiding - Item 14: Use accessor methods, not public fields + Demo
  82. Урок 82.00:03:50
    Information Hiding - Item 13: Minimize the accessibility of classes and members
  83. Урок 83.00:05:37
    Demo: Student Example with Information Hiding
  84. Урок 84.00:07:03
    Conclusion
  85. Урок 85.00:02:29
    Chapter Introduction
  86. Урок 86.00:07:11
    Static Methods + Item 4: Enforce noninstantiability with a private constructor
  87. Урок 87.00:08:31
    Math Class + Demo
  88. Урок 88.00:07:26
    Static Variables + Demo
  89. Урок 89.00:07:45
    Initializers: Static & Instance + Demo
  90. Урок 90.00:09:45
    final Variable + Demo
  91. Урок 91.00:10:23
    Constant Variables + Demo
  92. Урок 92.00:10:47
    Boxed Primitives
  93. Урок 93.00:04:26
    Autoboxing + Demo
  94. Урок 94.00:11:38
    Item 49: Prefer Primitives to Boxed Primitives + Demo
  95. Урок 95.00:10:05
    Coding Conventions: Naming (Item 56: Use generally accepted naming conventions)
  96. Урок 96.00:07:32
    Coding Conventions: Structuring Programs (Item 45: Minimize the scope of local)
  97. Урок 97.00:06:40
    Coding Conventions: Stylistic + Demo
  98. Урок 98.00:13:13
    Coding Conventions: Comments + Demo
  99. Урок 99.00:07:48
    Conclusion
  100. Урок 100.00:10:16
    thrill.io ~ A Social Polymarking App!
  101. Урок 101.00:04:16
    Case Study
  102. Урок 102.00:08:28
    Inheritance
  103. Урок 103.00:12:28
    Access Modifiers & Inheritance + Demo
  104. Урок 104.00:04:09
    IS-A Test
  105. Урок 105.00:12:36
    Polymorphism + Demo
  106. Урок 106.00:10:08
    Casting Objects &
  107. Урок 107.00:07:28
    instanceof Operator + Demo
  108. Урок 108.00:14:50
    Type Safety
  109. Урок 109.00:17:04
    Method Overriding + Demo
  110. Урок 110.00:14:18
    Method Binding + Demo
  111. Урок 111.00:03:04
    What is Not Overridden? (final Method is one of them) + Demo
  112. Урок 112.00:07:53
    Demo: Fields are Not Overridden
  113. Урок 113.00:08:34
    Object Class + Demo + Item 10: Always override toString
  114. Урок 114.00:05:31
    Constructor Chaining + Demo
  115. Урок 115.00:07:04
    Preventing Inheritance
  116. Урок 116.00:06:15
    Conclusion
  117. Урок 117.00:06:28
    New Requirement: thrill.io for Kids
  118. Урок 118.00:05:59
    Abstract Classes & Methods + Demo
  119. Урок 119.00:05:22
    Item 20: Prefer class hierarchies to tagged classes
  120. Урок 120.00:04:09
    New Requirement: Sharing Bookmarks
  121. Урок 121.00:18:45
    Multiple Inheritance & Diamond Problem
  122. Урок 122.00:08:09
    Interfaces
  123. Урок 123.00:11:24
    More on Interfaces
  124. Урок 124.00:07:52
    Demo: Interfaces
  125. Урок 125.00:07:57
    Interfaces: A Conceptual View
  126. Урок 126.00:03:21
    Item 18: Prefer interfaces to abstract classes
  127. Урок 127.00:06:45
    Item 52: Refer to objects by their interfaces
  128. Урок 128.00:06:04
    Marker Interfaces
  129. Урок 129.00:18:52
    Cloneable Interface + Demo
  130. Урок 130.00:04:18
    default Methods (Java 8) + Demo
  131. Урок 131.00:10:10
    Recap of default Methods
  132. Урок 132.00:11:49
    default Methods: Other Benefits + Demo
  133. Урок 133.00:12:38
    Static Methods in Interfaces + Demo
  134. Урок 134.00:02:11
    Conclusion
  135. Урок 135.00:05:32
    Introduction
  136. Урок 136.00:11:01
    Installing Eclipse
  137. Урок 137.00:11:14
    Writing a Java Program in Eclipse
  138. Урок 138.00:05:27
    Eclipse Build Process
  139. Урок 139.00:10:35
    Importing Demo Code
  140. Урок 140.00:10:31
    Source Code Navigation
  141. Урок 141.00:02:47
    Automatic Source Code Cleaning & Generation
  142. Урок 142.00:17:36
    Code Refactoring
  143. Урок 143.00:18:04
    Using Eclipse Debugger
  144. Урок 144.00:00:44
    JUnit & Debugging
  145. Урок 145.00:03:59
    Conclusion
  146. Урок 146.00:06:56
    Project Introduction
  147. Урок 147.00:12:06
    MVC Architecture
  148. Урок 148.00:12:34
    Implementing Entities
  149. Урок 149.00:04:51
    Implementing Manager Classes - Demonstrates Singleton Pattern!!
  150. Урок 150.00:18:41
    Implementing Constant Exporting Classes
  151. Урок 151.00:05:41
    Implementing Data Store
  152. Урок 152.00:09:15
    Implementing Dao Classes
  153. Урок 153.00:15:55
    Launching the Application
  154. Урок 154.00:19:42
    Implementing User Bookmarking Feature
  155. Урок 155.00:19:02
    Implementing Kid-Friendly Eligibility Criteria Using TDD
  156. Урок 156.00:13:32
    Marking Bookmarks as Kid-Friendly
  157. Урок 157.00:19:09
    Implementing Sharing Feature: Part 1 (Implementing Shareable Interface)
  158. Урок 158.00:08:29
    Implementing Sharing Feature: Part 2 (View, Controller and Manager)
  159. Урок 159.00:08:33
    Introduction
  160. Урок 160.00:09:37
    Lifetime of a Type
  161. Урок 161.00:10:08
    Lifetime of a Type: Class Loading
  162. Урок 162.00:17:51
    Lifetime of a Type: Linking
  163. Урок 163.00:07:56
    Demo: Lifetime of a Type
  164. Урок 164.00:06:21
    Reflection
  165. Урок 165.00:12:45
    Accessing Class Object
  166. Урок 166.00:06:34
    Demo: Reflection
  167. Урок 167.00:10:50
    Runtime Data Areas
  168. Урок 168.00:06:56
    Method Area & Heap
  169. Урок 169.00:08:47
    Method Table
  170. Урок 170.00:07:15
    Garbage Collection: Introduction
  171. Урок 171.00:10:09
    Garbage Collection Algorithms
  172. Урок 172.00:07:44
    GC: Generational Collections
  173. Урок 173.00:06:26
    Demo: Tuning Heap & Analyzing GC Cycles
  174. Урок 174.00:05:49
    Item 6: Eliminate Obsolete Object References
  175. Урок 175.00:06:04
    Stack
  176. Урок 176.00:17:58
    Stack Frame
  177. Урок 177.00:08:05
    Instruction Set: invokespecial & invokevirtual + Demo
  178. Урок 178.00:03:05
    Conclusion
  179. Урок 179.00:15:01
    Chapter Introduction
  180. Урок 180.00:09:41
    Demo: Exceptions & Exception Handling
  181. Урок 181.00:10:10
    Demo: Multiple Exceptions & Polymorphically Referencing Exceptions!!
  182. Урок 182.00:11:54
    Checked & Unchecked Exceptions + Demo
  183. Урок 183.00:15:11
    finally Block + Demo
  184. Урок 184.00:07:24
    try-with-resources Statement + Demo
  185. Урок 185.00:12:50
    Demo: Suppressed Exceptions
  186. Урок 186.00:09:21
    Demo - Best Practices: Creating New Exceptions (Items 58 & 65)
  187. Урок 187.00:07:15
    Demo - Best Practices for Capturing Failure Information (Item 63)
  188. Урок 188.00:06:23
    Demo - Item 61: Throw exceptions appropriate to the abstraction
  189. Урок 189.00:10:08
    Exceptions: More Advice ... (Items 57, 59, 60, 62, and 38)
  190. Урок 190.00:09:20
    Assertions
  191. Урок 191.00:06:09
    Demo: Assertions
  192. Урок 192.00:06:33
    Conclusion
  193. Урок 193.00:19:42
    Chapter Introduction
  194. Урок 194.00:06:34
    Character Encoding + Demo (Prerequisite)
  195. Урок 195.00:05:51
    Stream IO
  196. Урок 196.00:19:58
    Byte Streams
  197. Урок 197.00:04:08
    Reading Byte-Oriented Files Efficiently + Decorator Pattern + Demo
  198. Урок 198.00:09:40
    Character Streams
  199. Урок 199.00:10:53
    Reading & Writing Text Efficiently
  200. Урок 200.00:13:04
    Project Extension: Reading User & Bookmark Data from Text Files (Demo)
  201. Урок 201.00:09:39
    Project Extension: Downloading WebLinks & Writing to Disk (Demo)
  202. Урок 202.00:14:40
    Demo: Reading User Input from Console using BufferedReader & Scanner
  203. Урок 203.00:17:35
    The File Class + Demo
  204. Урок 204.00:12:05
    Serializing Java Objects + Demo
  205. Урок 205.00:03:36
    Deserialization & Versioning + Demo
  206. Урок 206.00:07:18
    Demo: Decoding with Compatible Encoding Scheme
  207. Урок 207.00:07:36
    Conclusion
  208. Урок 208.00:06:32
    Chapter Introduction
  209. Урок 209.00:03:32
    Collection Interface
  210. Урок 210.00:06:13
    List Interface
  211. Урок 211.00:16:17
    ArrayList - Introduction
  212. Урок 212.00:19:19
    Demo: ArrayList
  213. Урок 213.00:10:37
    Iterator + Demo
  214. Урок 214.00:10:40
    List Iterator + Demo
  215. Урок 215.00:09:37
    LinkedList
  216. Урок 216.00:09:48
    Queue & Deque Interfaces
  217. Урок 217.00:09:38
    ArrayDeque + Demo
  218. Урок 218.00:14:52
    Hash Table
  219. Урок 219.00:05:22
    Set Interface & HashSet + Demo + Overriding hashCode & Equals (Item 9) + Item 52
  220. Урок 220.00:09:05
    LinkedHashSet + Demo
  221. Урок 221.00:18:04
    SortedSet & NavigableSet
  222. Урок 222.00:09:47
    TreeSet (Comparable & Comparator) + Demo
  223. Урок 223.00:08:34
    Demo: More TreeSet ~ Exploring NavigableSet Methods
  224. Урок 224.00:13:39
    Map Interface
  225. Урок 225.00:07:36
    Demo: HashMap + Excercise
  226. Урок 226.00:17:43
    Demo: Beware of Creating Mutable Keys
  227. Урок 227.00:10:19
    LinkedHashMap + Demo
  228. Урок 228.00:19:55
    SortedMap, NavigableMap and TreeMap + Demo
  229. Урок 229.00:08:24
    Demo: Arrays Class
  230. Урок 230.00:16:35
    Demo: Arrays Class (Part 2) ~ Parallelized Operations from Java 8
  231. Урок 231.00:05:19
    Demo: Collections Class
  232. Урок 232.00:08:36
    Best Practice: Return empty arrays or collections instead of nulls (Item 43)
  233. Урок 233.00:12:25
    Conclusion - A Quick Summary
  234. Урок 234.00:08:34
    Chapter Introduction ~ Motivation & Agenda
  235. Урок 235.00:15:56
    Generic & Parameterized Types
  236. Урок 236.00:13:14
    Demo: Creating Generic Types
  237. Урок 237.00:09:51
    Project Extension: Replacing Arrays with ArrayLists (Part 1)
  238. Урок 238.00:11:16
    Project Extension: Replacing Arrays with ArrayLists (Part 2)
  239. Урок 239.00:12:15
    Bounded Type Parameter + Demo
  240. Урок 240.00:10:11
    Item 23: Don’t use raw types in new code + Demo
  241. Урок 241.00:07:17
    Unbounded Wildcard + Demo
  242. Урок 242.00:15:18
    Invariance + Demo + Item 25: Prefer lists to arrays
  243. Урок 243.00:20:47
    Generic Methods (Items 26 & 27: Favor generic types/methods)
  244. Урок 244.00:11:24
    Demo: Generic Methods & Generic Constructors
  245. Урок 245.00:12:45
    Bounded Wildcards: Motivation + Demo
  246. Урок 246.00:15:27
    Bounded Wildcards + Item 28: Use bounded wildcards to increase API flexibility
  247. Урок 247.00:04:46
    Demo: Bounded Wildcards
  248. Урок 248.00:11:59
    Generics Restrictions
  249. Урок 249.00:09:19
    Conclusion - A Quick Summary
  250. Урок 250.00:17:10
    Chapter Introduction
  251. Урок 251.00:21:58
    Nonstatic Member Classes + Demo
  252. Урок 252.00:07:44
    Anonymous Classes + Demo & Item 21 ~ About Function objects
  253. Урок 253.00:15:14
    Local Classes + Demo
  254. Урок 254.00:04:37
    Static Member Classes + Demo + Item 22: Favor Static Member Classes
  255. Урок 255.00:06:25
    Variable Scope with Nested Classes
  256. Урок 256.00:10:26
    Conclusion - A Quick Summary
  257. Урок 257.00:12:35
    enums: Motivation & Introduction + Item 30: Use enums instead of int constants
  258. Урок 258.00:06:09
    Enum Class + Demo
  259. Урок 259.00:04:17
    enums with State & Behavior + Demo
  260. Урок 260.00:12:18
    Nested enums + Demo
  261. Урок 261.00:11:12
    Project Extension: Converting Constant Exporting Classes to Enums
  262. Урок 262.00:08:14
    enums with Constant-specific Behavior + Demo
  263. Урок 263.00:07:53
    Chapter Introduction ~ Motivation & Agenda
  264. Урок 264.00:14:41
    Threads: Introduction
  265. Урок 265.00:12:56
    Demo: Launching Threads and Making them to Sleep!
  266. Урок 266.00:13:29
    Demo: Thread Naming, Prioritization and Joining + Item 73 (Avoid thread groups)
  267. Урок 267.00:10:51
    Race Condition + Demo
  268. Урок 268.00:10:46
    Synchronization + Demo + Item 66: Synchronize access to shared mutable data
  269. Урок 269.00:09:30
    Java Memory Model (JMM)
  270. Урок 270.00:17:55
    Volatile Variables + Demo
  271. Урок 271.00:08:42
    Atomic Variables + Demo
  272. Урок 272.00:14:45
    Synchronization Best Practices (+ Item 67: Avoid excessive synchronization)
  273. Урок 273.00:21:55
    Thread Cooperation & Management + Demo
  274. Урок 274.00:23:52
    Demo: wait & notify
  275. Урок 275.00:26:00
    Thread Interruption + Demo
  276. Урок 276.00:05:49
    Explicit Locks (Reentrant Lock) + Demo
  277. Урок 277.00:16:23
    Item 69: Prefer concurrency utilities to wait and notify
  278. Урок 278.00:13:41
    Executor Framework + Demo (Item 68: Prefer executors and tasks to threads)
  279. Урок 279.00:10:20
    Executor Service & Future
  280. Урок 280.00:11:43
    Demo: ExecutorService & Future
  281. Урок 281.00:19:21
    Tasks with Time Limits + Demo
  282. Урок 282.00:21:04
    Project Extension: Downloading Web Links Concurrently
  283. Урок 283.00:01:56
    Project Extension: Implementing Background Job to Download Web Links
  284. Урок 284.00:12:51
    Agenda
  285. Урок 285.00:24:31
    Background ~ epoch, UTC, Timezone ...
  286. Урок 286.00:09:53
    Legacy API ~ Date & Calendar Classes + Demo
  287. Урок 287.00:22:44
    New Date & Time API ~ Introduction
  288. Урок 288.00:15:13
    Demo: New Date & Time API
  289. Урок 289.00:10:31
    Database Introduction & Chapter Agenda
  290. Урок 290.00:25:16
    Installing MySQL Database & MySQL Workbench
  291. Урок 291.00:17:38
    Database Design & Normalization
  292. Урок 292.00:25:30
    Database Design using MySQL Workbench
  293. Урок 293.00:09:11
    Project Ext.: Creating Database via CREATE & INSERT Queries + Storage Engines
  294. Урок 294.00:19:28
    Installing JDBC Driver
  295. Урок 295.00:20:51
    Writing SELECT Queries with Multiple Tables, GROUP BY, ORDER BY, etc.
  296. Урок 296.00:14:05
    Project Extension: Loading Data from Database via JDBC API
  297. Урок 297.00:08:45
    Project Extension: Saving Bookmarking Data via INSERT Queries
  298. Урок 298.00:13:41
    Project Extension: ALTER Query & Saving Kid-Friendly Details via UPDATE Queries
  299. Урок 299.00:10:24
    Functional-style Programming: Motivation & Chapter Agenda
  300. Урок 300.00:13:30
    Lambdas ~ Introduction
  301. Урок 301.00:25:11
    Demo: Lambdas
  302. Урок 302.00:14:34
    Demo: Capturing Variables from Lambdas ~ Closures!
  303. Урок 303.00:13:01
    Predicate, (Bi) Function, and Unary Operator Interfaces + Demo
  304. Урок 304.00:08:53
    Demo: Consumer, Supplier, and Primitive Functional Interfaces
  305. Урок 305.00:23:42
    Demo: Method References
  306. Урок 306.00:07:04
    Demo: Constructor References
  307. Урок 307.00:18:51
    Streams + Demo
  308. Урок 308.00:10:35
    Stream Operations: An Overview
  309. Урок 309.00:18:28
    Demo: Slicing a Stream
  310. Урок 310.00:23:11
    Demo: Stream Matching Operations
  311. Урок 311.00:23:35
    Demo: Stream Finding Operations & Optional Class
  312. Урок 312.00:10:53
    Stream Reduction Operations + Demo
  313. Урок 313.00:12:02
    Mutable Reduction with Collection Operations + Demo
  314. Урок 314.00:18:33
    collect() with Collector
  315. Урок 315.00:25:17
    Demo: Collecting Stream into List & Set
  316. Урок 316.00:07:43
    Demo: Grouping Stream Elements
  317. Урок 317.00:23:32
    Demo: Summarizing Groups & Generating Multi-level Groups
  318. Урок 318.00:12:08
    Motivation & Agenda
  319. Урок 319.00:07:22
    Web Basics
  320. Урок 320.00:23:56
    Java EE & Servlet Containers
  321. Урок 321.00:13:36
    Installing Tomcat
  322. Урок 322.00:22:36
    BooksAloha! ~ Creating & Deploying a Web Application using Servlets
  323. Урок 323.00:13:45
    Servlet Life Cycle
  324. Урок 324.00:06:04
    Implementing BooksAloha! as MVC using JSP
  325. Урок 325.00:28:56
    Using JSTL to Improve Presentation Layer
  326. Урок 326.00:29:21
    Project Extension: Web-enabling thrill.io Project
  327. Урок 327.00:35:07
    Project Extension: Implementing Browse Functionality
  328. Урок 328.00:08:53
    Project Extension: Implementing Bookmarking & MyBooks Functionality
  329. Урок 329.00:21:21
    Project Extension: Implementing Login Functionality with Session
  330. Урок 330.00:00:00
    JAR Files - Introduction