Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай Java Foundations: The Complete Course with Java 21 Updates, а также все другие курсы, прямо сейчас!
Премиум
  1. Урок 1. 00:03:20
    1 - Welcome to the World of Java
  2. Урок 2. 00:05:06
    2 - What is Java
  3. Урок 3. 00:15:57
    3 - Installing JDK 21 IntelliJ IDE on MacOS with SDKMan Homebrew
  4. Урок 4. 00:20:00
    4 - Installing JDK 21 IntelliJ IDE on Windows with Chocolatey
  5. Урок 5. 00:03:04
    5 - Legacy Lesson Install JDK 17 on Windows
  6. Урок 6. 00:04:13
    6 - Legacy Lesson Install JDK 17 on MacOS
  7. Урок 7. 00:05:44
    7 - Legacy Lesson Installing a Java Editor IntelliJ IDE
  8. Урок 8. 00:09:17
    8 - Hello World Our First Simple Application
  9. Урок 9. 00:06:33
    9 - Asking for Help
  10. Урок 10. 00:06:25
    10 - Coding Exercises for the Whole Course
  11. Урок 11. 00:34:44
    12 - Object Orientation
  12. Урок 12. 00:17:53
    13 - Class Basics
  13. Урок 13. 00:18:51
    14 - Variables Data Types
  14. Урок 14. 00:06:50
    15 - var Variables
  15. Урок 15. 00:19:58
    16 - Simple Collections with Arrays
  16. Урок 16. 00:32:55
    17 - Methods
  17. Урок 17. 00:11:25
    18 - Varargs
  18. Урок 18. 00:09:04
    19 - Static Methods
  19. Урок 19. 00:06:28
    20 - Static Variables
  20. Урок 20. 00:05:42
    21 - Static Initializers
  21. Урок 21. 00:15:02
    22 - The Object Superclass
  22. Урок 22. 00:33:12
    23 - Member Visibility Methods
  23. Урок 23. 00:07:20
    24 - Member Visibility Fields
  24. Урок 24. 00:22:51
    25 - Constructors
  25. Урок 25. 00:22:46
    26 - Getters Setters
  26. Урок 26. 00:00:58
    28 - Intro
  27. Урок 27. 00:17:09
    29 - Creating Strings
  28. Урок 28. 00:10:00
    30 - Upper Lower Casing
  29. Урок 29. 00:05:39
    31 - Strings Blank or Empty
  30. Урок 30. 00:06:30
    32 - Replacing Text Within Strings
  31. Урок 31. 00:19:10
    33 - Removing White Space strip
  32. Урок 32. 00:05:28
    34 - Getting Individual Characters of a String charAt
  33. Урок 33. 00:09:36
    35 - Comparing String for Alphabetical Order compareTo
  34. Урок 34. 00:03:18
    36 - Determining if Text is Contained in a String contains
  35. Урок 35. 00:29:16
    37 - String Concatenation concat
  36. Урок 36. 00:10:34
    38 - Determining the Length of a String length
  37. Урок 37. 00:20:37
    39 - Getting Parts of a String substring
  38. Урок 38. 00:32:12
    40 - Searching within a String indexOf
  39. Урок 39. 00:23:39
    41 - Splitting String Apart split
  40. Урок 40. 00:08:25
    42 - Beginning Ending of Strings startsWith endsWith
  41. Урок 41. 00:15:06
    43 - Comparing Strings for Equality contentEquals
  42. Урок 42. 00:11:05
    44 - JDK 21 String Templates
  43. Урок 43. 00:02:24
    46 - Intro to Regular Expressions
  44. Урок 44. 00:13:09
    47 - ABCs of Regular Expressions Part One
  45. Урок 45. 00:34:24
    48 - ABCs of Regular Expressions Part Two
  46. Урок 46. 00:25:28
    49 - Capture Groups Part One
  47. Урок 47. 00:12:58
    50 - Capture Groups Part Two
  48. Урок 48. 00:13:04
    51 - Named Capture Groups
  49. Урок 49. 00:11:26
    52 - Comments in Regular Expressions
  50. Урок 50. 00:06:44
    53 - Wrapping Up Phone Number Parsing
  51. Урок 51. 00:19:54
    54 - Additional Character Classes
  52. Урок 52. 00:40:14
    55 - Parsing a Real Text Document
  53. Урок 53. 00:15:32
    56 - Greedy Operators
  54. Урок 54. 00:16:07
    57 - Finding Multiple Matches
  55. Урок 55. 00:09:05
    60 - Bits and Bytes
  56. Урок 56. 00:09:33
    61 - Hexadecimal Numbers
  57. Урок 57. 00:17:26
    62 - Numeric Data Types
  58. Урок 58. 00:11:33
    63 - Bigger Numbers
  59. Урок 59. 00:19:41
    64 - Floating Point Numbers
  60. Урок 60. 00:37:27
    66 - Simple Math Operations
  61. Урок 61. 00:17:36
    67 - Standard Math Functions
  62. Урок 62. 00:07:02
    68 - More on Random Numbers
  63. Урок 63. 00:06:05
    69 - Coding Exercise Calculating the Area of a Circle
  64. Урок 64. 00:21:50
    70 - Coding Exercise Calculating Centripetal Force
  65. Урок 65. 00:05:52
    71 - Comparing Numbers
  66. Урок 66. 00:09:10
    72 - Introducing BigDecimal
  67. Урок 67. 00:12:31
    73 - Using BigDecimal
  68. Урок 68. 00:11:59
    74 - More on BigDecimal BigInteger
  69. Урок 69. 00:19:48
    76 - Formatting Numbers
  70. Урок 70. 00:13:04
    77 - Customizing Number Formatters
  71. Урок 71. 00:24:42
    79 - Numeric Wrapper Classes
  72. Урок 72. 00:06:01
    81 - Intro to Control Flow
  73. Урок 73. 00:27:21
    82 - Conditionals with IfElse
  74. Урок 74. 00:07:51
    83 - Control Flow Inequalities
  75. Урок 75. 00:19:42
    84 - The Switch Statement
  76. Урок 76. 00:22:39
    85 - Switch Statement New Features
  77. Урок 77. 00:26:46
    86 - While Loops Part One
  78. Урок 78. 00:14:58
    87 - Switch Statement Pattern Matching in JDK 21
  79. Урок 79. 00:11:17
    88 - Legacy Lesson see JDK 21 version Switch Statement Pattern Matching JDK 17
  80. Урок 80. 00:22:04
    89 - While Loops Part Two
  81. Урок 81. 00:32:15
    90 - DoWhile Loops Part One
  82. Урок 82. 00:23:35
    91 - DoWhile Loops Part Two
  83. Урок 83. 00:26:19
    92 - For Loops
  84. Урок 84. 00:09:40
    93 - A Simpler For Loop
  85. Урок 85. 00:04:40
    94 - The Enhanced For Loop
  86. Урок 86. 00:06:21
    95 - Applying Loops to Regex
  87. Урок 87. 00:02:54
    97 - Intro to Testing
  88. Урок 88. 00:18:59
    98 - Setting Up
  89. Урок 89. 00:28:36
    99 - Our First Test
  90. Урок 90. 00:23:33
    100 - Writing the Second Test
  91. Урок 91. 00:12:19
    101 - Testing Edge Cases
  92. Урок 92. 00:19:22
    102 - Testing Annuity Calculation
  93. Урок 93. 00:19:51
    103 - Reimplementing the Guessing Game with TDD
  94. Урок 94. 00:37:23
    104 - Guessing Game TDD Part Two
  95. Урок 95. 00:19:51
    105 - Implementing Randomness
  96. Урок 96. 00:25:26
    106 - Testing for Randomness A Deeper Explanation
  97. Урок 97. 00:34:40
    107 - Tracking the Number of Guesses
  98. Урок 98. 00:11:39
    108 - Handling More than Four Guesses
  99. Урок 99. 00:24:58
    109 - Wrapping up Testing
  100. Урок 100. 00:13:21
    110 - Reimplementing the Guessing Game User Interface
  101. Урок 101. 00:35:46
    111 - Debugging Code Part One
  102. Урок 102. 00:17:05
    112 - Debugging Code Part Two
  103. Урок 103. 00:01:32
    114 - Intro
  104. Урок 104. 00:31:01
    115 - Enums
  105. Урок 105. 00:22:00
    116 - Enum Ordinals
  106. Урок 106. 00:20:57
    117 - Enum Methods
  107. Урок 107. 00:22:39
    118 - Enum Fields
  108. Урок 108. 00:12:22
    119 - Enum ValueOf
  109. Урок 109. 00:12:54
    120 - The this Keyword
  110. Урок 110. 00:13:18
    121 - Setup for More Advanced OOP Topics
  111. Урок 111. 00:29:02
    122 - Employee Salaries Continued
  112. Урок 112. 00:24:28
    123 - Completing Other Employee Cases
  113. Урок 113. 00:34:12
    124 - Introducing a Programmer Class
  114. Урок 114. 00:26:24
    125 - Implementing the Other Employee Classes
  115. Урок 115. 00:29:30
    126 - Introducing Interfaces
  116. Урок 116. 00:20:55
    127 - Revisiting Class Hierarchies
  117. Урок 117. 00:19:03
    128 - Completing the Employee Class Hierarchy
  118. Урок 118. 00:07:35
    129 - Dealing with the Null Case
  119. Урок 119. 00:22:17
    130 - Introducing Abstract Classes
  120. Урок 120. 00:27:38
    131 - Factory Methods
  121. Урок 121. 00:09:49
    132 - Nested Classes
  122. Урок 122. 00:17:44
    133 - Other Types of Nested Classes
  123. Урок 123. 00:20:36
    134 - Records
  124. Урок 124. 00:18:43
    135 - Lambdas Versus Anonymous Classes
  125. Урок 125. 00:24:54
    136 - Composition Versus Inheritance
  126. Урок 126. 00:22:00
    137 - Default Methods
  127. Урок 127. 00:19:23
    138 - Comparing Classes with instanceof
  128. Урок 128. 00:11:53
    139 - Unnamed Patterns
  129. Урок 129. 00:20:47
    140 - OOP Recap
  130. Урок 130. 00:36:12
    142 - Solutions Explanations to Exercises 81
  131. Урок 131. 00:42:05
    143 - Solutions Explanations to Exercises 82 83
  132. Урок 132. 00:20:39
    144 - Solutions Explanations to Exercises 84 89
  133. Урок 133. 00:20:05
    145 - Solutions Explanations to Exercises 810 819
  134. Урок 134. 00:20:50
    146 - Solutions Explanations to Exercises 820 822
  135. Урок 135. 00:04:52
    147 - Intro to Collections
  136. Урок 136. 00:22:28
    148 - List Basics
  137. Урок 137. 00:26:52
    149 - Linked Lists
  138. Урок 138. 00:20:33
    150 - Looping with Iterators
  139. Урок 139. 00:07:22
    151 - Loose Ends of Lists
  140. Урок 140. 00:27:03
    152 - Additional List Methods
  141. Урок 141. 00:43:51
    153 - Listcontains Objectequals
  142. Урок 142. 00:31:05
    154 - Implementing Comparator to Sort Lists
  143. Урок 143. 00:38:11
    155 - Implementing Comparable to Sort Lists
  144. Урок 144. 00:19:54
    156 - Intro to Sets
  145. Урок 145. 00:22:46
    157 - Sets Hashcode
  146. Урок 146. 00:12:34
    158 - LinkedHashSet
  147. Урок 147. 00:25:41
    159 - TreeSet
  148. Урок 148. 00:04:12
    160 - Intro to Maps
  149. Урок 149. 00:25:43
    161 - A Map Scenario
  150. Урок 150. 00:29:47
    162 - Using Map Implementations
  151. Урок 151. 00:24:50
    163 - Additional Map Methods
  152. Урок 152. 00:08:07
    164 - JDK 21 Collections Changes
  153. Урок 153. 00:03:56
    165 - Wrapping Up
  154. Урок 154. 00:01:48
    167 - Intro to Streams Lambdas
  155. Урок 155. 00:22:17
    168 - First Steps into Streams API
  156. Урок 156. 00:11:10
    169 - Streams Explained
  157. Урок 157. 00:42:41
    170 - Creating Streams
  158. Урок 158. 00:28:58
    171 - Summing with Streams
  159. Урок 159. 00:25:10
    172 - Sorting with Streams
  160. Урок 160. 00:24:10
    173 - Filtering with Streams
  161. Урок 161. 00:20:43
    174 - Additional Filtering Techniques
  162. Урок 162. 00:31:35
    175 - Flattening Streams of Streams
  163. Урок 163. 00:30:09
    176 - Alternatives to Filter
  164. Урок 164. 00:45:33
    177 - The Map Reduce Pattern
  165. Урок 165. 00:23:46
    178 - Intro to More Advanced Streams
  166. Урок 166. 00:46:07
    179 - Big Data Summing
  167. Урок 167. 00:18:50
    180 - Domain Models with Streams API
  168. Урок 168. 00:24:16
    181 - Grouping Records
  169. Урок 169. 00:22:19
    182 - Summing by Groups
  170. Урок 170. 00:29:01
    183 - Nested Groupings
  171. Урок 171. 00:18:13
    184 - Reducing with Collect
  172. Урок 172. 00:12:57
    185 - Partitioning vs Grouping
  173. Урок 173. 00:11:46
    186 - Functional Interfaces
  174. Урок 174. 00:38:30
    187 - Functional Methods of Collections
  175. Урок 175. 00:36:20
    189 - Exceptions
  176. Урок 176. 00:19:10
    190 - Checked Exceptions
  177. Урок 177. 00:30:20
    191 - Generics Part One
  178. Урок 178. 00:34:28
    192 - Generics Part Two
  179. Урок 179. 00:31:02
    193 - Optionals Part One
  180. Урок 180. 00:42:24
    194 - Optionals Part Two
  181. Урок 181. 00:28:46
    195 - Dates Times Intro
  182. Урок 182. 00:08:03
    196 - Dates Times Periods Durations
  183. Урок 183. 00:15:44
    197 - Dates Times Time Zones
  184. Урок 184. 00:31:43
    198 - Dates Times Parsing Formatting
  185. Урок 185. 00:13:00
    199 - Dates Times Temporal Adjustors Immutability
  186. Урок 186. 00:12:26
    200 - Getting Started with Databases
  187. Урок 187. 00:09:17
    201 - Installing DBeaver SQL Client
  188. Урок 188. 00:14:54
    202 - Installing Squirrel SQL Client
  189. Урок 189. 00:20:43
    203 - Lets Learn Some SQL
  190. Урок 190. 00:20:55
    204 - Creating Retrieving Records
  191. Урок 191. 00:12:29
    205 - Database Functions
  192. Урок 192. 00:12:47
    206 - The UD in CRUD
  193. Урок 193. 00:29:13
    207 - Creating a New Database Project
  194. Урок 194. 00:19:22
    208 - TDD for Saving a Person
  195. Урок 195. 00:28:58
    209 - Writing the JDBC Code to Save a Person
  196. Урок 196. 00:37:33
    210 - Tidying Up Explaining Our Save Code
  197. Урок 197. 00:08:32
    211 - Creating a Custom Save Exception
  198. Урок 198. 00:41:33
    212 - Finding a Person By ID
  199. Урок 199. 00:10:59
    213 - FindById A Negative Case
  200. Урок 200. 00:09:44
    214 - Deleting a Person
  201. Урок 201. 00:18:50
    215 - Deleting Multiple People at Once
  202. Урок 202. 00:34:26
    216 - Updating a Person
  203. Урок 203. 00:21:15
    217 - Creating a Reusable CRUD Repository
  204. Урок 204. 00:09:34
    218 - CRUD Repository FindById
  205. Урок 205. 00:22:53
    219 - CRUD Repository Completing the Remaining Methods
  206. Урок 206. 00:31:42
    220 - CRUD Repository Implementing a Custom Annotation
  207. Урок 207. 00:38:33
    221 - CRUD Repository Allowing Multiple SQL Annotations
  208. Урок 208. 00:28:54
    222 - CRUD Repository Custom ID Annotation
  209. Урок 209. 00:32:31
    223 - Loading Five Million People with PeopleRepository
  210. Урок 210. 00:22:51
    224 - Speeding up the Queries with Indexes
  211. Урок 211. 00:30:24
    225 - Creating an Address Table
  212. Урок 212. 00:39:40
    226 - Saving One Address
  213. Урок 213. 00:20:01
    227 - Saving a Person without an Address
  214. Урок 214. 00:20:09
    228 - Fetching a Person with Their Address
  215. Урок 215. 00:29:00
    229 - Fetching Address in One Go with Join Queries
  216. Урок 216. 00:40:03
    230 - Joins with Missing Addresses
  217. Урок 217. 00:41:30
    231 - Adding a Second Address Field
  218. Урок 218. 00:04:15
    232 - Brief Word of Encouragement
  219. Урок 219. 00:04:38
    233 - Challenge Adding a Spouse
  220. Урок 220. 00:28:54
    234 - Adding Children
  221. Урок 221. 00:21:25
    235 - Fetching Children in One Join
  222. Урок 222. 00:32:41
    236 - Writing Code to Fetch Children in One Join
  223. Урок 223. 00:17:01
    237 - Troubleshooting Techniques for Broken Tests
  224. Урок 224. 00:29:05
    238 - Fixing FindAll for JoinFetched Child Code
  225. Урок 225. 00:13:57
    239 - Join Tables
  226. Урок 226. 00:27:12
    240 - Optimizing with Caching
  227. Урок 227. 00:17:36
    241 - Optimizing Prepared Statements
  228. Урок 228. 00:34:33
    242 - Conclusion
  229. Урок 229. 00:09:33
    243 - Introduction
  230. Урок 230. 00:14:51
    244 - Creating the PeopleDBWeb Project
  231. Урок 231. 00:09:06
    245 - Implementing Web Hello World
  232. Урок 232. 00:22:05
    246 - Web HTTP Basics
  233. Урок 233. 00:22:53
    247 - Displaying a Simple List of People
  234. Урок 234. 00:25:20
    248 - Introducing a Bootstrap Table for People
  235. Урок 235. 00:30:03
    249 - Formatting Dates Salaries
  236. Урок 236. 00:44:03
    250 - Introducing Spring Data
  237. Урок 237. 00:42:17
    251 - Saving People
  238. Урок 238. 00:31:16
    252 - UI Database Tweaks
  239. Урок 239. 00:29:52
    253 - Validating Data
  240. Урок 240. 00:27:27
    254 - Deleting People
  241. Урок 241. 00:37:59
    255 - Updating People
  242. Урок 242. 00:40:00
    256 - Internationalization
  243. Урок 243. 00:33:13
    257 - Uploading a File
  244. Урок 244. 00:38:14
    258 - Saving Uploaded Files
  245. Урок 245. 00:35:23
    259 - Retrieving Uploaded Files
  246. Урок 246. 00:35:11
    260 - Handling Exceptions in UI
  247. Урок 247. 00:28:44
    261 - Introducing a Service Layer for Coordination Logic
  248. Урок 248. 00:18:16
    262 - Coordinating Deletes with a Service
  249. Урок 249. 00:17:21
    263 - Custom Query Methods
  250. Урок 250. 00:39:02
    264 - Pagination
  251. Урок 251. 00:37:44
    265 - Importing a CSV File
  252. Урок 252. 00:26:19
    266 - Fixing Deletes UI Loose Ends
  253. Урок 253. 00:35:12
    267 - Items Not Covered Thoroughly
  254. Урок 254. 00:32:08
    268 - Where to Go from Here