title
Java Full Course in 10 Hours | Java Tutorial for Beginners [2024] | Java Online Training | Edureka
description
π₯Edureka Java Training (Use Code "πππππππππ"): https://www.edureka.co/java-j2ee-training-course
This Edureka Java Full Course will help you understand the various fundamentals of Java programming in detail with examples. This extensive Java Full course is designed to take you from a complete beginner to a confident Java developer. Whether you're a student, a career changer, or simply someone who wants to explore the exciting world of software development, this Java course is your gateway!
Check out the Java Tutorial Playlist: https://goo.gl/ES3dI3
This Java tutorial for beginners covers the following topics:
00:00 Agenda of Java Full Course
3:36 - Introduction to Java
23:46 - Java Environmental SetUp
28:43 - Java Internals
35:05 - Java Working
38:21 - First Java Program
53:27 - Modifiers in Java
54:34 - Access Control Modifiers
1:00:12 - Non Access Modifiers
1:10:05 - Variables in Java
1:14:59 - Data types in Java
1:25:52 - Operators
1:28:56 - Operators Types and Examples
1:33:11 - Control Statements in Java
1:35:51 - Selection Statements
1:37:17 - Iteration Statements
1:44:04 - Jump Statements
1:46:06 - Methods in Java
2:09:00 - Arrays in Java
2:27:50 - Strings
2:52:45: Classes and Objects
2:57:17 - Java Naming Conventions
2:57:30 - Types of variables
3:01:30 - Constructor
3:19:09 - Java Static Keyword
3:24:32 - Java this keyword
3:29:27 - Object-Oriented Programming Concepts
4:29:44 - Interface
4:50:55 - What is a Package?
4:58:12 - Access Modifiers
5:05:00 - Demo - Access package from another package
5:08:55 - Regular Expression
5:21:50 - Exception
5:31:45 - Exception handling
5:50:27 - XML in Java
6:36:00 - Serialization in Java
6:54:00 - Wrapper Classes
6:58:06 - Generics in Java
π΄ Edureka Java Training
π΅ Java Certification Training: http://bit.ly/3a5wPG1
π΅ Selenium Certification Training: http://bit.ly/3r1XBpF
π΅ Microservices Certification Training: http://bit.ly/2MjLnJK
π΅ Spring Certification Training: http://bit.ly/3sTulTB
π΅ Test Automation Engineer Masters Program: http://bit.ly/369W6xE
Subscribe to our channel to get video updates.
π’π’ ππ¨π© ππ ππ«ππ§ππ’π§π ππππ‘π§π¨π₯π¨π π’ππ¬ ππ¨ ππππ«π§ π’π§ ππππ πππ«π’ππ¬ π’π’
β© NEW Top 10 Technologies To Learn In 2024 - https://www.youtube.com/watch?v=vaLXPv0ewHU
#edureka #javaedureka #JavaFullCourse #Javatutorial #Javaonlinetraining #Javaforbeginners
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
LinkedIn: https://www.linkedin.com/company/edureka
Telegram: https://t.me/edurekaupdates
For Java Training & Certification, please write back to us at sales@edureka.in or call us at IND: 9606058406 / US: +18338555775 (toll free).
detail
{'title': 'Java Full Course in 10 Hours | Java Tutorial for Beginners [2024] | Java Online Training | Edureka', 'heatmap': [{'end': 4767.613, 'start': 1460.202, 'weight': 1}, {'end': 7699.322, 'start': 7329.633, 'weight': 0.709}, {'end': 9906.177, 'start': 8797.301, 'weight': 0.738}], 'summary': 'This 10-hour java tutorial covers programming fundamentals, oop concepts, exception handling, data structures, xml parsing, and json in java, with practical examples and applicability in it industries, emphasizing platform independence and memory management.', 'chapters': [{'end': 977.96, 'segs': [{'end': 92.895, 'src': 'embed', 'start': 55.174, 'weight': 0, 'content': [{'end': 62.459, 'text': 'Then we are going to discuss Java collection frameworks and finally close this session by discussing the DOM parser in Java.', 'start': 55.174, 'duration': 7.285}, {'end': 70.243, 'text': 'Also, do click on the subscribe button to never miss an update on the hottest technologies by the Edureka YouTube channel.', 'start': 63.119, 'duration': 7.124}, {'end': 92.895, 'text': "So what are we going to cover in this particular topic? So it's going to be introduction to Java, what Java is all about.", 'start': 85.751, 'duration': 7.144}], 'summary': 'Discussion on java collection frameworks and dom parser, and introduction to java.', 'duration': 37.721, 'max_score': 55.174, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s55174.jpg'}, {'end': 539.932, 'src': 'embed', 'start': 516.546, 'weight': 1, 'content': [{'end': 525.15, 'text': 'So Java can be used to create complete applications that may run on a single computer or can be distributed among servers and clients in the network.', 'start': 516.546, 'duration': 8.604}, {'end': 530.312, 'text': 'As I said, this is more about the application of platform independent programming language.', 'start': 525.41, 'duration': 4.902}, {'end': 532.753, 'text': 'So it could be used on any machine.', 'start': 530.372, 'duration': 2.381}, {'end': 536.135, 'text': 'You need not take care about which machine your program is going to run on.', 'start': 532.874, 'duration': 3.261}, {'end': 539.932, 'text': "All right, so let's talk about Java features.", 'start': 537.071, 'duration': 2.861}], 'summary': 'Java enables platform-independent application development for single or distributed use.', 'duration': 23.386, 'max_score': 516.546, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s516546.jpg'}, {'end': 668.174, 'src': 'embed', 'start': 638.872, 'weight': 2, 'content': [{'end': 646.976, 'text': 'so java basically runs in virtual machine sandbox and no one can get into this particular space, so no one can intrude it,', 'start': 638.872, 'duration': 8.104}, {'end': 656.164, 'text': 'i would say so that keeps it free from virus and stuff like that or untrusted process and other thing that is important is, unlike c,', 'start': 646.976, 'duration': 9.188}, {'end': 658.966, 'text': "java doesn't expose pointers.", 'start': 656.164, 'duration': 2.802}, {'end': 668.174, 'text': 'so in c there could be malicious user who could get into the memory location through pointers and can manipulate the contents of a particular memory right,', 'start': 658.966, 'duration': 9.208}], 'summary': 'Java runs in a secure virtual machine, preventing intrusions and manipulation through pointers.', 'duration': 29.302, 'max_score': 638.872, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s638872.jpg'}, {'end': 883.156, 'src': 'embed', 'start': 855.918, 'weight': 4, 'content': [{'end': 860.462, 'text': 'So this is one of the major features why Java is being widely used in big data.', 'start': 855.918, 'duration': 4.544}, {'end': 864.308, 'text': 'So big data is nothing but you have chunks of data.', 'start': 861.547, 'duration': 2.761}, {'end': 872.652, 'text': 'You have like petabytes of information coming in every minute or every hour or every day, right? And you want to process it.', 'start': 864.848, 'duration': 7.804}, {'end': 874.833, 'text': 'So it cannot be done in one machine.', 'start': 872.832, 'duration': 2.001}, {'end': 880.835, 'text': 'If you want to run everything on one machine as we had earlier, right? Everything was monolithic.', 'start': 874.993, 'duration': 5.842}, {'end': 883.156, 'text': 'Everything was done on one machine sort of.', 'start': 881.036, 'duration': 2.12}], 'summary': 'Java is used in big data due to its ability to handle petabytes of data, processing at scale across multiple machines.', 'duration': 27.238, 'max_score': 855.918, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s855918.jpg'}], 'start': 11.078, 'title': 'Java programming', 'summary': "Provides an overview of java, covering topics like variables, data types, control statements, object-oriented programming, exception handling, collection frameworks, and dom parser. it also emphasizes java's platform independence, security features, and its wide usage in the it industry.", 'chapters': [{'end': 174.665, 'start': 11.078, 'title': 'Java full course overview', 'summary': 'Covers a full course session on java by edureka, including topics like variables, data types, control statements, object-oriented programming, exception handling, java collection frameworks, and dom parser, with an emphasis on the simplicity and versatility of java.', 'duration': 163.587, 'highlights': ['The chapter covers a full course session on Java by Edureka, including topics like variables, data types, control statements, object-oriented programming, exception handling, Java collection frameworks, and DOM parser.', 'Java is one of the most fundamental programming languages that anybody can learn, and despite being simple, it allows achieving marvels.', 'The session includes discussing classes, objects, and object-oriented programming concepts in Java, which are fundamental to understanding the language.', "The chapter also emphasizes the importance of Java data types, storage for different data types, and data type conversion in Java, providing a comprehensive understanding of the language's foundational concepts.", 'The importance of Java collection frameworks and DOM parser in Java is highlighted as part of the session, demonstrating the practical applications of Java in real-world scenarios.']}, {'end': 638.872, 'start': 174.825, 'title': 'Introduction to java programming', 'summary': 'Introduces java programming, emphasizing its object-oriented model, platform independence, and evolving nature, with java being at version 12 and its high performance, simplicity, and security making it widely used in the it industry.', 'duration': 464.047, 'highlights': ['Java is at version 12, with continuous improvements and enhancements being made, making it an evolving system.', "Java's platform independence allows compiled programs to run on any platform, making it widely used in distributed computing.", "Java's simplicity, high performance, and security contribute to its wide usage in the IT industry."]}, {'end': 977.96, 'start': 638.872, 'title': 'Java security and robustness', 'summary': 'Discusses the security and robustness features of java including its sandboxed virtual machine, pointer protection, code checks during compilation and runtime, automatic memory management, portability, dynamic runtime polymorphism, distributed computing for big data, and multi-threading for efficient utilization of multi-core processors.', 'duration': 339.088, 'highlights': ["Java's sandboxed virtual machine provides security by preventing unauthorized access, virus intrusion, and untrusted processes.", "Java's absence of pointer exposure enhances security by preventing malicious manipulation of memory contents, unlike in C.", "Java's code checks during compilation and runtime ensure robustness by detecting and preventing issues, such as corrupted class files and syntax errors.", "Java's automatic memory management via garbage collection enhances robustness by automatically cleaning up unused memory, eliminating the need for explicit memory allocation and release.", "Java's portability allows programs to be written once and run on multiple platforms, ensuring widespread usability and reducing development efforts.", "Java's dynamic runtime polymorphism and distributed computing support enable efficient processing of big data, making it suitable for handling large volumes of data across multiple machines.", "Java's multi-threading capabilities enable efficient utilization of multi-core processors, enhancing performance by allowing concurrent execution of tasks."]}], 'duration': 966.882, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s11078.jpg', 'highlights': ['The chapter covers a full course session on Java by Edureka, including topics like variables, data types, control statements, object-oriented programming, exception handling, Java collection frameworks, and DOM parser.', "Java's platform independence allows compiled programs to run on any platform, making it widely used in distributed computing.", "Java's sandboxed virtual machine provides security by preventing unauthorized access, virus intrusion, and untrusted processes.", "Java's simplicity, high performance, and security contribute to its wide usage in the IT industry.", "Java's dynamic runtime polymorphism and distributed computing support enable efficient processing of big data, making it suitable for handling large volumes of data across multiple machines."]}, {'end': 3847.05, 'segs': [{'end': 1067.584, 'src': 'embed', 'start': 1036.327, 'weight': 0, 'content': [{'end': 1040.45, 'text': 'Lots of global investment banks like Citigroup, Barclays,', 'start': 1036.327, 'duration': 4.123}, {'end': 1046.635, 'text': 'Standard Chartered and other banks use Java for writing front and back office electronic trading system.', 'start': 1040.45, 'duration': 6.185}, {'end': 1053.561, 'text': "So one of the main features why it's been used in financial industry is about security.", 'start': 1047.296, 'duration': 6.265}, {'end': 1056.563, 'text': 'It provides high level of security as we spoke earlier.', 'start': 1053.721, 'duration': 2.842}, {'end': 1058.745, 'text': 'Java web applications.', 'start': 1057.164, 'duration': 1.581}, {'end': 1067.584, 'text': 'so, basically, you have web servers on which your application would be hosted and you could request for a particular JSP,', 'start': 1059.281, 'duration': 8.303}], 'summary': 'Global investment banks use java for electronic trading systems due to its high security.', 'duration': 31.257, 'max_score': 1036.327, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s1036327.jpg'}, {'end': 1121.247, 'src': 'embed', 'start': 1078.667, 'weight': 1, 'content': [{'end': 1084.829, 'text': 'so say, for example, you are trying to log on to a particular application, you get a login page that is nothing but a JSP.', 'start': 1078.667, 'duration': 6.162}, {'end': 1090.678, 'text': 'So basically, many of the web applications is developed on Java as well.', 'start': 1086.115, 'duration': 4.563}, {'end': 1097.503, 'text': 'One of the main features why web applications are developed because you have a lot of web servers supporting Java.', 'start': 1091.559, 'duration': 5.944}, {'end': 1104.628, 'text': 'You just have to deploy your application on a particular web server and could access it from anywhere across globe.', 'start': 1098.163, 'duration': 6.465}, {'end': 1106.289, 'text': 'You should be on internet though.', 'start': 1104.928, 'duration': 1.361}, {'end': 1108.51, 'text': 'Embedded system.', 'start': 1107.55, 'duration': 0.96}, {'end': 1112.173, 'text': 'When it comes to embedded system, it has to be lightweight right?', 'start': 1109.151, 'duration': 3.022}, {'end': 1121.247, 'text': 'So Java 8, I remember Java version 8 had a lot of feature, making it pretty much lightweight when it comes to embedded systems.', 'start': 1112.841, 'duration': 8.406}], 'summary': 'Java web applications are widely supported by web servers, allowing deployment for global access. java 8 introduced lightweight features for embedded systems.', 'duration': 42.58, 'max_score': 1078.667, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s1078667.jpg'}, {'end': 1322.831, 'src': 'embed', 'start': 1271.225, 'weight': 2, 'content': [{'end': 1279.868, 'text': "There could be mathematical equations and mathematical computations, which needs a lot of CPU time because it's very CPU intensive right?", 'start': 1271.225, 'duration': 8.643}, {'end': 1286.911, 'text': 'When you do a very precise calculation with high level of high degree, it needs a lot of CPU time, right?', 'start': 1280.008, 'duration': 6.903}, {'end': 1289.825, 'text': "So that's where Java is good at.", 'start': 1287.585, 'duration': 2.24}, {'end': 1297.887, 'text': 'So basically this is about, as I spoke about multi-threading, utilizing all the cores to the fullest.', 'start': 1290.866, 'duration': 7.021}, {'end': 1303.708, 'text': 'So suppose you have four core processor, using all these four cores is being done by Java.', 'start': 1298.387, 'duration': 5.321}, {'end': 1311.709, 'text': 'Java has feature or through threads you could actually read through or actually utilize these four cores to the fullest.', 'start': 1304.408, 'duration': 7.301}, {'end': 1318.428, 'text': "Big data technologies, again, Big data is nothing but, as I said, it's distributed.", 'start': 1312.489, 'duration': 5.939}, {'end': 1322.831, 'text': 'You cannot have everything run on one machine, which was the case earlier.', 'start': 1318.688, 'duration': 4.143}], 'summary': 'Java excels in cpu-intensive computations, leveraging multi-threading for efficient utilization of processor cores. big data technologies are distributed, not confined to a single machine.', 'duration': 51.606, 'max_score': 1271.225, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s1271225.jpg'}, {'end': 1371.43, 'src': 'embed', 'start': 1344.987, 'weight': 5, 'content': [{'end': 1348.77, 'text': 'the enterprise level hardware, which makes it cheaper.', 'start': 1344.987, 'duration': 3.783}, {'end': 1350.872, 'text': 'internet of things.', 'start': 1348.77, 'duration': 2.102}, {'end': 1353.094, 'text': 'so internet of things is coming up.', 'start': 1350.872, 'duration': 2.222}, {'end': 1357.318, 'text': "it's a booming thing wherein you could connect things together.", 'start': 1353.094, 'duration': 4.224}, {'end': 1362.602, 'text': 'say, for example, you have cars, right, so you could connect cars together,', 'start': 1357.318, 'duration': 5.284}, {'end': 1368.848, 'text': 'so you could have sensors in your car which could emit data and you could connect them together.', 'start': 1362.602, 'duration': 6.246}, {'end': 1371.43, 'text': "so basically it's all connecting things together.", 'start': 1368.848, 'duration': 2.582}], 'summary': 'Enterprise-level hardware makes iot cheaper, connecting things like cars with sensors and emitting data.', 'duration': 26.443, 'max_score': 1344.987, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s1344987.jpg'}, {'end': 2007.039, 'src': 'embed', 'start': 1981.522, 'weight': 7, 'content': [{'end': 1988.006, 'text': 'So basically in JRE, this is what you have, JVM plus set of libraries plus other additional files.', 'start': 1981.522, 'duration': 6.484}, {'end': 1992.486, 'text': 'So as spoke, JVM is nothing but specific to environment.', 'start': 1988.823, 'duration': 3.663}, {'end': 1996.57, 'text': 'But all these things like RT.jar and stuff like that would be independent.', 'start': 1992.726, 'duration': 3.844}, {'end': 2004.216, 'text': 'JRE does not contain tools and utilities such as compilers or debuggers for developing applets and application.', 'start': 1997.29, 'duration': 6.926}, {'end': 2007.039, 'text': 'So JRE by itself is a runtime environment.', 'start': 2004.737, 'duration': 2.302}], 'summary': "Jre consists of jvm, libraries, and additional files. it's a runtime environment without development tools.", 'duration': 25.517, 'max_score': 1981.522, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s1981522.jpg'}, {'end': 2153.712, 'src': 'embed', 'start': 2129.737, 'weight': 6, 'content': [{'end': 2136.501, 'text': 'This class files would be sent for compilation or whenever you are good enough done with your coding, you would compile it.', 'start': 2129.737, 'duration': 6.764}, {'end': 2145.867, 'text': "And once the compilation is done, once everything looks good enough, once the compiler doesn't mark anything and doesn't flag anything rather,", 'start': 2137.402, 'duration': 8.465}, {'end': 2151.551, 'text': 'which means everything is syntactically right, you will get Java bytecode, which is nothing but.', 'start': 2145.867, 'duration': 5.684}, {'end': 2152.111, 'text': 'class file.', 'start': 2151.551, 'duration': 0.56}, {'end': 2153.712, 'text': 'Now this .', 'start': 2152.911, 'duration': 0.801}], 'summary': 'Coding files sent for compilation to get java bytecode class file.', 'duration': 23.975, 'max_score': 2129.737, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s2129737.jpg'}, {'end': 2703.178, 'src': 'embed', 'start': 2674.727, 'weight': 9, 'content': [{'end': 2677.288, 'text': 'So it could be seen anywhere within the application.', 'start': 2674.727, 'duration': 2.561}, {'end': 2687.453, 'text': 'So basically for class level you have public which as the name suggests or as the name gives out it could be seen anywhere within your application.', 'start': 2678.049, 'duration': 9.404}, {'end': 2690.054, 'text': "That's a visibility key access modifier.", 'start': 2688.033, 'duration': 2.021}, {'end': 2694.997, 'text': 'All right, so you have the keyword class here, which is for the class.', 'start': 2690.896, 'duration': 4.101}, {'end': 2697.577, 'text': 'You need to have it mentioned as class.', 'start': 2695.377, 'duration': 2.2}, {'end': 2700.818, 'text': 'If you write something else, then it would give you compilation error.', 'start': 2697.637, 'duration': 3.181}, {'end': 2703.178, 'text': 'So it has to be exactly the same.', 'start': 2701.518, 'duration': 1.66}], 'summary': 'The public visibility key access modifier for class level can be seen anywhere within the application.', 'duration': 28.451, 'max_score': 2674.727, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s2674727.jpg'}, {'end': 3273.6, 'src': 'embed', 'start': 3247.816, 'weight': 8, 'content': [{'end': 3254.482, 'text': 'we have access modifier for your methods as well, so this is just one of the things right.', 'start': 3247.816, 'duration': 6.666}, {'end': 3257.004, 'text': 'we would see other modifiers as well.', 'start': 3254.482, 'duration': 2.522}, {'end': 3265.539, 'text': 'modifiers in general has some other things as well, but when it comes to access modifiers, It basically controls the visibility of a class,', 'start': 3257.004, 'duration': 8.535}, {'end': 3267.699, 'text': 'visibility of a class or a method.', 'start': 3265.539, 'duration': 2.16}, {'end': 3273.6, 'text': "So yeah modifiers here as you could see there's access and non-access modifiers.", 'start': 3268.499, 'duration': 5.101}], 'summary': 'Access modifiers control visibility of class/method, part of modifiers with other types.', 'duration': 25.784, 'max_score': 3247.816, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s3247816.jpg'}], 'start': 979.02, 'title': 'Java in industries, installation, and runtime', 'summary': 'Covers the widespread use of java in financial services, web applications, embedded systems, scientific applications, big data, and iot, as well as the installation process, platform independence, and java runtime environment overview, highlighting its significance in distributed computing, big data, and the portability of class files. additionally, it explains creating a java class and java modifiers, including access and non-access modifiers and their impact on visibility and accessibility.', 'chapters': [{'end': 1428.956, 'start': 979.02, 'title': 'Java usage in various industries', 'summary': 'Discusses the widespread use of java in various industries including financial services, web applications, embedded systems, scientific applications, big data technologies, and internet of things, highlighting its features such as security, lightweight nature, and multi-threading capabilities.', 'duration': 449.936, 'highlights': ['Java is widely used in financial services industry, with many global investment banks like Citigroup, Barclays, and Standard Chartered using it for front and back office electronic trading systems.', 'Java is favored for web applications due to its security features and the support of numerous web servers, allowing easy deployment and access across the globe.', "Java's lightweight nature in embedded systems is achieved through features introduced in Java 8, particularly in the micro edition J2ME, making it suitable for embedded systems and IoT applications.", 'Java is well-suited for scientific applications due to its ability to handle CPU-intensive tasks, precise calculations, multi-threading, and utilization of multiple cores, making it ideal for mathematical computations.', "Big data technologies benefit from Java's support for distributed architecture and its ability to process data across networks, utilizing commodity hardware and enabling cost-effective solutions.", 'The rise of internet of things (IoT) leverages Java to connect various objects and devices, allowing data exchange and connectivity, similar to the evolution of computers being connected to form the internet.']}, {'end': 1927.052, 'start': 1429.983, 'title': 'Java installation and platform independence', 'summary': "Discusses the installation process of java, including selecting the appropriate sdk based on the platform, running the installation executable, and setting up the environment variables. it also explains java's platform independence and the role of jvm in running bytecode, highlighting its significance in distributed computing and big data applications.", 'duration': 497.069, 'highlights': ['Java installation process', "Explanation of Java's platform independence", 'Role of JVM in running bytecode']}, {'end': 2296.066, 'start': 1929.008, 'title': 'Java runtime environment overview', 'summary': 'Explains the java runtime environment (jre) comprising of jvm, libraries, and additional files, while highlighting the differences between jre and jdk. it also discusses the process of writing, compiling, and running java class files, emphasizing the portability of class files across different platforms and the role of jvm and class loader in executing the code.', 'duration': 367.058, 'highlights': ['JDK is a superset of JRE, containing JVM and development tools, while JRE is solely a runtime environment, lacking compilers and development utilities.', "The process of writing, compiling, and running Java class files involves creating a .java file, compiling it to generate a .class file (Java bytecode), which is then executed using JVM's just-in-time compiler, ensuring the portability of class files across different platforms.", 'JVM is platform-specific, with different JVMs for Windows and Linux, responsible for loading class files using class loader and running the application through the class files.']}, {'end': 3199.315, 'start': 2296.706, 'title': 'Creating a java class', 'summary': 'Explains how to create a java class using eclipse, including the importance of camel casing for project names, creating packages to avoid class collisions, and the use of static and non-static methods for class execution.', 'duration': 902.609, 'highlights': ['Importance of Camel Casing for Project Names', 'Creating Packages to Avoid Class Collisions', 'Explanation of Static and Non-Static Methods', 'Introduction to JShell for Testing', "Printing 'Hello World' in JShell"]}, {'end': 3847.05, 'start': 3199.495, 'title': 'Java modifiers and their visibility', 'summary': 'Explains the concept of java modifiers, including access and non-access modifiers, such as public, default, private, protected, static, final, and abstract, and their impact on the visibility and accessibility of classes, methods, and variables within the application, while also providing examples and explanations of their usage and implications.', 'duration': 647.555, 'highlights': ['The chapter explains the concept of Java modifiers, including access and non-access modifiers, such as public, default, private, protected, static, final, and abstract, and their impact on the visibility and accessibility of classes, methods, and variables within the application.', 'It provides examples and explanations of their usage and implications.', 'Public is an access modifier that allows the accessibility of a class or method from anywhere within the application.', 'Default is a non-access modifier that limits the accessibility of a class or method to within the package.', 'Private is a non-access modifier that restricts the visibility of a class or method to only within the class itself.', 'Protected is an access modifier that allows visibility to the package and all its subclasses, demonstrating the concept of inheritance and subclass visibility.']}], 'duration': 2868.03, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s979020.jpg', 'highlights': ['Java is widely used in financial services industry, with many global investment banks like Citigroup, Barclays, and Standard Chartered using it for front and back office electronic trading systems.', "Java's lightweight nature in embedded systems is achieved through features introduced in Java 8, particularly in the micro edition J2ME, making it suitable for embedded systems and IoT applications.", "Big data technologies benefit from Java's support for distributed architecture and its ability to process data across networks, utilizing commodity hardware and enabling cost-effective solutions.", 'Java is favored for web applications due to its security features and the support of numerous web servers, allowing easy deployment and access across the globe.', 'Java is well-suited for scientific applications due to its ability to handle CPU-intensive tasks, precise calculations, multi-threading, and utilization of multiple cores, making it ideal for mathematical computations.', 'The rise of internet of things (IoT) leverages Java to connect various objects and devices, allowing data exchange and connectivity, similar to the evolution of computers being connected to form the internet.', "The process of writing, compiling, and running Java class files involves creating a .java file, compiling it to generate a .class file (Java bytecode), which is then executed using JVM's just-in-time compiler, ensuring the portability of class files across different platforms.", 'JDK is a superset of JRE, containing JVM and development tools, while JRE is solely a runtime environment, lacking compilers and development utilities.', 'The chapter explains the concept of Java modifiers, including access and non-access modifiers, such as public, default, private, protected, static, final, and abstract, and their impact on the visibility and accessibility of classes, methods, and variables within the application.', 'Public is an access modifier that allows the accessibility of a class or method from anywhere within the application.']}, {'end': 5868.117, 'segs': [{'end': 3921.658, 'src': 'embed', 'start': 3890.463, 'weight': 0, 'content': [{'end': 3896.985, 'text': 'So when you put a synchronized here, what we are trying to say is only one thread could access it at a given point.', 'start': 3890.463, 'duration': 6.522}, {'end': 3899.246, 'text': 'Only one thread at one point.', 'start': 3897.665, 'duration': 1.581}, {'end': 3904.027, 'text': 'So if multiple threads are trying to access it, one thread has to wait for it.', 'start': 3899.966, 'duration': 4.061}, {'end': 3908.75, 'text': 'So only one thread would get entry to this and the other thread should wait for it.', 'start': 3904.588, 'duration': 4.162}, {'end': 3912.372, 'text': "So that's what synchronized is all about and volatile.", 'start': 3909.091, 'duration': 3.281}, {'end': 3921.658, 'text': "It's basically for memory visibility or what we are trying to say is so basically every processor has got its own cache.", 'start': 3912.733, 'duration': 8.925}], 'summary': 'Synchronized allows only one thread to access at a time, ensuring thread safety and memory visibility.', 'duration': 31.195, 'max_score': 3890.463, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s3890463.jpg'}, {'end': 4007.335, 'src': 'embed', 'start': 3976.587, 'weight': 1, 'content': [{'end': 3984.949, 'text': 'so this 10 is stored somewhere in the memory and you could access this part of memory location where this 10 is stored using this variable,', 'start': 3976.587, 'duration': 8.362}, {'end': 3988.35, 'text': 'or you can manipulate it as well, can change the value.', 'start': 3984.949, 'duration': 3.401}, {'end': 3991.887, 'text': 'so, basically, there are three types of variables in java.', 'start': 3988.945, 'duration': 2.942}, {'end': 3995.008, 'text': "there's local instance class or static.", 'start': 3991.887, 'duration': 3.121}, {'end': 3998.07, 'text': 'local is nothing but local to your method.', 'start': 3995.008, 'duration': 3.062}, {'end': 4007.335, 'text': 'whenever you have a method, or you kind of create a variable within a method that is nothing but local scope, which is like it has the access,', 'start': 3998.07, 'duration': 9.265}], 'summary': 'In java, there are 3 types of variables: local, instance, and static.', 'duration': 30.748, 'max_score': 3976.587, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s3976587.jpg'}, {'end': 4520.091, 'src': 'embed', 'start': 4494.796, 'weight': 2, 'content': [{'end': 4500.8, 'text': 'So how do we decide what amount of memory is to be allocated? So these are the data types that we have.', 'start': 4494.796, 'duration': 6.004}, {'end': 4506.323, 'text': 'So each variable in Java has a specific type which determines the size of memory,', 'start': 4501.2, 'duration': 5.123}, {'end': 4511.646, 'text': 'the range of values that can be stored and the set of operations that can be applied to the variable.', 'start': 4506.323, 'duration': 5.323}, {'end': 4517.149, 'text': 'Data types can be categorized into two major types, primitive and non-primitive.', 'start': 4512.106, 'duration': 5.043}, {'end': 4520.091, 'text': 'So basically primitive is not object.', 'start': 4517.71, 'duration': 2.381}], 'summary': 'Determining memory allocation in java based on data types - primitive and non-primitive.', 'duration': 25.295, 'max_score': 4494.796, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s4494796.jpg'}, {'end': 4785.366, 'src': 'embed', 'start': 4752.803, 'weight': 3, 'content': [{'end': 4754.484, 'text': 'You could try it out on your own.', 'start': 4752.803, 'duration': 1.681}, {'end': 4757.866, 'text': 'You could write out this data type program.', 'start': 4754.624, 'duration': 3.242}, {'end': 4760.948, 'text': 'You could just assign something and just try to print it out.', 'start': 4758.027, 'duration': 2.921}, {'end': 4763.55, 'text': 'We are talking about data type conversions.', 'start': 4761.529, 'duration': 2.021}, {'end': 4767.613, 'text': 'So we have implicit and explicit conversions.', 'start': 4764.511, 'duration': 3.102}, {'end': 4777.34, 'text': "some case programmers don't have to actually write explicit conversions from one data type to other, but in many cases programmers need to.", 'start': 4768.393, 'duration': 8.947}, {'end': 4785.366, 'text': 'so the arrow in the diagram shows the possible implicit type casting that are permissible with primitive data types.', 'start': 4777.34, 'duration': 8.026}], 'summary': 'Discussion of implicit and explicit data type conversions in programming.', 'duration': 32.563, 'max_score': 4752.803, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s4752803.jpg'}, {'end': 5620.941, 'src': 'embed', 'start': 5589.741, 'weight': 4, 'content': [{'end': 5592.263, 'text': "Now, let's talk about the control statement in Java.", 'start': 5589.741, 'duration': 2.522}, {'end': 5597.308, 'text': 'Now again, this one is pretty much similar to other programming languages.', 'start': 5592.823, 'duration': 4.485}, {'end': 5598.068, 'text': 'Nothing different.', 'start': 5597.408, 'duration': 0.66}, {'end': 5600.27, 'text': 'Nothing different in Java.', 'start': 5598.749, 'duration': 1.521}, {'end': 5602.612, 'text': 'So you have control statements.', 'start': 5600.731, 'duration': 1.881}, {'end': 5604.995, 'text': 'You have iterative statements.', 'start': 5603.233, 'duration': 1.762}, {'end': 5606.296, 'text': 'You have jump statements.', 'start': 5605.035, 'duration': 1.261}, {'end': 5613.816, 'text': 'So one is selection or decision-making statements, which is like if else, if else ladder you have.', 'start': 5607.151, 'duration': 6.665}, {'end': 5620.941, 'text': "if, if this particular condition satisfies, do some things, do some execute group of statements and if it doesn't,", 'start': 5613.816, 'duration': 7.125}], 'summary': 'Java control statements include selection, iteration, and jump statements, similar to other languages.', 'duration': 31.2, 'max_score': 5589.741, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s5589741.jpg'}], 'start': 3847.432, 'title': 'Java programming fundamentals', 'summary': 'Covers thread synchronization, variables, data types, memory allocation, type conversions, and operators in java, with a focus on control statements, providing comprehensive examples and quantifiable data.', 'chapters': [{'end': 3890.043, 'start': 3847.432, 'title': 'Thread synchronization in java', 'summary': "Explains the concept of thread synchronization in java, highlighting the use of 'synchronized' keyword to control access to shared resources and methods, and the integration of synchronized in the development environment for ease of use.", 'duration': 42.611, 'highlights': ["The 'synchronized' keyword in Java ensures that only one thread can access a synchronized method at a time, controlling parallel execution.", 'By making a method private and synchronized, it ensures that only one thread can access it at a time, preventing concurrent access to shared resources.', "The integrated development environment (IDE) provides convenient support for the 'synchronized' keyword, offering auto-completion and suggestions while typing, simplifying the coding process."]}, {'end': 4656.072, 'start': 3890.463, 'title': 'Java variables, data types & memory allocation', 'summary': 'Explains the concepts of synchronized and volatile, variable types (local, instance, static), instance variable allocation, memory visibility, instance variable access, static variable characteristics, and primitive vs non-primitive data types and their memory allocation in java.', 'duration': 765.609, 'highlights': ['The chapter explains the concepts of synchronized and volatile, variable types (local, instance, static), instance variable allocation, memory visibility, instance variable access, static variable characteristics, and primitive vs non-primitive data types and their memory allocation in Java.', 'Synchronized ensures only one thread can access a resource at a given point, while volatile ensures the most recent value of a variable is directly stored in main memory for thread visibility.', 'Variables in Java include local, instance, and static types, each with specific scopes and accessibility, with instance variables having a copy per object and static variables being one per class.', 'Instance variables are created when an object is created and destroyed when the object is destroyed, with access modifiers and default values specified for different data types.', 'Static variables are stored in static memory, created when the program starts and destroyed when the program stops, with public accessibility and typically used for constants.', 'Data types in Java include primitive (byte, short, int, long, float, double, char, boolean) and non-primitive (object, string, arrays) types, each with specific memory consumption and value ranges.']}, {'end': 5203.196, 'start': 4656.567, 'title': 'Java data types & type conversions', 'summary': 'Covers java data types, including primitive and reference types, and discusses type conversions, highlighting implicit and explicit conversions with examples and quantifiable data.', 'duration': 546.629, 'highlights': ['Java data types, including primitive and reference types, are discussed, with an emphasis on how reference types hold a reference address to the object.', 'Type conversions are explained, focusing on implicit and explicit conversions, with examples demonstrating the possible conversions and the need for explicit type conversions.', 'The process of typecasting is detailed, showcasing examples of explicit typecasting and highlighting the potential loss of information during the conversion.', 'Methods for type conversion in wrapper classes are introduced, demonstrating how to convert string to integer and vice versa using wrapper class methods like parseInt and toString.', 'Operators in Java, such as unary, postfix, prefix, arithmetic, and shifting operations, are outlined, providing an overview of how they operate on data types.']}, {'end': 5588.96, 'start': 5203.196, 'title': 'Operators in programming', 'summary': 'Covers various types of operators including relational, bitwise, logical, ternary, assignment, unary, negation, arithmetic, and shift operators, and highlights their functionalities and use cases in programming.', 'duration': 385.764, 'highlights': ["The chapter explains relational operators such as less than, greater than, equal to, and not equal, along with examples like 'a less than b' resulting in false and 'a equals equals b' resulting in true.", "It covers logical operators like 'and' and 'or' used for combining conditions, with an example of 'a is less than b and d is less than b' resulting in false.", "The section demonstrates the use of ternary operator for conditional assignments, exemplifying 'if a is less than b then assign 100, else assign 200' as a practical application.", "It details the functionalities of assignment operators like equal to, plus equal to, and minus equal to, with practical examples such as 'A plus equal to B' resulting in A being assigned the value of 60.", 'The transcript elaborates on unary operators like post increment and pre decrement, showcasing examples of their usage and the resulting values after the operations.']}, {'end': 5868.117, 'start': 5589.741, 'title': 'Java control statements', 'summary': 'Explains control statements in java, including iterative statements, jump statements, and decision-making statements like if-else and switch. it also covers iteration using for loop and while loop, and provides examples to illustrate their functionality.', 'duration': 278.376, 'highlights': ['The chapter explains control statements in Java, including iterative statements, jump statements, and decision-making statements like if-else and switch.', 'It also covers iteration using for loop and while loop, and provides examples to illustrate their functionality.', 'The if else construct is explained with examples, demonstrating its functionality in decision-making based on conditions.']}], 'duration': 2020.685, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s3847432.jpg', 'highlights': ["The 'synchronized' keyword in Java ensures only one thread can access a synchronized method at a time, controlling parallel execution.", 'Variables in Java include local, instance, and static types, each with specific scopes and accessibility.', 'Data types in Java include primitive (byte, short, int, long, float, double, char, boolean) and non-primitive (object, string, arrays) types, each with specific memory consumption and value ranges.', 'Type conversions are explained, focusing on implicit and explicit conversions, with examples demonstrating the possible conversions and the need for explicit type conversions.', 'The chapter explains control statements in Java, including iterative statements, jump statements, and decision-making statements like if-else and switch.']}, {'end': 7207.636, 'segs': [{'end': 5896.732, 'src': 'embed', 'start': 5868.977, 'weight': 0, 'content': [{'end': 5871.939, 'text': 'Now we are talking about the switch statement.', 'start': 5868.977, 'duration': 2.962}, {'end': 5877.922, 'text': 'So you have switch expression and you would have case written against it.', 'start': 5872.439, 'duration': 5.483}, {'end': 5879.802, 'text': 'Whatever case you want to execute.', 'start': 5878.242, 'duration': 1.56}, {'end': 5884.345, 'text': 'So basically you would have for value one.', 'start': 5880.703, 'duration': 3.642}, {'end': 5891.228, 'text': 'So yeah, what we are trying to say here is we have a switch expression and we have a value for value one.', 'start': 5885.065, 'duration': 6.163}, {'end': 5896.732, 'text': 'as its value, then execute this piece of code and then break out.', 'start': 5891.61, 'duration': 5.122}], 'summary': 'Discussion about switch statement with one case and its execution.', 'duration': 27.755, 'max_score': 5868.977, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s5868977.jpg'}, {'end': 6002.536, 'src': 'embed', 'start': 5974.181, 'weight': 1, 'content': [{'end': 5981.865, 'text': 'so after every loop the condition would be checked and if the condition is true, it would loop again and if not, then it would come out.', 'start': 5974.181, 'duration': 7.684}, {'end': 5989.289, 'text': 'there are three types of for loop in java simple for loop, similar to c like for int, i is equal to 0.', 'start': 5981.865, 'duration': 7.424}, {'end': 5990.87, 'text': 'i is less than 10.', 'start': 5989.289, 'duration': 1.581}, {'end': 6002.536, 'text': 'i plus plus would be a simple for loop for each, or an enhanced for loop and labeled for loop for each is basically iterating on array list.', 'start': 5990.87, 'duration': 11.666}], 'summary': 'In java, there are three types of for loops: simple, enhanced, and labeled, with the condition checked after every loop.', 'duration': 28.355, 'max_score': 5974.181, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s5974181.jpg'}, {'end': 6267.152, 'src': 'embed', 'start': 6236.293, 'weight': 2, 'content': [{'end': 6240.936, 'text': 'So no matter what, some value would be printed for sure when you use do while.', 'start': 6236.293, 'duration': 4.643}, {'end': 6245.859, 'text': 'Now we have jump statements, which is break is like coming out of a loop.', 'start': 6241.736, 'duration': 4.123}, {'end': 6249.817, 'text': "So as we mentioned, it's the innermost loop that it comes out of.", 'start': 6246.454, 'duration': 3.363}, {'end': 6251.739, 'text': "So that's what break does.", 'start': 6250.437, 'duration': 1.302}, {'end': 6258.705, 'text': 'If a particular thing is met or you could write a condition for a particular loop to be broken rather than continuing it.', 'start': 6252.239, 'duration': 6.466}, {'end': 6267.152, 'text': 'So basically you could have like this would be more or less like you could have an infinite loop, say, for example, running through.', 'start': 6259.285, 'duration': 7.867}], 'summary': 'Using do-while loop ensures a value is printed; break statement exits the innermost loop.', 'duration': 30.859, 'max_score': 6236.293, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s6236293.jpg'}, {'end': 7150.736, 'src': 'embed', 'start': 7120.028, 'weight': 3, 'content': [{'end': 7121.349, 'text': 'Add is the name of the method.', 'start': 7120.028, 'duration': 1.321}, {'end': 7123.491, 'text': "It's taken two arguments, ARG1, ARG2.", 'start': 7121.77, 'duration': 1.721}, {'end': 7126.149, 'text': 'within the body.', 'start': 7125.069, 'duration': 1.08}, {'end': 7134.652, 'text': 'you are adding two numbers and you are returning result, which is integer which aligns to the signature that you have put here.', 'start': 7126.149, 'duration': 8.503}, {'end': 7136.052, 'text': 'all right in the main method.', 'start': 7134.652, 'duration': 1.4}, {'end': 7139.453, 'text': 'just to check whether this add method is functioning properly.', 'start': 7136.052, 'duration': 3.401}, {'end': 7144.374, 'text': 'what you do is you create the instance of calculator, you add two numbers,', 'start': 7139.453, 'duration': 4.921}, {'end': 7150.736, 'text': 'you pass two numbers to it 10 and 30 and we are going to print the result and see if it returns as expected.', 'start': 7144.374, 'duration': 6.362}], 'summary': "The 'add' method takes 2 arguments, adds 2 numbers, and returns an integer, as demonstrated by passing 10 and 30.", 'duration': 30.708, 'max_score': 7120.028, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s7120028.jpg'}], 'start': 5868.977, 'title': 'Java programming fundamentals', 'summary': 'Covers switch statement, for loop types, loops, jump statements, methods in java, emphasizing the use of switch expression, three types of for loops, avoiding labeled for loop, simple while and do while loops, and the creation of java methods and classes.', 'chapters': [{'end': 5948.717, 'start': 5868.977, 'title': 'Switch statement explained', 'summary': 'Explains the switch statement in programming, highlighting the use of switch expression with case values to execute specific code, emphasizing the mutually exclusive nature of cases, and providing an example of a switch statement with a value of 40, showcasing the execution of specific cases and the default case.', 'duration': 79.74, 'highlights': ['The switch expression allows for the execution of specific code based on case values, with the requirement to break out of each condition to ensure mutually exclusive execution.', 'An example of a switch statement with a value of 40 is provided, demonstrating the execution of specific cases for values 20, 30, and 40, along with the default case for values not covered.', 'The switch statement ensures that only one case is executed based on the value, promoting the use of break statements to exit the condition.', 'The transcript emphasizes the importance of breaking out of all conditions in a switch statement, ensuring only one case is executed, with the default case serving as a catch-all for values not covered by specific cases.']}, {'end': 6189.32, 'start': 5949.258, 'title': 'Java for loop types', 'summary': 'Discusses the three types of for loops in java: simple for loop, enhanced for loop, and labeled for loop, emphasizing the ease of iteration and the importance of avoiding the labeled for loop due to debugging complexities.', 'duration': 240.062, 'highlights': ['Java has three types of for loops: simple for loop, enhanced for loop, and labeled for loop, each serving different iteration purposes.', "The simple for loop in Java follows the syntax 'for(initialization; condition; increment/decrement)', allowing control over the loop's execution and iteration steps.", 'The enhanced for loop in Java simplifies iteration through arrays or collections by automatically assigning the value of each element to a variable, eliminating the need to deal with indexes.', 'Labeled for loop in Java allows the use of labels for nested loops, but it is not recommended due to its complexity in debugging and should be avoided in favor of simple for loops.']}, {'end': 6692.693, 'start': 6189.864, 'title': 'Java loops, jump statements, and methods', 'summary': 'Covers the types of loops in java, including simple while and do while loops, and explains the function of jump statements like break and continue. it also discusses the concept of methods in java, highlighting their role in defining class behavior, minimizing redundancy, and increasing code reusability.', 'duration': 502.829, 'highlights': ['The chapter covers the types of loops in Java, including simple while and do while loops, and explains the function of jump statements like break and continue.', 'It also discusses the concept of methods in Java, highlighting their role in defining class behavior, minimizing redundancy, and increasing code reusability.']}, {'end': 7207.636, 'start': 6693.773, 'title': 'Introduction to java methods and classes', 'summary': "Explains the creation of a java class 'calculator' with a method 'add' to add two numbers, and the main method to test its functionality, using public access modifier and static and non-static methods.", 'duration': 513.863, 'highlights': ["Java class 'calculator' with method 'add' is created to add two numbers.", 'Explanation of public access modifier and static and non-static methods in Java.', "Testing the 'add' method functionality using the main method."]}], 'duration': 1338.659, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s5868977.jpg', 'highlights': ['The switch expression allows for the execution of specific code based on case values, with the requirement to break out of each condition to ensure mutually exclusive execution.', 'Java has three types of for loops: simple for loop, enhanced for loop, and labeled for loop, each serving different iteration purposes.', 'The chapter covers the types of loops in Java, including simple while and do while loops, and explains the function of jump statements like break and continue.', "Java class 'calculator' with method 'add' is created to add two numbers."]}, {'end': 8849.838, 'segs': [{'end': 7296.243, 'src': 'embed', 'start': 7266.701, 'weight': 1, 'content': [{'end': 7272.425, 'text': "and if it doesn't have a main method, then it would give you an error saying that a class can't be run.", 'start': 7266.701, 'duration': 5.724}, {'end': 7275.347, 'text': "so it's pretty much similar to an executable file, right.", 'start': 7272.425, 'duration': 2.922}, {'end': 7282.193, 'text': "so if you're trying to run a class, it has to have a main method, or you won't be able to run the class directly.", 'start': 7275.347, 'duration': 6.846}, {'end': 7284.434, 'text': "so that's where the execution starts from.", 'start': 7282.193, 'duration': 2.241}, {'end': 7287.376, 'text': "that's the entry point for your program.", 'start': 7284.434, 'duration': 2.942}, {'end': 7296.243, 'text': 'okay. so once it encounters main and everything is good, your jvm would start executing the statements that are there within your main method.', 'start': 7287.376, 'duration': 8.867}], 'summary': "A class must have a main method to be run; it serves as the entry point for the program's execution.", 'duration': 29.542, 'max_score': 7266.701, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s7266701.jpg'}, {'end': 7339.24, 'src': 'embed', 'start': 7311.712, 'weight': 2, 'content': [{'end': 7319.335, 'text': "So basically what's happening behind the scenes is, you know, JVM would execute the sequence of statements that you have with the name.", 'start': 7311.712, 'duration': 7.623}, {'end': 7323.537, 'text': 'So again, coming back to the example add example.', 'start': 7320.836, 'duration': 2.701}, {'end': 7327.592, 'text': 'so within the main you invoke the add method.', 'start': 7324.289, 'duration': 3.303}, {'end': 7329.633, 'text': 'right when you invoke add method,', 'start': 7327.592, 'duration': 2.041}, {'end': 7339.24, 'text': 'the control would go to the add numbers method and it would again execute whatever functionality you have put within that particular method.', 'start': 7329.633, 'duration': 9.607}], 'summary': 'Jvm executes sequence of statements with method invocation.', 'duration': 27.528, 'max_score': 7311.712, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s7311712.jpg'}, {'end': 7699.322, 'src': 'heatmap', 'start': 7329.633, 'weight': 0.709, 'content': [{'end': 7339.24, 'text': 'the control would go to the add numbers method and it would again execute whatever functionality you have put within that particular method.', 'start': 7329.633, 'duration': 9.607}, {'end': 7343.123, 'text': 'this case it was addition of two numbers, so it would execute.', 'start': 7339.24, 'duration': 3.883}, {'end': 7348.127, 'text': 'once the execution is done, it would return whatever is being written out.', 'start': 7343.123, 'duration': 5.004}, {'end': 7350.949, 'text': 'so in this case ours was addition of two numbers.', 'start': 7348.127, 'duration': 2.822}, {'end': 7354.903, 'text': 'So it would return addition of two numbers back to the calling program.', 'start': 7351.482, 'duration': 3.421}, {'end': 7360.924, 'text': 'So your calling method was the main method, wherein you call this add numbers from okay?', 'start': 7355.523, 'duration': 5.401}, {'end': 7365.525, 'text': "So it would come back to the main method, and that's how it prints it out.", 'start': 7361.444, 'duration': 4.081}, {'end': 7374.268, 'text': 'So, following the invocation of add numbers, you could see that we have printed out the result that comes out of this add numbers,', 'start': 7366.006, 'duration': 8.262}, {'end': 7376.628, 'text': "and that's how it gets printed onto your console.", 'start': 7374.268, 'duration': 2.36}, {'end': 7383.229, 'text': "So that's a sequence of execution that happens behind the scenes.", 'start': 7377.308, 'duration': 5.921}, {'end': 7385.19, 'text': 'now, what are the ways in which you could call?', 'start': 7383.229, 'duration': 1.961}, {'end': 7387.411, 'text': 'a method is called by value.', 'start': 7385.19, 'duration': 2.221}, {'end': 7394.135, 'text': 'called by value is nothing, but instead of passing the memory location, it passes the value of a particular variable.', 'start': 7387.411, 'duration': 6.724}, {'end': 7400.099, 'text': 'okay, so this is similar to call by value and call by reference that we have in C.', 'start': 7394.135, 'duration': 5.964}, {'end': 7406.803, 'text': "okay, instead of passing the memory reference or instead of passing the reference, it's just a value that's been passed.", 'start': 7400.099, 'duration': 6.704}, {'end': 7415.768, 'text': "So if you change something within the method, or if you change the value that's been passed within the method, only the local copy would change,", 'start': 7407.244, 'duration': 8.524}, {'end': 7418.249, 'text': 'whereas the main copy would remain as is.', 'start': 7415.768, 'duration': 2.481}, {'end': 7424.191, 'text': 'But basically, call by value is just passing the value, but not the actual reference.', 'start': 7418.929, 'duration': 5.262}, {'end': 7431.815, 'text': 'All right, so to understand call by value, you could, so this would give you some idea.', 'start': 7425.632, 'duration': 6.183}, {'end': 7442.644, 'text': 'So say, for example, I have integer arg1 which is equal to 10, integer arg2 which is equal to 30.', 'start': 7432.015, 'duration': 10.629}, {'end': 7451.111, 'text': 'okay, now i pass arg1 comma arg2.', 'start': 7442.644, 'duration': 8.467}, {'end': 7454.154, 'text': "so what's happening here is it's passed by value.", 'start': 7451.111, 'duration': 3.043}, {'end': 7456.095, 'text': 'so suppose you change.', 'start': 7454.154, 'duration': 1.941}, {'end': 7464.233, 'text': "so what i'm trying to say is here if you change arg1 to something else, say 100.", 'start': 7456.095, 'duration': 8.138}, {'end': 7471.735, 'text': 'So what we are trying to do here is we are trying to pass this to arguments ARG1, ARG2 to add method.', 'start': 7464.233, 'duration': 7.502}, {'end': 7476.576, 'text': 'And within the add method, we are changing this ARG1 to 100.', 'start': 7472.235, 'duration': 4.341}, {'end': 7482.818, 'text': 'Basically, we would check whether this 100 is being reflected in ARG1 here.', 'start': 7476.576, 'duration': 6.242}, {'end': 7488.359, 'text': 'ARG1 here would change to 100 as well.', 'start': 7484.518, 'duration': 3.841}, {'end': 7490.319, 'text': "Let's see what happens here.", 'start': 7489.079, 'duration': 1.24}, {'end': 7492.82, 'text': 'So I print it.', 'start': 7491.78, 'duration': 1.04}, {'end': 7497.392, 'text': 'Okay, before passing it by value.', 'start': 7495.751, 'duration': 1.641}, {'end': 7500.154, 'text': 'So I print arg1 here.', 'start': 7497.993, 'duration': 2.161}, {'end': 7504.557, 'text': 'Okay, and after I give a call, I will again print it.', 'start': 7500.775, 'duration': 3.782}, {'end': 7514.044, 'text': 'Printing arg1 after passing it by value to a method, add method.', 'start': 7506.118, 'duration': 7.926}, {'end': 7517.707, 'text': "All right, so let's run this.", 'start': 7515.465, 'duration': 2.242}, {'end': 7524.414, 'text': "So basically, since it's passed by value, arg1 would remain as 10.", 'start': 7518.707, 'duration': 5.707}, {'end': 7526.916, 'text': "Okay, so that's what pass-by value is all over.", 'start': 7524.414, 'duration': 2.502}, {'end': 7536.224, 'text': 'So here you can see ARG1 before passing was 10 and ARG1 after passing was again 10.', 'start': 7527.497, 'duration': 8.727}, {'end': 7540.228, 'text': "All right, so the change that you made here doesn't reflect here.", 'start': 7536.224, 'duration': 4.004}, {'end': 7542.189, 'text': "So that's pass-by value.", 'start': 7540.668, 'duration': 1.521}, {'end': 7548.675, 'text': "All right, so there's one more concept of method overloading within Java.", 'start': 7543.911, 'duration': 4.764}, {'end': 7552.078, 'text': 'You could have same methods with different number of parameters.', 'start': 7548.695, 'duration': 3.383}, {'end': 7553.399, 'text': 'same method.', 'start': 7552.699, 'duration': 0.7}, {'end': 7559.441, 'text': 'when I say same method, it has got a same method name, which would take variable number of parameters.', 'start': 7553.399, 'duration': 6.042}, {'end': 7563.502, 'text': 'okay, the overloading happens at the compile time itself.', 'start': 7559.441, 'duration': 4.061}, {'end': 7571.545, 'text': 'so during compile time JVM understands to which method you are actually giving a call based on the actual parameters you pass on.', 'start': 7563.502, 'duration': 8.043}, {'end': 7584.28, 'text': 'so just to give you a fair idea about this, I define one more method, say add, which takes, say, integer, arg1.', 'start': 7571.545, 'duration': 12.735}, {'end': 7588.943, 'text': "let's keep this as so.", 'start': 7584.28, 'duration': 4.663}, {'end': 7590.944, 'text': 'i define three parameters here.', 'start': 7588.943, 'duration': 2.001}, {'end': 7593.826, 'text': 'so instead of two, i define three parameters here.', 'start': 7590.944, 'duration': 2.882}, {'end': 7598.169, 'text': 'this is nothing but method overloading, all right.', 'start': 7593.826, 'duration': 4.343}, {'end': 7605.674, 'text': 'so here i define arg1 plus arg2 plus arg3, all right.', 'start': 7598.169, 'duration': 7.505}, {'end': 7614.302, 'text': 'so we sum it up here and we return it back to the calling program.', 'start': 7605.674, 'duration': 8.628}, {'end': 7618.646, 'text': "so one thing to note here is it's not giving you compile time error right.", 'start': 7614.302, 'duration': 4.344}, {'end': 7623.05, 'text': 'so you can see that it has accepted this add method as well.', 'start': 7618.646, 'duration': 4.404}, {'end': 7626.092, 'text': 'so you can see here the signature is pretty much same.', 'start': 7623.05, 'duration': 3.042}, {'end': 7630.996, 'text': 'only thing is we have one more extra parameter, which is arg3.', 'start': 7626.092, 'duration': 4.904}, {'end': 7634.659, 'text': 'so it is treating these two methods as a different method.', 'start': 7630.996, 'duration': 3.663}, {'end': 7636.661, 'text': "that's what method overloading is all about.", 'start': 7634.659, 'duration': 2.002}, {'end': 7643.463, 'text': 'Suppose I define one more ARGP.', 'start': 7637.819, 'duration': 5.644}, {'end': 7646.225, 'text': 'I say 40..', 'start': 7643.463, 'duration': 2.762}, {'end': 7648.807, 'text': 'All right, so we have three parameters here.', 'start': 7646.225, 'duration': 2.582}, {'end': 7654.732, 'text': "I'm giving a call to add ARG1, ARG2.", 'start': 7649.188, 'duration': 5.544}, {'end': 7659.275, 'text': 'If I put ARG1, ARG2, the first add method would be called.', 'start': 7655.112, 'duration': 4.163}, {'end': 7669.485, 'text': 'If I have one more ARG3, now the second add parameter or the second add method would be called.', 'start': 7659.655, 'duration': 9.83}, {'end': 7676.471, 'text': "so let's define result from new add method, right.", 'start': 7669.485, 'duration': 6.986}, {'end': 7686.859, 'text': 'so here we say okay, so, as i said, we have overloaded the add method.', 'start': 7676.471, 'duration': 10.388}, {'end': 7694.659, 'text': 'overloading is nothing but same method name, but different arguments or different number of arguments, Or it could be different types as well.', 'start': 7686.859, 'duration': 7.8}, {'end': 7699.322, 'text': 'You could have only two arguments, but one is integer and one is something else.', 'start': 7694.759, 'duration': 4.563}], 'summary': 'Explanation of method invocation, call by value, and method overloading in java.', 'duration': 369.689, 'max_score': 7329.633, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s7329633.jpg'}, {'end': 7424.191, 'src': 'embed', 'start': 7400.099, 'weight': 3, 'content': [{'end': 7406.803, 'text': "okay, instead of passing the memory reference or instead of passing the reference, it's just a value that's been passed.", 'start': 7400.099, 'duration': 6.704}, {'end': 7415.768, 'text': "So if you change something within the method, or if you change the value that's been passed within the method, only the local copy would change,", 'start': 7407.244, 'duration': 8.524}, {'end': 7418.249, 'text': 'whereas the main copy would remain as is.', 'start': 7415.768, 'duration': 2.481}, {'end': 7424.191, 'text': 'But basically, call by value is just passing the value, but not the actual reference.', 'start': 7418.929, 'duration': 5.262}], 'summary': 'Call by value passes only the value, not the reference, preserving the main copy.', 'duration': 24.092, 'max_score': 7400.099, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s7400099.jpg'}, {'end': 7563.502, 'src': 'embed', 'start': 7536.224, 'weight': 0, 'content': [{'end': 7540.228, 'text': "All right, so the change that you made here doesn't reflect here.", 'start': 7536.224, 'duration': 4.004}, {'end': 7542.189, 'text': "So that's pass-by value.", 'start': 7540.668, 'duration': 1.521}, {'end': 7548.675, 'text': "All right, so there's one more concept of method overloading within Java.", 'start': 7543.911, 'duration': 4.764}, {'end': 7552.078, 'text': 'You could have same methods with different number of parameters.', 'start': 7548.695, 'duration': 3.383}, {'end': 7553.399, 'text': 'same method.', 'start': 7552.699, 'duration': 0.7}, {'end': 7559.441, 'text': 'when I say same method, it has got a same method name, which would take variable number of parameters.', 'start': 7553.399, 'duration': 6.042}, {'end': 7563.502, 'text': 'okay, the overloading happens at the compile time itself.', 'start': 7559.441, 'duration': 4.061}], 'summary': 'Java allows method overloading with different parameter counts, resolved at compile time.', 'duration': 27.278, 'max_score': 7536.224, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s7536224.jpg'}, {'end': 7770.104, 'src': 'embed', 'start': 7741.026, 'weight': 4, 'content': [{'end': 7750.279, 'text': "Now, let's start off with arrays, right? What is the concept of arrays? Again, this is similar to other programming languages.", 'start': 7741.026, 'duration': 9.253}, {'end': 7755.68, 'text': 'Arrays are nothing but grouping data or grouping values of same data type.', 'start': 7750.759, 'duration': 4.921}, {'end': 7762.562, 'text': 'Arrays are used to solve the problem of storing multiple elements of the same data type.', 'start': 7756.22, 'duration': 6.342}, {'end': 7770.104, 'text': 'An array is a group of like-typed variables that are referred to by a common name.', 'start': 7764.142, 'duration': 5.962}], 'summary': 'Arrays group same data type values to solve storage problem.', 'duration': 29.078, 'max_score': 7741.026, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s7741026.jpg'}, {'end': 7898.114, 'src': 'embed', 'start': 7817.753, 'weight': 5, 'content': [{'end': 7826.938, 'text': 'So, in Java, when you define an array, you either give the number of elements that you can store in the array, which is nothing but the array size,', 'start': 7817.753, 'duration': 9.185}, {'end': 7832.702, 'text': 'or you have to give the values that a particular array would contain right when you define it.', 'start': 7826.938, 'duration': 5.764}, {'end': 7842.089, 'text': 'But all in all you have to make sure that when you define an array you give the size as well, which cannot be changed in the future.', 'start': 7834.062, 'duration': 8.027}, {'end': 7846.092, 'text': 'The size of the array has to be mentioned during the declaration itself.', 'start': 7842.77, 'duration': 3.322}, {'end': 7848.695, 'text': "So here's an example of array.", 'start': 7847.093, 'duration': 1.602}, {'end': 7856.321, 'text': 'This array has around four which has four subjects which stores marks of four subjects for a student.', 'start': 7849.355, 'duration': 6.966}, {'end': 7862.876, 'text': 'Okay So here you could see indexes in the white box which says 0 1 2 3.', 'start': 7856.862, 'duration': 6.014}, {'end': 7863.977, 'text': "It's always in sequence.", 'start': 7862.877, 'duration': 1.1}, {'end': 7868.58, 'text': 'It starts with 0 and it ends with n minus 1.', 'start': 7864.157, 'duration': 4.423}, {'end': 7876.644, 'text': 'So basically this array is of size 4 which starts from index ranges from 0 to 3.', 'start': 7868.58, 'duration': 8.064}, {'end': 7876.984, 'text': 'All right.', 'start': 7876.644, 'duration': 0.34}, {'end': 7883.088, 'text': "The value that is stored is nothing but the that's a marks in a particular subject.", 'start': 7877.685, 'duration': 5.403}, {'end': 7886.81, 'text': 'which is like 87, 60, 70 and 80.', 'start': 7883.729, 'duration': 3.081}, {'end': 7889.291, 'text': "That's a value that's been stored into this area.", 'start': 7886.81, 'duration': 2.481}, {'end': 7894.253, 'text': 'OK, we can access any of these indexes.', 'start': 7890.171, 'duration': 4.082}, {'end': 7898.114, 'text': 'Suppose you want to access at index one, you could do it.', 'start': 7894.953, 'duration': 3.161}], 'summary': 'In java, array size is fixed at declaration; example array has size 4 with marks 87, 60, 70, 80.', 'duration': 80.361, 'max_score': 7817.753, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s7817753.jpg'}, {'end': 8024.002, 'src': 'embed', 'start': 7997.219, 'weight': 7, 'content': [{'end': 8001.601, 'text': 'If you try to access index five, you would get this exception.', 'start': 7997.219, 'duration': 4.382}, {'end': 8010.744, 'text': 'Exception is nothing but an anomaly situation, right? Which are something which is not expected as occurred in your program.', 'start': 8002.701, 'duration': 8.043}, {'end': 8015.285, 'text': 'And Java expresses such event by throwing out an exception.', 'start': 8010.964, 'duration': 4.321}, {'end': 8017.326, 'text': "You can't access index five.", 'start': 8015.725, 'duration': 1.601}, {'end': 8021.08, 'text': 'so different ways of declaring array.', 'start': 8018.439, 'duration': 2.641}, {'end': 8024.002, 'text': "we saw that it's with new keyword all right.", 'start': 8021.08, 'duration': 2.922}], 'summary': 'Java arrays: accessing index 5 leads to exception explained.', 'duration': 26.783, 'max_score': 7997.219, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s7997219.jpg'}, {'end': 8121.885, 'src': 'embed', 'start': 8097.431, 'weight': 9, 'content': [{'end': 8105.412, 'text': "Only thing is syntactically it's varying, but what I'm trying to say is JVM doesn't do anything different to actually execute it.", 'start': 8097.431, 'duration': 7.981}, {'end': 8115.08, 'text': 'so the length of the array is set when it is declared, and when an array is declared, array index gets initialized.', 'start': 8106.895, 'duration': 8.185}, {'end': 8116.061, 'text': 'all right.', 'start': 8115.08, 'duration': 0.981}, {'end': 8121.885, 'text': 'so if you define an array and if you try to print the length of it, you could see that it prints out.', 'start': 8116.061, 'duration': 5.824}], 'summary': "Jvm doesn't execute differently based on array length; array index initialized upon declaration.", 'duration': 24.454, 'max_score': 8097.431, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s8097431.jpg'}, {'end': 8319.102, 'src': 'embed', 'start': 8287.775, 'weight': 10, 'content': [{'end': 8292.377, 'text': 'So X increases when you go down and Y increases as you go to the right.', 'start': 8287.775, 'duration': 4.602}, {'end': 8295.317, 'text': 'The memory allocation of array.', 'start': 8293.316, 'duration': 2.001}, {'end': 8302.921, 'text': 'So, for single dimensional array of type integer, one integer value takes four bytes, right?', 'start': 8295.938, 'duration': 6.983}, {'end': 8308.538, 'text': 'So now, when you declare an array of size five, you would have 20 bytes reserved.', 'start': 8303.456, 'duration': 5.082}, {'end': 8310.959, 'text': "That's how memory is being allocated.", 'start': 8309.237, 'duration': 1.722}, {'end': 8319.102, 'text': 'Right If you have a character array of size five, it would be 10 bytes since each character takes two bytes in Java.', 'start': 8310.999, 'duration': 8.103}], 'summary': 'Memory allocation: 1 int = 4 bytes, 1 char = 2 bytes.', 'duration': 31.327, 'max_score': 8287.775, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s8287775.jpg'}, {'end': 8390.384, 'src': 'embed', 'start': 8361.148, 'weight': 11, 'content': [{'end': 8366.572, 'text': "Let's write some programs and understand more about how this arrays operate.", 'start': 8361.148, 'duration': 5.424}, {'end': 8369.933, 'text': 'So we have an array of five elements.', 'start': 8367.312, 'duration': 2.621}, {'end': 8370.974, 'text': 'All right.', 'start': 8370.634, 'duration': 0.34}, {'end': 8378.778, 'text': 'As you could see here, two, four, six, eight and 10 write a program to access element at a specific index.', 'start': 8371.353, 'duration': 7.425}, {'end': 8385.802, 'text': 'OK, so you have an array of five elements, two, four, six, eight and 10.', 'start': 8379.157, 'duration': 6.645}, {'end': 8387.041, 'text': 'And we want to access it.', 'start': 8385.802, 'duration': 1.239}, {'end': 8389.804, 'text': 'We want to access particular element.', 'start': 8387.583, 'duration': 2.221}, {'end': 8390.384, 'text': 'All right.', 'start': 8390.124, 'duration': 0.26}], 'summary': 'Learning about array operations with 5 elements, 2, 4, 6, 8, 10.', 'duration': 29.236, 'max_score': 8361.148, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s8361147.jpg'}, {'end': 8630.028, 'src': 'embed', 'start': 8595.555, 'weight': 12, 'content': [{'end': 8606.082, 'text': "Okay, now let's define multidimensional array, write a code to find the length of row zero, right? So let's define a multidimensional array.", 'start': 8595.555, 'duration': 10.527}, {'end': 8612.086, 'text': 'All right, so we have a multidimensional array here.', 'start': 8609.124, 'duration': 2.962}, {'end': 8620.171, 'text': 'So how you define multidimensional array is something like one, two, three, four.', 'start': 8612.626, 'duration': 7.545}, {'end': 8624.834, 'text': 'All right, so this is a multidimensional array that you have.', 'start': 8621.672, 'duration': 3.162}, {'end': 8630.028, 'text': 'OK, so we have defined a multidimensional array.', 'start': 8627.426, 'duration': 2.602}], 'summary': 'Defining and using a multidimensional array in code.', 'duration': 34.473, 'max_score': 8595.555, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s8595555.jpg'}, {'end': 8857.751, 'src': 'embed', 'start': 8826.926, 'weight': 13, 'content': [{'end': 8828.967, 'text': 'So one of them being array copy.', 'start': 8826.926, 'duration': 2.041}, {'end': 8839.052, 'text': 'So here you have to give source and the starting index and the destination and what we are trying to do here is copy 5.', 'start': 8829.547, 'duration': 9.505}, {'end': 8845.255, 'text': 'So this is how we copy from one array into another starting from index 0.', 'start': 8839.052, 'duration': 6.203}, {'end': 8849.838, 'text': 'So this is copying and the other one that you see here is about delete.', 'start': 8845.255, 'duration': 4.583}, {'end': 8857.751, 'text': 'So, as I said, deleting is nothing, but we have a logic written here to shift the indexes to the left.', 'start': 8850.298, 'duration': 7.453}], 'summary': 'Demonstrating array copy and delete operations with specific examples.', 'duration': 30.825, 'max_score': 8826.926, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s8826926.jpg'}], 'start': 7210.734, 'title': 'Java program execution, method concepts, arrays, and memory allocation', 'summary': "Covers the sequence of program execution, the main method's role, method invocation, call by value, method overloading, arrays' definition, declaration, initialization, accessing elements, fixed size, single and multi-dimensional arrays, memory allocation, space requirements, error handling, and operations. it includes examples of method overloading, accessing array elements, array length, and types, along with syntax variations and use cases.", 'chapters': [{'end': 7739.846, 'start': 7210.734, 'title': 'Java program execution and method concepts', 'summary': 'Explains the sequence of program execution in java, highlighting the role of the main method as the entry point, the process of method invocation, and the concepts of call by value and method overloading. it also demonstrates an example of method overloading with different parameters and their execution at compile time.', 'duration': 529.112, 'highlights': ['The main method serves as the entry point for Java program execution, and its absence results in an error, similar to an executable file without an entry point.', 'Method invocation in Java involves the execution of the sequence of statements within the invoked method, returning the result to the calling program.', 'Call by value in Java involves passing the value of a variable instead of its memory location, demonstrating that changes made within the method only affect the local copy, not the main copy.', 'Method overloading in Java allows the existence of multiple methods with the same name but different parameters, determined at compile time, showcasing the flexibility to handle various method calls based on the provided parameters.']}, {'end': 8024.002, 'start': 7741.026, 'title': 'Arrays in java', 'summary': 'Explains the concept of arrays in java, including the definition, declaration, initialization, accessing elements by index, and the fixed size of arrays, with an example of storing marks for four subjects and the consequences of accessing indexes beyond the array size.', 'duration': 282.976, 'highlights': ['Arrays are used to solve the problem of storing multiple elements of the same data type.', 'Array size has to be mentioned during the declaration itself.', 'The array example demonstrates the storage of marks for four subjects with indexes ranging from 0 to 3.', 'Attempting to access index 5 would result in an exception due to the array size limitation.', 'Different ways of declaring arrays include specifying the number of elements or directly initializing the array with values.']}, {'end': 8287.115, 'start': 8024.002, 'title': 'Arrays in java', 'summary': 'Explains the declaration and initialization of arrays in java, including single and multi-dimensional arrays, with examples of syntax variations and use cases, illustrating that the jvm handles them similarly and demonstrating the array length and types.', 'duration': 263.113, 'highlights': ['The chapter explains the declaration and initialization of arrays in Java, including single and multi-dimensional arrays.', 'Illustrates that the JVM handles them similarly and demonstrating the array length and types.', 'Provides examples of syntax variations and use cases for single and multi-dimensional arrays.']}, {'end': 8849.838, 'start': 8287.775, 'title': 'Arrays and memory allocation', 'summary': 'Discusses memory allocation for single and multi-dimensional arrays, including the size and memory space requirements, accessing elements, error handling, and operations like copying and deleting elements.', 'duration': 562.063, 'highlights': ['Memory allocation for single dimensional array', 'Accessing elements of an array', 'Size of multidimensional array and accessing elements', 'Copying and deleting elements from an array']}], 'duration': 1639.104, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s7210734.jpg', 'highlights': ['Method overloading in Java allows the existence of multiple methods with the same name but different parameters, determined at compile time, showcasing the flexibility to handle various method calls based on the provided parameters.', 'The main method serves as the entry point for Java program execution, and its absence results in an error, similar to an executable file without an entry point.', 'Method invocation in Java involves the execution of the sequence of statements within the invoked method, returning the result to the calling program.', 'Call by value in Java involves passing the value of a variable instead of its memory location, demonstrating that changes made within the method only affect the local copy, not the main copy.', 'Arrays are used to solve the problem of storing multiple elements of the same data type.', 'The chapter explains the declaration and initialization of arrays in Java, including single and multi-dimensional arrays.', 'Array size has to be mentioned during the declaration itself.', 'Attempting to access index 5 would result in an exception due to the array size limitation.', 'Different ways of declaring arrays include specifying the number of elements or directly initializing the array with values.', 'Illustrates that the JVM handles them similarly and demonstrating the array length and types.', 'Memory allocation for single dimensional array', 'Accessing elements of an array', 'Size of multidimensional array and accessing elements', 'Copying and deleting elements from an array', 'The array example demonstrates the storage of marks for four subjects with indexes ranging from 0 to 3.']}, {'end': 10359.338, 'segs': [{'end': 8964.336, 'src': 'embed', 'start': 8936.254, 'weight': 0, 'content': [{'end': 8944.72, 'text': 'So Java has some kind of string management as well to make sure that programs run or make effective use of strings okay?', 'start': 8936.254, 'duration': 8.466}, {'end': 8956.328, 'text': "So here what's been mentioned is James is a data analyst and he's finding it really difficult to actually deal with character array to store patients' names every time.", 'start': 8945.22, 'duration': 11.108}, {'end': 8960.034, 'text': "so that's where we have string.", 'start': 8957.193, 'duration': 2.841}, {'end': 8964.336, 'text': 'so string is solving the problem of actually dealing with character array.', 'start': 8960.034, 'duration': 4.302}], 'summary': 'Java provides string management for effective use of strings, solving the problem of dealing with character arrays.', 'duration': 28.082, 'max_score': 8936.254, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s8936254.jpg'}, {'end': 9023.037, 'src': 'embed', 'start': 8990.713, 'weight': 1, 'content': [{'end': 8994.015, 'text': 'once a string object is created, it cannot be changed.', 'start': 8990.713, 'duration': 3.302}, {'end': 9000.54, 'text': "this is a immutability functionality of java wherein once you write to it, you can't change the value.", 'start': 8994.015, 'duration': 6.525}, {'end': 9009.186, 'text': 'so this is specifically important when it comes to multi-threading, when you have multiple threads accessing a particular string, a same string.', 'start': 9000.54, 'duration': 8.646}, {'end': 9016.494, 'text': "So that's when immutability helps us to make sure that you know multi threading is it's thread safe.", 'start': 9009.991, 'duration': 6.503}, {'end': 9023.037, 'text': 'We call it has thread safe because multiple threads can access the same string just because it is immutable.', 'start': 9016.654, 'duration': 6.383}], 'summary': 'In java, string objects are immutable, ensuring thread safety for multiple access.', 'duration': 32.324, 'max_score': 8990.713, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s8990713.jpg'}, {'end': 9174.263, 'src': 'embed', 'start': 9150.501, 'weight': 2, 'content': [{'end': 9158.447, 'text': 'As I said, string pool is all the constants that you define within the string within the application would be stored in the string pool.', 'start': 9150.501, 'duration': 7.946}, {'end': 9163.151, 'text': 'String pool used in Java is a pool of strings stored in Java heap memory.', 'start': 9159.008, 'duration': 4.143}, {'end': 9170.442, 'text': "So we have heap memory wherein the objects are created, and that's where string pool resides as well.", 'start': 9163.68, 'duration': 6.762}, {'end': 9174.263, 'text': 'String pool is possible only because strings are immutable.', 'start': 9170.982, 'duration': 3.281}], 'summary': 'String pool in java is a pool of immutable string constants stored in java heap memory.', 'duration': 23.762, 'max_score': 9150.501, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s9150501.jpg'}, {'end': 9304.34, 'src': 'embed', 'start': 9250.103, 'weight': 6, 'content': [{'end': 9254.904, 'text': 'Java strings are stored in string pool of heap area, which we already discussed.', 'start': 9250.103, 'duration': 4.801}, {'end': 9257.445, 'text': 'So we can see a string pool.', 'start': 9255.364, 'duration': 2.081}, {'end': 9260.586, 'text': 'So we have stack memory and heap memory.', 'start': 9258.185, 'duration': 2.401}, {'end': 9267.248, 'text': 'So when you have a local variable, when you define something locally, the reference is created in the stack.', 'start': 9260.766, 'duration': 6.482}, {'end': 9267.868, 'text': 'All right.', 'start': 9267.548, 'duration': 0.32}, {'end': 9273.45, 'text': 'And it points to the actual object is created in the heap, but the reference is created in the stack.', 'start': 9268.048, 'duration': 5.402}, {'end': 9277.631, 'text': 'So you could see as pointing to hello and string pool.', 'start': 9274.11, 'duration': 3.521}, {'end': 9283.35, 'text': 'Okay So S is nothing but a reference, reference to the string.', 'start': 9278.471, 'duration': 4.879}, {'end': 9288.472, 'text': 'Okay, so here we can see that we are concatenating, right?', 'start': 9284.55, 'duration': 3.922}, {'end': 9294.275, 'text': 'So this would give you a fair amount of idea what immutability is all about, right?', 'start': 9288.933, 'duration': 5.342}, {'end': 9299.218, 'text': 'So here we have string S1 is equal to happy, all right?', 'start': 9294.875, 'duration': 4.343}, {'end': 9304.34, 'text': 'And what we are printing out is the original string that is happy, right?', 'start': 9300.118, 'duration': 4.222}], 'summary': 'Java strings are stored in string pool of heap area. local variables are stored in the stack. demonstrates immutability with string concatenation.', 'duration': 54.237, 'max_score': 9250.103, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s9250103.jpg'}, {'end': 9836.463, 'src': 'embed', 'start': 9806.4, 'weight': 5, 'content': [{'end': 9808.341, 'text': 'which means both the strings are the same.', 'start': 9806.4, 'duration': 1.941}, {'end': 9811.942, 'text': 'We could get some character out from a string.', 'start': 9809.241, 'duration': 2.701}, {'end': 9815.283, 'text': "There's a method character at.", 'start': 9813.522, 'duration': 1.761}, {'end': 9822.425, 'text': "There's ends with, which again returns a Boolean value saying that whether a string ends with a particular character.", 'start': 9816.063, 'duration': 6.362}, {'end': 9833.942, 'text': "So here what we are doing is we are checking whether the string p, which holds the value happy learning is ending with u, which doesn't right.", 'start': 9823.625, 'duration': 10.317}, {'end': 9836.463, 'text': "that's the reason it gave you false.", 'start': 9833.942, 'duration': 2.521}], 'summary': "String methods like charat and endswith can check characters and endings, with 'endswith' returning a boolean value.", 'duration': 30.063, 'max_score': 9806.4, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s9806400.jpg'}, {'end': 9887.924, 'src': 'embed', 'start': 9859.261, 'weight': 3, 'content': [{'end': 9863.284, 'text': "So string buffer is nothing but it's good for multi-threading.", 'start': 9859.261, 'duration': 4.023}, {'end': 9865.946, 'text': 'When you have multiple threads.', 'start': 9863.744, 'duration': 2.202}, {'end': 9873.712, 'text': "usually it's good to have string buffer, because all the reads and writes that you do on the string it is synchronized.", 'start': 9865.946, 'duration': 7.766}, {'end': 9883.04, 'text': "So when I say synchronized, there's only one thread that could access a particular method within a class at any given point.", 'start': 9874.513, 'duration': 8.527}, {'end': 9887.924, 'text': "So you can't have multiple threads going in and changing the value or doing something.", 'start': 9883.561, 'duration': 4.363}], 'summary': 'String buffer is beneficial for multi-threading as it synchronizes reads and writes.', 'duration': 28.663, 'max_score': 9859.261, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s9859261.jpg'}, {'end': 9979.316, 'src': 'embed', 'start': 9947.28, 'weight': 4, 'content': [{'end': 9953.785, 'text': 'So here we have string buffer and we are trying to append something to the string buffer.', 'start': 9947.28, 'duration': 6.505}, {'end': 9962.27, 'text': 'So we define a class, we define string buffer.', 'start': 9959.188, 'duration': 3.082}, {'end': 9976.635, 'text': 'So you could have like S1 dot append and When you see append, you could see that it appends any data type.', 'start': 9966.913, 'duration': 9.722}, {'end': 9979.316, 'text': 'This is the important factor in string buffer.', 'start': 9977.055, 'duration': 2.261}], 'summary': 'String buffer appends any data type, a key factor.', 'duration': 32.036, 'max_score': 9947.28, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s9947280.jpg'}, {'end': 10247.546, 'src': 'embed', 'start': 10219.317, 'weight': 8, 'content': [{'end': 10223.619, 'text': 'But if you have a single threaded application, you should go with string builder,', 'start': 10219.317, 'duration': 4.302}, {'end': 10228.761, 'text': 'which would make the application much more faster than string buffer again with string builder.', 'start': 10223.619, 'duration': 5.142}, {'end': 10232.623, 'text': 'The default capacity is 16 when you initialize it stores.', 'start': 10228.861, 'duration': 3.762}, {'end': 10241.082, 'text': 'As you could see, it allocated 16 space for 16 characters initially.', 'start': 10233.757, 'duration': 7.325}, {'end': 10247.546, 'text': "So, as far as the demo is concerned, It's pretty much similar to string buffer as far as the outcome is concerned.", 'start': 10241.082, 'duration': 6.464}], 'summary': 'String builder is faster than string buffer for single-threaded applications, with default capacity of 16.', 'duration': 28.229, 'max_score': 10219.317, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s10219317.jpg'}, {'end': 10368.301, 'src': 'embed', 'start': 10337.107, 'weight': 10, 'content': [{'end': 10340.048, 'text': 'but it would be slower as compared to string builder.', 'start': 10337.107, 'duration': 2.941}, {'end': 10349.675, 'text': "Okay StringBuilder is specifically good enough when you have single threaded application and it would be faster since it's not synchronized.", 'start': 10340.448, 'duration': 9.227}, {'end': 10357.217, 'text': 'To make it thread safe you have synchronization which adds over it to the performance which takes toll on the performance.', 'start': 10350.895, 'duration': 6.322}, {'end': 10359.338, 'text': "That's why StringBuffer is slower.", 'start': 10357.517, 'duration': 1.821}, {'end': 10368.301, 'text': "Why to use object-oriented concepts? Let's talk about classes and objects.", 'start': 10360.358, 'duration': 7.943}], 'summary': 'Stringbuilder is faster for single-threaded applications, while synchronization in stringbuffer slows it down. object-oriented concepts are important for classes and objects.', 'duration': 31.194, 'max_score': 10337.107, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s10337107.jpg'}], 'start': 8850.298, 'title': 'Java string handling', 'summary': 'Covers java strings, immutability, and memory management, highlighting their importance in handling large amounts of data and ensuring security and memory efficiency. it also discusses string variants like stringbuffer and stringbuilder, emphasizing their utility methods for manipulating strings and their suitability for different threading applications.', 'chapters': [{'end': 9248.714, 'start': 8850.298, 'title': 'Java strings and immutability', 'summary': 'Discusses the concept of java strings, their immutability, and the string pool, highlighting their importance in handling large amounts of data and ensuring security and memory efficiency.', 'duration': 398.416, 'highlights': ['Java strings are used to handle large amounts of data, such as petabytes of information, and provide a more efficient alternative to dealing with character arrays.', 'The immutability of strings ensures thread safety in multi-threading environments, preventing the modification of string objects once created.', 'The concept of string pool in Java helps in efficiently managing memory by storing constant string values and avoiding redundant copies.']}, {'end': 9833.942, 'start': 9250.103, 'title': 'Java strings and memory management', 'summary': 'Explains the storage of java strings in the string pool of heap area, the reference of strings in the stack memory, and various string manipulation methods. it also demonstrates the usage of these methods with quantifiable examples.', 'duration': 583.839, 'highlights': ['Java strings are stored in string pool of heap area, with a reference created in the stack memory for local variables.', 'Demonstration of string concatenation and immutability, showcasing the creation of new constants in the string pool.', 'Explanation of various string manipulation methods including length, substring, comparison, empty check, case conversion, valueOf, replace, contains, equals, compareIgnoreCase, charAt, and endsWith.']}, {'end': 10095.217, 'start': 9833.942, 'title': 'String variants: string, stringbuffer, stringbuilder', 'summary': 'Discusses the need for different variants of strings, focusing on string buffer for multi-threading and its utility methods for manipulating strings, including synchronization and mutability.', 'duration': 261.275, 'highlights': ['String buffer is useful for multi-threading as it ensures synchronization for read and write operations, making it thread-safe and suitable for applications with multiple threads accessing the string.', 'String buffer provides utility methods for manipulating strings, including appending, inserting, replacing, deleting, and reversing, which are not available in the string class.', "The mutability of string buffer allows for changes to the string's value, including appending characters, inserting new characters at specific positions, replacing substrings, and deleting sequences of characters."]}, {'end': 10359.338, 'start': 10095.477, 'title': 'String buffer vs string builder', 'summary': 'Explains the differences between stringbuffer and stringbuilder, highlighting that stringbuffer is synchronized, suitable for multi-threaded applications, and has a default capacity of 16 characters, whereas stringbuilder is faster but not thread safe, making it more suitable for single-threaded applications.', 'duration': 263.861, 'highlights': ['StringBuffer stores space for 16 characters initially, which is 32 bytes.', 'StringBuffer is synchronized, suitable for multi-threaded applications.', 'StringBuilder is faster but not thread safe, making it more suitable for single-threaded applications.']}], 'duration': 1509.04, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s8850298.jpg', 'highlights': ['Java strings are used to handle large amounts of data, such as petabytes of information, and provide a more efficient alternative to dealing with character arrays.', 'The immutability of strings ensures thread safety in multi-threading environments, preventing the modification of string objects once created.', 'The concept of string pool in Java helps in efficiently managing memory by storing constant string values and avoiding redundant copies.', 'String buffer is useful for multi-threading as it ensures synchronization for read and write operations, making it thread-safe and suitable for applications with multiple threads accessing the string.', 'String buffer provides utility methods for manipulating strings, including appending, inserting, replacing, deleting, and reversing, which are not available in the string class.', 'Explanation of various string manipulation methods including length, substring, comparison, empty check, case conversion, valueOf, replace, contains, equals, compareIgnoreCase, charAt, and endsWith.', 'Java strings are stored in string pool of heap area, with a reference created in the stack memory for local variables.', 'Demonstration of string concatenation and immutability, showcasing the creation of new constants in the string pool.', 'StringBuffer stores space for 16 characters initially, which is 32 bytes.', 'String buffer is synchronized, suitable for multi-threaded applications.', 'StringBuilder is faster but not thread safe, making it more suitable for single-threaded applications.', "The mutability of string buffer allows for changes to the string's value, including appending characters, inserting new characters at specific positions, replacing substrings, and deleting sequences of characters."]}, {'end': 12032.831, 'segs': [{'end': 10388.451, 'src': 'embed', 'start': 10360.358, 'weight': 6, 'content': [{'end': 10368.301, 'text': "Why to use object-oriented concepts? Let's talk about classes and objects.", 'start': 10360.358, 'duration': 7.943}, {'end': 10372.187, 'text': 'Classes are nothing, but it has got a state and behavior.', 'start': 10368.341, 'duration': 3.846}, {'end': 10377.968, 'text': 'right. as you could see, you have a class and you have different objects.', 'start': 10372.187, 'duration': 5.781}, {'end': 10384.79, 'text': "right there's a phone which is a class and which has got different types of phones right a rotary phone.", 'start': 10377.968, 'duration': 6.822}, {'end': 10388.451, 'text': 'then you have a touch tone phone and you have a cellular phone.', 'start': 10384.79, 'duration': 3.661}], 'summary': 'Explaining the importance of object-oriented concepts with examples of different types of phones.', 'duration': 28.093, 'max_score': 10360.358, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s10360358.jpg'}, {'end': 10466.968, 'src': 'embed', 'start': 10437.942, 'weight': 8, 'content': [{'end': 10443.085, 'text': 'That gives state and behavior is nothing but something that is defined by methods.', 'start': 10437.942, 'duration': 5.143}, {'end': 10452.19, 'text': 'Like calculator was a class wherein we had an add method, and add method basically gave some behavior to the calculator class right?', 'start': 10443.585, 'duration': 8.605}, {'end': 10456.366, 'text': 'so what are attributes?', 'start': 10453.726, 'duration': 2.64}, {'end': 10459.147, 'text': 'so you have a class and you have attributes.', 'start': 10456.366, 'duration': 2.781}, {'end': 10466.968, 'text': 'attributes are nothing but a property of our object and in java this is defined by your instance variables.', 'start': 10459.147, 'duration': 7.821}], 'summary': 'In java, attributes are defined by instance variables in a class.', 'duration': 29.026, 'max_score': 10437.942, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s10437942.jpg'}, {'end': 10665.121, 'src': 'embed', 'start': 10636.699, 'weight': 5, 'content': [{'end': 10641.24, 'text': 'So these are the conventions that are followed in industry by Java communities.', 'start': 10636.699, 'duration': 4.541}, {'end': 10646.502, 'text': 'So mostly even if you go to the source code, if you want to see something, you can do the source code of Java.', 'start': 10641.32, 'duration': 5.182}, {'end': 10649.122, 'text': 'You would see same naming convention being followed.', 'start': 10646.662, 'duration': 2.46}, {'end': 10650.903, 'text': 'Types of variables.', 'start': 10649.883, 'duration': 1.02}, {'end': 10654.564, 'text': 'We spoke about the types of variables again to brief you through.', 'start': 10651.063, 'duration': 3.501}, {'end': 10656.397, 'text': 'We have local variables.', 'start': 10655.117, 'duration': 1.28}, {'end': 10660.419, 'text': 'Local variables are nothing but the variables that are defined in a method.', 'start': 10656.518, 'duration': 3.901}, {'end': 10665.121, 'text': "So if you define something within a method, that's local variable.", 'start': 10661.019, 'duration': 4.102}], 'summary': 'Industry java communities follow conventions, including naming and types of variables.', 'duration': 28.422, 'max_score': 10636.699, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s10636699.jpg'}, {'end': 10739.356, 'src': 'embed', 'start': 10711.655, 'weight': 11, 'content': [{'end': 10714.926, 'text': 'so this integer is nothing but instance variable.', 'start': 10711.655, 'duration': 3.271}, {'end': 10718.668, 'text': "it's at the class level, right when your class is loaded.", 'start': 10714.926, 'duration': 3.742}, {'end': 10726.211, 'text': 'when you refer to this particular class, you would have your instance variable initialized by java.', 'start': 10718.668, 'duration': 7.543}, {'end': 10731.993, 'text': 'so instance variables are declared in a class but outside a method, constructor or any block.', 'start': 10726.211, 'duration': 5.782}, {'end': 10739.356, 'text': 'okay, class variables are nothing but static variables and it is one copy per class.', 'start': 10731.993, 'duration': 7.363}], 'summary': 'Instance variables are at class level, initialized by java, while class variables are static with one copy per class.', 'duration': 27.701, 'max_score': 10711.655, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s10711655.jpg'}, {'end': 11106.023, 'src': 'embed', 'start': 11079.56, 'weight': 10, 'content': [{'end': 11084.442, 'text': 'I commented out the constructor and you would see the value being initialized to zero.', 'start': 11079.56, 'duration': 4.882}, {'end': 11087.764, 'text': 'So you could see value being initialized to zero.', 'start': 11085.483, 'duration': 2.281}, {'end': 11091.546, 'text': "All right, so that's what constructor is all about.", 'start': 11088.885, 'duration': 2.661}, {'end': 11094.348, 'text': 'Now this is a default constructor.', 'start': 11092.727, 'duration': 1.621}, {'end': 11099.879, 'text': 'you could have parameterized constructor, which is like integer.', 'start': 11094.795, 'duration': 5.084}, {'end': 11106.023, 'text': 'you provide some value right and you assign this value to variable.', 'start': 11099.879, 'duration': 6.144}], 'summary': 'The default and parameterized constructors initialize values to zero or a specified integer.', 'duration': 26.463, 'max_score': 11079.56, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s11079560.jpg'}, {'end': 11282.792, 'src': 'embed', 'start': 11234.091, 'weight': 7, 'content': [{'end': 11236.911, 'text': "You're free to use whatever method name that you want.", 'start': 11234.091, 'duration': 2.82}, {'end': 11240.313, 'text': 'Constructor is used to initialize the state of an object.', 'start': 11237.711, 'duration': 2.602}, {'end': 11244.336, 'text': 'We saw the instance variable being initialized within the constructor.', 'start': 11240.993, 'duration': 3.343}, {'end': 11249.199, 'text': 'Method is basically it gives some behavior to a class right?', 'start': 11245.016, 'duration': 4.183}, {'end': 11256.224, 'text': 'We saw add method, which is giving some behavior to the calculator method, which is nothing but adding up to numbers.', 'start': 11249.619, 'duration': 6.605}, {'end': 11262.408, 'text': 'Similarly, you could have multiply, you could have divide and stuff like that, which adds more behavior to it.', 'start': 11256.945, 'duration': 5.463}, {'end': 11271.206, 'text': "Constructor is invoked, so you don't have control over invocation of constructor, which is done by Java itself.", 'start': 11262.929, 'duration': 8.277}, {'end': 11280.671, 'text': "when you try to instantiate a class, or when you use the new keyword, it's implicitly invoked by Java, by JVM, whereas method,", 'start': 11271.206, 'duration': 9.465}, {'end': 11282.792, 'text': 'you have to invoke it manually.', 'start': 11280.671, 'duration': 2.121}], 'summary': 'Constructor initializes object state; methods provide class behavior. java invokes constructor, while methods are invoked manually.', 'duration': 48.701, 'max_score': 11234.091, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s11234091.jpg'}, {'end': 11399.098, 'src': 'embed', 'start': 11369.944, 'weight': 4, 'content': [{'end': 11374.428, 'text': "That's a differentiation between default constructor and parameterized constructor.", 'start': 11369.944, 'duration': 4.484}, {'end': 11383.391, 'text': "We use parameterized constructor for passing values to the constructor and initializing something based on the value that's been passed out,", 'start': 11375.287, 'duration': 8.104}, {'end': 11386.132, 'text': 'passed in rather.', 'start': 11383.391, 'duration': 2.741}, {'end': 11393.215, 'text': 'The default constructor is used to provide the default values to the object like zero, null, depending on the type.', 'start': 11386.172, 'duration': 7.043}, {'end': 11399.098, 'text': "When I didn't have any constructor at all, for a moment, I'm going to comment this.", 'start': 11394.336, 'duration': 4.762}], 'summary': 'Parameterized constructor passes values for initialization, default constructor provides default values.', 'duration': 29.154, 'max_score': 11369.944, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s11369944.jpg'}, {'end': 11533.765, 'src': 'embed', 'start': 11505.743, 'weight': 2, 'content': [{'end': 11509.546, 'text': 'Constructor overloading is just like method overloading without written type.', 'start': 11505.743, 'duration': 3.803}, {'end': 11516.191, 'text': 'Constructor overloading in Java is a method of having more than one constructor with different parameter lists.', 'start': 11510.086, 'duration': 6.105}, {'end': 11519.057, 'text': 'like we defined add.', 'start': 11517.136, 'duration': 1.921}, {'end': 11523.719, 'text': 'we had two add methods and now i have renamed this to add numbers.', 'start': 11519.057, 'duration': 4.662}, {'end': 11526.661, 'text': 'but basically this was add method right.', 'start': 11523.719, 'duration': 2.942}, {'end': 11533.765, 'text': 'so you could have multiple methods with the same name but different parameter list, which is known as overloading.', 'start': 11526.661, 'duration': 7.104}], 'summary': 'Constructor overloading in java allows having multiple constructors with different parameter lists.', 'duration': 28.022, 'max_score': 11505.743, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s11505743.jpg'}, {'end': 11681.803, 'src': 'embed', 'start': 11634.867, 'weight': 1, 'content': [{'end': 11642.712, 'text': 'as I showed, there were multiple constructors, one with one parameter and the other one with integer parameters, and during runtime,', 'start': 11634.867, 'duration': 7.845}, {'end': 11647.495, 'text': 'based on whatever you pass, a particular constructor would be called in this case.', 'start': 11642.712, 'duration': 4.783}, {'end': 11651.077, 'text': 'You could see that in the first case, which is shop S1.', 'start': 11647.535, 'duration': 3.542}, {'end': 11657.544, 'text': 'you could see the first constructor being called which has two integers as being passed.', 'start': 11652.722, 'duration': 4.822}, {'end': 11666.669, 'text': 'Whereas when you create object S2 which has two integer parameters and one string, you could see that second constructor is being called.', 'start': 11658.605, 'duration': 8.064}, {'end': 11669.891, 'text': "What's constructor chaining?", 'start': 11668.71, 'duration': 1.181}, {'end': 11675.253, 'text': 'Constructor chaining is the process of calling one constructor from another constructor.', 'start': 11670.831, 'duration': 4.422}, {'end': 11676.814, 'text': 'with respect to the current object,', 'start': 11675.253, 'duration': 1.561}, {'end': 11681.803, 'text': 'The real purpose of constructor chaining is to pass parameters to a bunch of different constructor,', 'start': 11677.301, 'duration': 4.502}], 'summary': 'The transcript explains constructor overloading and chaining in java, demonstrating how different constructors are called based on the parameters passed.', 'duration': 46.936, 'max_score': 11634.867, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s11634867.jpg'}, {'end': 11899.265, 'src': 'embed', 'start': 11875.805, 'weight': 0, 'content': [{'end': 11887.055, 'text': 'static is non-access modifier used in java accessible, applicable for blocks methods, class variables.', 'start': 11875.805, 'duration': 11.25}, {'end': 11891.258, 'text': 'static keyword is used to refer the common properties of an object.', 'start': 11887.055, 'duration': 4.203}, {'end': 11895.842, 'text': "so as we spoke, it's at the class level, it's not at the object level.", 'start': 11891.258, 'duration': 4.584}, {'end': 11899.265, 'text': 'we have it common across all the objects.', 'start': 11895.842, 'duration': 3.423}], 'summary': "In java, the 'static' keyword applies to class variables, methods, and blocks, making properties common across all objects.", 'duration': 23.46, 'max_score': 11875.805, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s11875805.jpg'}], 'start': 10360.358, 'title': 'Java oop and constructors', 'summary': 'Covers object-oriented concepts, java naming conventions, variable types, constructor vs method differences, constructor overloading, and chaining with examples. it also explains the usage of the static keyword for memory management.', 'chapters': [{'end': 10490.124, 'start': 10360.358, 'title': 'Object-oriented concepts and classes', 'summary': 'Discusses the concepts of classes, objects, attributes, and behavior in object-oriented programming, using the example of different types of phones as objects of a phone class, and explains how state is defined by instance variables and behavior is defined by methods.', 'duration': 129.766, 'highlights': ['The concept of classes and objects in object-oriented programming is illustrated using the example of different types of phones as objects of a phone class, highlighting how objects are instances of a class with specific state and behavior.', 'The distinction between class level variables defining state and methods defining behavior is explained in the context of a calculator class with an add method.', 'The relationship between attributes, which are properties of an object, and instance variables defining state in Java is defined, emphasizing that each instance has its own set of properties.']}, {'end': 11163.292, 'start': 10491.025, 'title': 'Java naming conventions and variable types', 'summary': 'Discusses the naming conventions for java, including class, interface, method, variable, and constant naming. it also explains the types of variables - local, instance, and class variables - along with the concept of constructors, including default and parameterized constructors.', 'duration': 672.267, 'highlights': ['Naming conventions for Java, covering class, interface, method, variable, and constant naming', 'Types of variables - local, instance, and class variables', 'Concept of constructors - default and parameterized constructors']}, {'end': 11504.482, 'start': 11163.292, 'title': 'Constructor vs method in java', 'summary': 'Explores the differences between constructors and methods in java, emphasizing that constructors are automatically invoked by the jvm for initializing instance variables, while methods are manually invoked to provide behavior to a class. it also covers the distinction between default constructors and parameterized constructors, highlighting the role of each in providing default or specific values to objects.', 'duration': 341.19, 'highlights': ['Constructors are automatically invoked by the JVM for initializing instance variables, while methods are manually invoked to provide behavior to a class.', 'The distinction between default constructors and parameterized constructors is explained, emphasizing the role of each in providing default or specific values to objects.', 'The default constructor is automatically created by Java when no constructor is defined, and it assigns default values such as 0 for integers and null for classes.', 'Demonstrates the concept of passing parameters to parameterized constructors for initializing instance variables based on the passed values.']}, {'end': 12032.831, 'start': 11505.743, 'title': 'Constructor overloading & chaining in java', 'summary': 'Discusses constructor overloading in java, demonstrating multiple constructors with different parameter lists, and constructor chaining, explaining the process of calling one constructor from another, along with the usage of the static keyword for memory management with examples.', 'duration': 527.088, 'highlights': ['Constructor overloading in Java is a method of having more than one constructor with different parameter lists.', 'Constructor chaining is the process of calling one constructor from another constructor to pass parameters to a bunch of different constructors.', 'The static keyword in Java is used for memory management and refers to the common properties of an object, allocated only once per class.']}], 'duration': 1672.473, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s10360358.jpg', 'highlights': ['The static keyword in Java is used for memory management and refers to the common properties of an object, allocated only once per class.', 'Constructor chaining is the process of calling one constructor from another constructor to pass parameters to a bunch of different constructors.', 'Constructor overloading in Java is a method of having more than one constructor with different parameter lists.', 'Demonstrates the concept of passing parameters to parameterized constructors for initializing instance variables based on the passed values.', 'The distinction between default constructors and parameterized constructors is explained, emphasizing the role of each in providing default or specific values to objects.', 'Naming conventions for Java, covering class, interface, method, variable, and constant naming', 'The concept of classes and objects in object-oriented programming is illustrated using the example of different types of phones as objects of a phone class, highlighting how objects are instances of a class with specific state and behavior.', 'The distinction between class level variables defining state and methods defining behavior is explained in the context of a calculator class with an add method.', 'The relationship between attributes, which are properties of an object, and instance variables defining state in Java is defined, emphasizing that each instance has its own set of properties.', 'Constructors are automatically invoked by the JVM for initializing instance variables, while methods are manually invoked to provide behavior to a class.', 'The default constructor is automatically created by Java when no constructor is defined, and it assigns default values such as 0 for integers and null for classes.', 'Types of variables - local, instance, and class variables', 'Concept of constructors - default and parameterized constructors']}, {'end': 13829.98, 'segs': [{'end': 12082.299, 'src': 'embed', 'start': 12053.772, 'weight': 0, 'content': [{'end': 12061.578, 'text': 'you have reference variables being created out in the stack and in the heap memory you could see values being stored.', 'start': 12053.772, 'duration': 7.806}, {'end': 12063.32, 'text': 'So ID is 25, salary is 25, 000.', 'start': 12062.119, 'duration': 1.201}, {'end': 12072.191, 'text': 'For E2, ID is 30 and salary is 3000.', 'start': 12063.32, 'duration': 8.871}, {'end': 12073.873, 'text': 'and you can see the static variable.', 'start': 12072.191, 'duration': 1.682}, {'end': 12079.437, 'text': 'So basically static variable is stored in a different space, which is permanent generation memory.', 'start': 12074.313, 'duration': 5.124}, {'end': 12082.299, 'text': "That's where the static variables are stored.", 'start': 12080.058, 'duration': 2.241}], 'summary': 'Reference and static variables are stored in stack and permanent generation memory, with id values of 25 and 30 and salaries of 25,000 and 3000.', 'duration': 28.527, 'max_score': 12053.772, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s12053772.jpg'}, {'end': 12290.225, 'src': 'embed', 'start': 12236.281, 'weight': 9, 'content': [{'end': 12240.682, 'text': 'One of your parameters is same as the instance variable, right?', 'start': 12236.281, 'duration': 4.401}, {'end': 12245.824, 'text': 'So you want to differentiate which is the instance variable and which is this variable right?', 'start': 12240.722, 'duration': 5.102}, {'end': 12248.625, 'text': "So that's when you use this.", 'start': 12246.244, 'duration': 2.381}, {'end': 12252.365, 'text': 'When you say this dot instance variable,', 'start': 12250.404, 'duration': 1.961}, {'end': 12258.167, 'text': 'this is referring to this instance variable and this instance variable to the right hand side is referring to this one.', 'start': 12252.365, 'duration': 5.802}, {'end': 12266.83, 'text': "So that's when you have to explicitly put this or in other cases, it's done by the JVM itself.", 'start': 12260.048, 'duration': 6.782}, {'end': 12270.271, 'text': 'You did not take care of it.', 'start': 12267.29, 'duration': 2.981}, {'end': 12276.394, 'text': 'So this can be passed as an argument in the constructor call.', 'start': 12270.371, 'duration': 6.023}, {'end': 12279.675, 'text': 'This can be used to invoke current class method.', 'start': 12277.334, 'duration': 2.341}, {'end': 12290.225, 'text': 'this can be passed as an argument in the method call and this can be used to invoke current class constructor.', 'start': 12280.677, 'duration': 9.548}], 'summary': "Using 'this' to differentiate instance variable, invoke methods, and pass as method/constructor arguments.", 'duration': 53.944, 'max_score': 12236.281, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s12236281.jpg'}, {'end': 12618.491, 'src': 'embed', 'start': 12596.047, 'weight': 3, 'content': [{'end': 12605.195, 'text': "We'll talk about what is abstraction and also how Java has encapsulation or how Java is aligned towards the encapsulation feature of object-oriented programming.", 'start': 12596.047, 'duration': 9.148}, {'end': 12607.718, 'text': "So let's start off with inheritance.", 'start': 12605.796, 'duration': 1.922}, {'end': 12613.127, 'text': 'Just to give you an analogy, you could think of inheritance, anything that is derived.', 'start': 12608.564, 'duration': 4.563}, {'end': 12618.491, 'text': 'You have some superclass or you have something from which other subclasses are derived.', 'start': 12613.147, 'duration': 5.344}], 'summary': 'Discussion on abstraction, encapsulation, and inheritance in java.', 'duration': 22.444, 'max_score': 12596.047, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s12596047.jpg'}, {'end': 12712.379, 'src': 'embed', 'start': 12687.699, 'weight': 6, 'content': [{'end': 12693.825, 'text': "so let's see about how actually this classes, or the subclasses, inherit from the parent classes.", 'start': 12687.699, 'duration': 6.126}, {'end': 12698.788, 'text': 'Just to read out, inheritance is a powerful feature, object-oriented programming,', 'start': 12694.485, 'duration': 4.303}, {'end': 12704.973, 'text': 'through which one object acquires some or all properties and behavior of parent object.', 'start': 12698.788, 'duration': 6.185}, {'end': 12708.216, 'text': "So as I said, it's an easy relationship.", 'start': 12705.594, 'duration': 2.622}, {'end': 12712.379, 'text': 'So easy relationship is represented in Java through inheritance.', 'start': 12708.696, 'duration': 3.683}], 'summary': 'Inheritance in java facilitates easy relationship between subclasses and parent classes.', 'duration': 24.68, 'max_score': 12687.699, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s12687699.jpg'}, {'end': 13127.098, 'src': 'embed', 'start': 13085.063, 'weight': 5, 'content': [{'end': 13088.665, 'text': 'So you could have A and B inheriting from a single class.', 'start': 13085.063, 'duration': 3.602}, {'end': 13096.33, 'text': 'You could have multi-level inheritance wherein you have one class inheriting from another and again you could have subclass of the subclass.', 'start': 13089.146, 'duration': 7.184}, {'end': 13101.32, 'text': 'Parent class, you inherit it or you subclass it or extend it, whatever you say.', 'start': 13096.837, 'duration': 4.483}, {'end': 13102.821, 'text': "So there's one level.", 'start': 13101.7, 'duration': 1.121}, {'end': 13104.682, 'text': 'So you have a child class now.', 'start': 13103.161, 'duration': 1.521}, {'end': 13108.364, 'text': 'You could have one more subclass of this child class.', 'start': 13105.082, 'duration': 3.282}, {'end': 13111.106, 'text': "That's what multi-level inheritance is all about.", 'start': 13108.624, 'duration': 2.482}, {'end': 13115.589, 'text': "So as we go through the example, it should give you a clear idea about what I'm talking about.", 'start': 13111.366, 'duration': 4.223}, {'end': 13117.31, 'text': 'So single inheritance.', 'start': 13115.909, 'duration': 1.401}, {'end': 13121.912, 'text': 'So we have vehicle and we have bike, which is extending vehicle.', 'start': 13117.87, 'duration': 4.042}, {'end': 13124.374, 'text': 'So this is similar to what we defined here.', 'start': 13122.313, 'duration': 2.061}, {'end': 13127.098, 'text': 'So what we did here is single inheritance.', 'start': 13124.957, 'duration': 2.141}], 'summary': 'Explaining single and multi-level inheritance using vehicle and bike as an example.', 'duration': 42.035, 'max_score': 13085.063, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s13085063.jpg'}, {'end': 13814.111, 'src': 'embed', 'start': 13783.408, 'weight': 8, 'content': [{'end': 13785.609, 'text': 'this could be thought of as a relationship.', 'start': 13783.408, 'duration': 2.201}, {'end': 13787.351, 'text': "so let's talk about polymorphism.", 'start': 13785.609, 'duration': 1.742}, {'end': 13793.575, 'text': 'now. when one task is performed by different ways, then it is called as polymorphism.', 'start': 13787.351, 'duration': 6.224}, {'end': 13794.897, 'text': 'poly is multiple.', 'start': 13793.575, 'duration': 1.322}, {'end': 13796.518, 'text': 'morphism is forms.', 'start': 13794.897, 'duration': 1.621}, {'end': 13798.519, 'text': "basically, that's the meaning behind it.", 'start': 13796.518, 'duration': 2.001}, {'end': 13801.882, 'text': "so multiple forms that's what polymorphism means.", 'start': 13798.519, 'duration': 3.363}, {'end': 13808.089, 'text': "when one task is performed by different ways, then it's called as polymorphism.", 'start': 13802.447, 'duration': 5.642}, {'end': 13814.111, 'text': 'this person which is a superclass you have a subclass student is again person.', 'start': 13808.089, 'duration': 6.022}], 'summary': 'Polymorphism refers to one task performed in multiple ways, demonstrating flexibility in object-oriented programming.', 'duration': 30.703, 'max_score': 13783.408, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s13783408.jpg'}], 'start': 12032.831, 'title': 'Java concepts and usage', 'summary': "Covers static variable and memory allocation, static methods and 'this' keyword usage, java inheritance overview, inheritance and polymorphism concepts, highlighting their relevance and practical examples, emphasizing code reusability, method overriding, and polymorphism. it includes examples of static variables, method invocation, inheritance types, and polymorphism scenarios, providing a comprehensive understanding of these java concepts.", 'chapters': [{'end': 12082.299, 'start': 12032.831, 'title': 'Static variable and memory allocation', 'summary': 'Discusses the concept of static variables and memory allocation, illustrating that static variables are stored in permanent generation memory, and their value remains consistent across instances, with an example of id and salary being declared as static variables and allocated memory only once.', 'duration': 49.468, 'highlights': ['The chapter illustrates that static variables are stored in permanent generation memory, and their value remains consistent across instances.', 'The example of ID being 25 and salary being 25,000 for one instance, and ID being 30 and salary being 3000 for another instance, demonstrates the concept of static variables with quantifiable data.', 'The explanation of static variable allocation in a different space, specifically in permanent generation memory, provides insight into the storage location of static variables.']}, {'end': 12431.076, 'start': 12083.48, 'title': "Static methods and 'this' keyword", 'summary': "Explains the usage of static methods and the 'this' keyword in java, demonstrating their usage in method invocation, reference to instance variables, and passing as an argument, with an example showcasing the differentiation between instance variables and parameters.", 'duration': 347.596, 'highlights': ["The 'this' keyword is used as a reference variable to the current object, allowing reference to instance variables within methods, and is implicitly put by the JVM, but can also be explicitly used for differentiation between instance variables and parameters.", "Explanation of how 'this' can be passed as an argument in constructor and method calls, demonstrating its usage in method invocation and passing as an argument.", "Demonstration of the usage of 'this' as a parameter in a method within a class, showcasing the invocation of a method by passing 'this' as an argument, and highlighting the use case in constructors.", "Illustration of the differentiation between instance variables and parameters using the 'this' keyword, with an example showcasing the differentiation between instance variables and parameters in a constructor, emphasizing its use in distinguishing between instance variables and parameters."]}, {'end': 13312.996, 'start': 12432.016, 'title': 'Java inheritance overview', 'summary': 'Provides an overview of inheritance in java, covering the concept, types, and practical examples, emphasizing its relevance in achieving code reusability and method overriding, with a demonstration of single, hierarchical, and multi-level inheritance.', 'duration': 880.98, 'highlights': ['The chapter provides an overview of inheritance in Java, covering the concept, types, and practical examples.', 'Emphasizes the relevance of inheritance in achieving code reusability and method overriding.', 'Demonstrates single, hierarchical, and multi-level inheritance with practical examples.']}, {'end': 13829.98, 'start': 13313.517, 'title': 'Java inheritance and polymorphism', 'summary': 'Explains the concepts of inheritance, has-a relationship, and polymorphism in java, highlighting the use of classes, subclasses, objects, and the overriding of properties and behaviors, with a focus on multi-level inheritance and has-a relationships, also covering the concept of polymorphism through multiple forms of performing a task.', 'duration': 516.463, 'highlights': ['The chapter explains the concepts of inheritance, has-a relationship, and polymorphism in Java, highlighting the use of classes, subclasses, objects, and the overriding of properties and behaviors.', 'Focus on multi-level inheritance and has-a relationships.', 'Covering the concept of polymorphism through multiple forms of performing a task.']}], 'duration': 1797.149, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s12032831.jpg', 'highlights': ['The chapter illustrates that static variables are stored in permanent generation memory, and their value remains consistent across instances.', 'The example of ID being 25 and salary being 25,000 for one instance, and ID being 30 and salary being 3000 for another instance, demonstrates the concept of static variables with quantifiable data.', 'The explanation of static variable allocation in a different space, specifically in permanent generation memory, provides insight into the storage location of static variables.', 'The chapter provides an overview of inheritance in Java, covering the concept, types, and practical examples.', 'Emphasizes the relevance of inheritance in achieving code reusability and method overriding.', 'Demonstrates single, hierarchical, and multi-level inheritance with practical examples.', 'The chapter explains the concepts of inheritance, has-a relationship, and polymorphism in Java, highlighting the use of classes, subclasses, objects, and the overriding of properties and behaviors.', 'Focus on multi-level inheritance and has-a relationships.', 'Covering the concept of polymorphism through multiple forms of performing a task.', "The 'this' keyword is used as a reference variable to the current object, allowing reference to instance variables within methods, and is implicitly put by the JVM, but can also be explicitly used for differentiation between instance variables and parameters.", "Explanation of how 'this' can be passed as an argument in constructor and method calls, demonstrating its usage in method invocation and passing as an argument.", "Demonstration of the usage of 'this' as a parameter in a method within a class, showcasing the invocation of a method by passing 'this' as an argument, and highlighting the use case in constructors.", "Illustration of the differentiation between instance variables and parameters using the 'this' keyword, with an example showcasing the differentiation between instance variables and parameters in a constructor, emphasizing its use in distinguishing between instance variables and parameters."]}, {'end': 15865.387, 'segs': [{'end': 13884.577, 'src': 'embed', 'start': 13852.27, 'weight': 1, 'content': [{'end': 13854.251, 'text': 'So, basically, this is what method.', 'start': 13852.27, 'duration': 1.981}, {'end': 13861.915, 'text': 'overloading is all about to have the same name of a method, but you have different number of parameters passed to the method,', 'start': 13854.251, 'duration': 7.664}, {'end': 13867.077, 'text': 'or you have different type of parameters passed to the object, to the method, and based on that,', 'start': 13861.915, 'duration': 5.162}, {'end': 13870.439, 'text': 'it would understand which is a method that needs to be called.', 'start': 13867.077, 'duration': 3.362}, {'end': 13877.622, 'text': 'So suppose you have add with two integer parameters defined and you have add with three integer parameters defined.', 'start': 13870.819, 'duration': 6.803}, {'end': 13884.577, 'text': 'Now, when you invoke add method on a particular instance of calculator and you pass two parameters to it,', 'start': 13878.055, 'duration': 6.522}], 'summary': 'Method overloading allows using same method name with different parameters to determine which method to call.', 'duration': 32.307, 'max_score': 13852.27, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s13852270.jpg'}, {'end': 14260.063, 'src': 'embed', 'start': 14232.219, 'weight': 0, 'content': [{'end': 14238.143, 'text': "and that's when it does it during the runtime, and that is nothing but dynamic polymorphism or method overriding.", 'start': 14232.219, 'duration': 5.924}, {'end': 14241.806, 'text': 'So method overriding is mostly used in a easy relationship.', 'start': 14238.624, 'duration': 3.182}, {'end': 14251.801, 'text': 'so in one of the methods or we saw in vehicle and car example, we have a move method here and here we overrode it.', 'start': 14242.358, 'duration': 9.443}, {'end': 14260.063, 'text': 'you can see override annotation here for the move because you are overriding it, overriding the behavior of vehicle in car class.', 'start': 14251.801, 'duration': 8.262}], 'summary': 'Dynamic polymorphism allows method overriding for behavior modification.', 'duration': 27.844, 'max_score': 14232.219, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s14232219.jpg'}, {'end': 14848.973, 'src': 'embed', 'start': 14826.003, 'weight': 4, 'content': [{'end': 14833.387, 'text': 'the first thing that is called when you create a instance is a super constructor is called first and then your subclass constructor.', 'start': 14826.003, 'duration': 7.384}, {'end': 14837.75, 'text': 'What I mean to say is when you create instance of car,', 'start': 14833.808, 'duration': 3.942}, {'end': 14848.973, 'text': "So your first thing that would be called is the constructor of vehicle and it would do all the initialization that's required in vehicle and then it would call the cars constructor.", 'start': 14838.604, 'duration': 10.369}], 'summary': 'When creating an instance, the superclass constructor is called first, followed by the subclass constructor.', 'duration': 22.97, 'max_score': 14826.003, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s14826003.jpg'}, {'end': 15098.348, 'src': 'embed', 'start': 15074.207, 'weight': 2, 'content': [{'end': 15082.774, 'text': "in case of variables, you can't change the value in terms of class, you can't subclass it or you cannot create a child class of a final class.", 'start': 15074.207, 'duration': 8.567}, {'end': 15089.3, 'text': 'and in terms of methods, if you have final method, you cannot override that particular method in your subclass.', 'start': 15082.774, 'duration': 6.526}, {'end': 15098.348, 'text': 'so final modifier can be applied to class method, instance variable, class variables, local variable and method parameters.', 'start': 15089.941, 'duration': 8.407}], 'summary': 'Final modifier restricts subclassing and method overriding, applicable to various class elements.', 'duration': 24.141, 'max_score': 15074.207, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s15074207.jpg'}, {'end': 15373.372, 'src': 'embed', 'start': 15348.767, 'weight': 3, 'content': [{'end': 15357.79, 'text': 'So abstraction is a mechanism of hiding the implementation details from the user and only providing the functionality of a user.', 'start': 15348.767, 'duration': 9.023}, {'end': 15364.052, 'text': 'So, basically, you could have abstraction wherein on the first day we spoke about the shape class and the circle class,', 'start': 15358.23, 'duration': 5.822}, {'end': 15366.633, 'text': 'and triangle and square and stuff like that, right?', 'start': 15364.052, 'duration': 2.581}, {'end': 15373.372, 'text': "So basically, shape is a class which is an abstract class which doesn't know all the functionality upfront,", 'start': 15367.093, 'duration': 6.279}], 'summary': 'Abstraction hides implementation details, like the shape class.', 'duration': 24.605, 'max_score': 15348.767, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s15348767.jpg'}], 'start': 13830.1, 'title': 'Java oop concepts', 'summary': 'Covers concepts such as method overloading, polymorphism, class inheritance, final modifiers, abstraction, and encapsulation in java, emphasizing their applications and importance in object-oriented programming.', 'chapters': [{'end': 14210.291, 'start': 13830.1, 'title': 'Understanding method overloading', 'summary': 'Explains method overloading in java, emphasizing on the ability to have multiple methods with the same name but different parameters, showcasing examples of overloading based on the number of parameters and the data type of parameters.', 'duration': 380.191, 'highlights': ['Method overloading allows having multiple methods with the same name but different parameters.', 'Demonstrates method overloading based on the number of parameters, showcasing the ability to call different methods based on the number of actual parameters passed.', 'Illustrates method overloading based on the data type of parameters, with examples showcasing the resolution of method invocation based on the data type of the parameters.']}, {'end': 14597.971, 'start': 14210.651, 'title': 'Polymorphism in object-oriented paradigm', 'summary': 'Explains the concepts of static and dynamic polymorphism with examples, highlighting the importance of method overriding and its role in runtime polymorphism, emphasizing the relevance of subclass objects being assigned to superclass objects.', 'duration': 387.32, 'highlights': ['Method overriding and its role in runtime polymorphism', 'Subclass objects being assigned to superclass objects', 'Explanation of super keyword and its usage in object-oriented paradigm']}, {'end': 14967.493, 'start': 14597.971, 'title': 'Understanding jvm and class inheritance', 'summary': "Explains the concept of class inheritance and jvm's behavior, demonstrating the overriding of properties, methods, and the calling sequence of superclass constructors in a class hierarchy.", 'duration': 369.522, 'highlights': ["JVM calls superclass constructor first before subclass constructor when creating an instance, demonstrating the superclass's initialization process.", "Demonstrates the overriding of properties and methods in a class hierarchy, with examples of changing the value of 'wheels' property in the subclass and invoking print methods to display the overridden values.", 'Illustrates the distinction between instance variables and superclass variables, clarifying that creating a new instance variable with the same name as the superclass variable does not override it.']}, {'end': 15348.307, 'start': 14967.793, 'title': 'Understanding final modifiers in java', 'summary': 'Explores the final modifier in java, covering its applications to variables, methods, and classes. it highlights the restrictions and error messages associated with using final, emphasizing its role in preventing variable value changes, method overriding, and class extension, and explains dynamic binding as runtime polymorphism in inheritance.', 'duration': 380.514, 'highlights': ['The final modifier is applicable to variables, methods, and classes in Java, serving as a non-access modifier.', 'Using final for a variable ensures its content cannot be changed, typically used to define constants within the application.', 'A method can be defined as final to prevent its subclass from overriding it.', 'Defining a class as final prevents the creation of any subclass of that class, leading to compile-time errors if an attempt is made to extend it.', 'The final modifier restricts the modification of variables, subclass creation, and method overriding, and can be applied to various entities such as class variables, local variables, and method parameters.', 'Final static methods are used to prevent method overriding, ensuring their immutability.', 'Final classes such as String and system classes in Java cannot be extended, as they are marked as final to prevent any alteration of their behavior.', 'Dynamic binding, also known as runtime polymorphism, determines which method should be called during runtime, especially in the context of inheritance and method overriding.']}, {'end': 15865.387, 'start': 15348.767, 'title': 'Abstraction and encapsulation in java', 'summary': 'Explains abstraction and encapsulation in java, highlighting the concept of abstract classes and interfaces, with a focus on their role in providing functionality and hiding implementation details from the user, as well as the concept of encapsulation as a methodology of binding code and data into a single unit.', 'duration': 516.62, 'highlights': ['Abstraction is a mechanism of hiding the implementation details from the user and providing the functionality, involving abstract classes with blend of abstract and non-abstract methods, and interfaces which are 100% abstract.', 'Abstract class in Java is a class with at least one method declared as abstract and may or may not have all abstract methods, primarily used for inheritance.', 'The process of implementing abstract methods in subclasses and the requirement to declare a subclass as abstract if it does not provide an implementation of the abstract method.', 'Encapsulation is described as a methodology of binding code and data together into a single unit, using the analogy of grouping components into a capsule.']}], 'duration': 2035.287, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s13830100.jpg', 'highlights': ['Method overriding and its role in runtime polymorphism', 'Method overloading allows having multiple methods with the same name but different parameters', 'The final modifier restricts the modification of variables, subclass creation, and method overriding', 'Abstraction is a mechanism of hiding the implementation details from the user and providing the functionality', "JVM calls superclass constructor first before subclass constructor when creating an instance, demonstrating the superclass's initialization process"]}, {'end': 18529.623, 'segs': [{'end': 15895.348, 'src': 'embed', 'start': 15865.387, 'weight': 1, 'content': [{'end': 15867.629, 'text': "there's access modifier comes into picture.", 'start': 15865.387, 'duration': 2.242}, {'end': 15871.532, 'text': 'you have this access modifiers or private, and you have public.', 'start': 15867.629, 'duration': 3.903}, {'end': 15872.493, 'text': 'you have protected.', 'start': 15871.532, 'duration': 0.961}, {'end': 15873.854, 'text': 'you have default.', 'start': 15872.493, 'duration': 1.361}, {'end': 15882.46, 'text': 'this access modifiers restrict or it restricts the visibility of a particular component of a class, say method or variable or anything.', 'start': 15873.854, 'duration': 8.606}, {'end': 15886.343, 'text': "so that's an encapsulation feature of object-oriented programming.", 'start': 15882.46, 'duration': 3.883}, {'end': 15887.484, 'text': "you can't see everything.", 'start': 15886.343, 'duration': 1.141}, {'end': 15889.425, 'text': "it's not that everything is open for everyone.", 'start': 15887.484, 'duration': 1.941}, {'end': 15890.985, 'text': 'So you can have restriction.', 'start': 15889.704, 'duration': 1.281}, {'end': 15895.348, 'text': 'You have different levels of restriction when it comes to visibility of these components.', 'start': 15891.025, 'duration': 4.323}], 'summary': 'Access modifiers in object-oriented programming restrict visibility of class components, such as methods and variables, providing encapsulation and different levels of restriction.', 'duration': 29.961, 'max_score': 15865.387, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s15865387.jpg'}, {'end': 15997.05, 'src': 'embed', 'start': 15970.99, 'weight': 4, 'content': [{'end': 15978.836, 'text': 'which exposes, which are public methods, or mutator methods, which would expose this variable to the outside world through public.', 'start': 15970.99, 'duration': 7.846}, {'end': 15981.778, 'text': "So usually we don't have setter methods.", 'start': 15979.176, 'duration': 2.602}, {'end': 15983.58, 'text': 'We restrict setter methods again.', 'start': 15981.879, 'duration': 1.701}, {'end': 15989.044, 'text': 'Usually, you have a private instance variable and you have a getter method, which is a public method,', 'start': 15984.02, 'duration': 5.024}, {'end': 15992.427, 'text': 'which is nothing but returns the value of the instance variable to the outside world.', 'start': 15989.044, 'duration': 3.383}, {'end': 15997.05, 'text': 'So data hiding the user will have no idea about the inner implementation of the class.', 'start': 15992.727, 'duration': 4.323}], 'summary': 'Encourages data hiding by limiting access through getter methods.', 'duration': 26.06, 'max_score': 15970.99, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s15970990.jpg'}, {'end': 16316.187, 'src': 'embed', 'start': 16288.016, 'weight': 0, 'content': [{'end': 16290.839, 'text': 'So all the methods that you have within interface is abstract.', 'start': 16288.016, 'duration': 2.823}, {'end': 16293.301, 'text': 'And interface is used to achieve abstraction.', 'start': 16291.079, 'duration': 2.222}, {'end': 16295.624, 'text': 'It is used to achieve loose coupling.', 'start': 16293.702, 'duration': 1.922}, {'end': 16299.988, 'text': "When I say loose coupling, it's like you're not binding everything into a class.", 'start': 16295.984, 'duration': 4.004}, {'end': 16305.173, 'text': "Basically, you say that if it's a remote, it has to have these features right?", 'start': 16300.488, 'duration': 4.685}, {'end': 16308.14, 'text': "So basically, you're kind of decoupling it.", 'start': 16305.558, 'duration': 2.582}, {'end': 16316.187, 'text': 'or you can say that all the implementations of remote will have so-and-so specifications, which has been introduced by interface.', 'start': 16308.14, 'duration': 8.047}], 'summary': 'Interfaces allow for loose coupling and abstraction, ensuring consistent implementations and decoupling classes.', 'duration': 28.171, 'max_score': 16288.016, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s16288016.jpg'}, {'end': 17404.683, 'src': 'embed', 'start': 17372.927, 'weight': 2, 'content': [{'end': 17374.208, 'text': 'and with abstract methods.', 'start': 17372.927, 'duration': 1.281}, {'end': 17379.371, 'text': 'of course, in java 8 it evolved and we have a default method.', 'start': 17374.208, 'duration': 5.163}, {'end': 17386.195, 'text': 'as i said, there would be one default method which would be inherited by all the interfaces extending that interface,', 'start': 17379.371, 'duration': 6.824}, {'end': 17392.098, 'text': 'and you have static methods as well, which was not there earlier in java 9 and later versions.', 'start': 17386.195, 'duration': 5.903}, {'end': 17397.421, 'text': "so in industry right now it's mostly java 8 that's been used across.", 'start': 17392.098, 'duration': 5.323}, {'end': 17399.921, 'text': 'very few have gone to java 9.', 'start': 17397.421, 'duration': 2.5}, {'end': 17404.683, 'text': 'all the big data frameworks and everything we have is supporting Java 8 at this point.', 'start': 17399.921, 'duration': 4.762}], 'summary': 'Java 8 is widely used in the industry, with few adopting java 9, and big data frameworks predominantly support java 8.', 'duration': 31.756, 'max_score': 17372.927, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s17372927.jpg'}, {'end': 17485.229, 'src': 'embed', 'start': 17454.187, 'weight': 3, 'content': [{'end': 17455.067, 'text': "That's what I can think.", 'start': 17454.187, 'duration': 0.88}, {'end': 17458.949, 'text': 'What is a package? We have been using package since day one.', 'start': 17455.707, 'duration': 3.242}, {'end': 17461.51, 'text': "So package is nothing but it's a namespace.", 'start': 17459.149, 'duration': 2.361}, {'end': 17464.231, 'text': "It's for avoiding collision.", 'start': 17462.03, 'duration': 2.201}, {'end': 17472.334, 'text': 'So, basically, I could write a name class with name shape and maybe someone else within my team would write the same thing right?', 'start': 17464.511, 'duration': 7.823}, {'end': 17478.276, 'text': 'So basically, at the end, when we archive it together, like we have a jar file, which is Java archive', 'start': 17472.934, 'duration': 5.342}, {'end': 17485.229, 'text': "When we archive these files together, there's going to be name collision, right? You wouldn't know which shape class are you referring to.", 'start': 17478.908, 'duration': 6.321}], 'summary': 'Packages in java provide namespaces to avoid name collision, preventing confusion when archiving files.', 'duration': 31.042, 'max_score': 17454.187, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s17454187.jpg'}], 'start': 15865.387, 'title': 'Key java concepts', 'summary': 'Covers encapsulation, interfaces, java 8 default methods, packages, and java.sql, emphasizing the use of access modifiers, interfaces for loose coupling, and the evolution of interface features. it also discusses java packages, namespace, and database connectivity, highlighting the impact of access modifiers on class and package accessibility.', 'chapters': [{'end': 16179.558, 'start': 15865.387, 'title': 'Encapsulation in java', 'summary': 'Discusses the concept of encapsulation in java, emphasizing the use of access modifiers like private, public, and protected to restrict visibility of components in a class, promoting data hiding, flexibility, and reusability, while highlighting the best practices to maintain code quality.', 'duration': 314.171, 'highlights': ['The chapter explains the significance of access modifiers like private, public, and protected in Java to restrict the visibility of components in a class, promoting encapsulation.', 'The best practice is to declare variables as private to avoid exposing everything as public, promoting code quality and reducing fragility.', 'The concept of data hiding is discussed, emphasizing that users need not know the code implementation of a class and highlighting the advantages such as increased flexibility and read-only/write-only methods.', 'The drawbacks of exposing all variables as public are highlighted, including increased maintenance and difficulty in maintaining the application in the future.', 'The use of getter and setter methods is recommended, with an emphasis on restricting setter methods and using getter methods to expose variables to the outside world.']}, {'end': 17077.592, 'start': 16179.558, 'title': 'Understanding java interfaces', 'summary': 'Explains the concept of interfaces in java, emphasizing that interfaces are used to specify contracts for classes, achieve loose coupling, and enable multiple inheritance, with examples and comparisons to abstract classes and classes, and also discusses the implementation and extension of interfaces.', 'duration': 898.034, 'highlights': ['Interfaces are used to specify the contract for classes, ensuring that different implementations align with the specified specifications, promoting loose coupling.', 'Interfaces enable multiple inheritance in Java, unlike classes, and are 100% abstract, containing only abstract methods.', 'Comparison between abstract classes and interfaces, highlighting that interfaces cannot be instantiated, can contain only public members, and achieve 100% abstraction.', 'Demonstration of dynamic polymorphism through interface implementations and extensions, enabling the assignment of subclass instances to superclass references.']}, {'end': 17453.927, 'start': 17078.172, 'title': 'Java 8 default method', 'summary': 'Discusses the concept of default methods in java 8 interfaces, including rules for using private methods and the evolution of interface features through jdk versions, highlighting the prevalence of java 8 in the industry and the addition of private methods and private static methods in java 9 and later versions.', 'duration': 375.755, 'highlights': ['Java 8 interfaces allow default methods, which are inherited by all classes implementing the interface, cannot be overridden, and can be called by implementing classes.', 'Rules for using private methods in interfaces include the inability for private interface methods to be abstract, the restriction of private methods to be used only inside the interface, and the ability for private static methods to be called from other static and non-static interface methods.', 'The evolution of interface features through JDK versions includes the addition of default methods and static methods in Java 8, the prevalence of Java 8 in the industry, and the introduction of private methods and private static methods in Java 9 and later versions.']}, {'end': 17835.116, 'start': 17454.187, 'title': 'Understanding java packages', 'summary': 'Discusses the concept of java packages, namespace, avoiding collision, accessing classes within the same package, importing packages, java naming conventions, predefined java packages, and their functionalities and usage, along with the significance of packages in java programming.', 'duration': 380.929, 'highlights': ["Java packages are used to avoid name collision and add namespace, allowing classes in the same package to access each other's members.", 'Import statements are used to access classes from different packages, and the naming convention for packages usually follows the reversed internet domain name of the company.', 'Java has predefined packages such as java.lang, java.util, and java.io, each serving specific functionalities like string manipulation, utility classes, IO operations, and network programming.', 'The java.awt package is designed for event-driven UI applications, although it is not extensively used in the industry for UI applications.']}, {'end': 18529.623, 'start': 17835.461, 'title': 'Java.sql: database connectivity and access modifiers', 'summary': 'Discusses java.sql, database connectivity, and access modifiers, emphasizing the use of public, protected, private, and default modifiers and their impact on class and package accessibility, with examples and comparisons.', 'duration': 694.162, 'highlights': ['Java.sql interfaces and vendor implementations', 'Explanation of access modifiers', 'Access modifiers in different packages and subclasses', 'Importing packages and classes for access']}], 'duration': 2664.236, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s15865387.jpg', 'highlights': ['Interfaces promote loose coupling and specify class contracts', 'Encapsulation is promoted through access modifiers like private, public, and protected', 'Java 8 introduces default methods and evolves interface features', 'Java packages prevent name collision and provide namespace', 'Getters and setters are recommended to restrict setter methods and expose variables']}, {'end': 19281.317, 'segs': [{'end': 18684.034, 'src': 'embed', 'start': 18653.488, 'weight': 1, 'content': [{'end': 18656.53, 'text': 'Those type of checks could be done through regular expression, or,', 'start': 18653.488, 'duration': 3.042}, {'end': 18663.596, 'text': 'if you want some value to start with a particular character and end with a particular character, you can check it against a regular expression.', 'start': 18656.53, 'duration': 7.066}, {'end': 18666.938, 'text': 'Regular expression is a pattern used for searching and manipulating strings.', 'start': 18663.616, 'duration': 3.322}, {'end': 18669.721, 'text': 'It could be used for manipulating strings as well.', 'start': 18667.559, 'duration': 2.162}, {'end': 18674.064, 'text': 'So one of the use cases is searching and the other one is for manipulating.', 'start': 18670.001, 'duration': 4.063}, {'end': 18678.671, 'text': 'The regular expression either matches the text or fails to match.', 'start': 18674.468, 'duration': 4.203}, {'end': 18684.034, 'text': "So basically it would validate and say whether it's a match or it's failing.", 'start': 18679.291, 'duration': 4.743}], 'summary': 'Regular expressions validate and manipulate strings for searching and matching.', 'duration': 30.546, 'max_score': 18653.488, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s18653488.jpg'}, {'end': 18712.698, 'src': 'embed', 'start': 18690.018, 'weight': 0, 'content': [{'end': 18698.024, 'text': 'So Java supports regular expression and these are the classes that we have within Java which is in java.util package.', 'start': 18690.018, 'duration': 8.006}, {'end': 18702.807, 'text': 'So remember we spoke about java.util package which has got utility classes.', 'start': 18698.604, 'duration': 4.203}, {'end': 18704.932, 'text': 'So these are among them.', 'start': 18703.331, 'duration': 1.601}, {'end': 18707.514, 'text': 'So here you can see pattern class.', 'start': 18705.493, 'duration': 2.021}, {'end': 18712.698, 'text': 'You have matcher class and you have pattern syntax syntax exception.', 'start': 18708.194, 'duration': 4.504}], 'summary': 'Java supports regular expression with classes in java.util package.', 'duration': 22.68, 'max_score': 18690.018, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s18690018.jpg'}, {'end': 18968.749, 'src': 'embed', 'start': 18942.806, 'weight': 3, 'content': [{'end': 18947.31, 'text': 'You have asterisk, question mark, it tries to find the smallest match.', 'start': 18942.806, 'duration': 4.504}, {'end': 18950.412, 'text': 'This makes the regular expression stop at the first match.', 'start': 18947.85, 'duration': 2.562}, {'end': 18954.162, 'text': 'So as and when it finds the first match, it would stop.', 'start': 18951.001, 'duration': 3.161}, {'end': 18957.244, 'text': "So we'll have a quick demo on regular expression.", 'start': 18954.242, 'duration': 3.002}, {'end': 18961.185, 'text': 'So here before we start off, we define a pattern here.', 'start': 18957.644, 'duration': 3.541}, {'end': 18968.749, 'text': 'Basically, then you could see this basically saying from A to Z and followed by character one or more character.', 'start': 18961.446, 'duration': 7.303}], 'summary': 'Regular expression stops at first match, demo on pattern a to z followed by one or more characters.', 'duration': 25.943, 'max_score': 18942.806, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s18942806.jpg'}, {'end': 19147.493, 'src': 'embed', 'start': 19117.83, 'weight': 4, 'content': [{'end': 19119.111, 'text': 'So this is what we have done.', 'start': 19117.83, 'duration': 1.281}, {'end': 19125.115, 'text': 'We have compiled the pattern and we have provided the argument against which we have to check as a part of matcher.', 'start': 19119.151, 'duration': 5.964}, {'end': 19127.237, 'text': 'We get the instance of matcher.', 'start': 19125.616, 'duration': 1.621}, {'end': 19129.279, 'text': 'So everything is in terms of class.', 'start': 19127.557, 'duration': 1.722}, {'end': 19131.961, 'text': 'This is what object-oriented programming is all about.', 'start': 19129.639, 'duration': 2.322}, {'end': 19134.062, 'text': 'You have a pattern which is a class.', 'start': 19132.361, 'duration': 1.701}, {'end': 19137.705, 'text': 'You have a method within pattern which is compiling your pattern.', 'start': 19134.302, 'duration': 3.403}, {'end': 19140.99, 'text': 'So this is what object-oriented programming is all about.', 'start': 19138.228, 'duration': 2.762}, {'end': 19144.652, 'text': 'Everything is realized in terms of classes and objects.', 'start': 19141.05, 'duration': 3.602}, {'end': 19147.493, 'text': 'This is nothing but the object of pattern class.', 'start': 19145.192, 'duration': 2.301}], 'summary': 'Object-oriented programming uses classes and methods for pattern matching.', 'duration': 29.663, 'max_score': 19117.83, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s19117830.jpg'}], 'start': 18530.023, 'title': 'Java regular expressions', 'summary': 'Explains the use cases of java regular expressions for pattern checking, searching, and manipulation of strings, covering classes in java.util package like pattern, matcher, and pattern syntax exception, and provides practical demonstrations and examples.', 'chapters': [{'end': 18920.375, 'start': 18530.023, 'title': 'Java regular expressions', 'summary': 'Explains java regular expressions, their use cases like pattern checking, searching, and manipulation of strings, and the classes in the java.util package like pattern, matcher, and pattern syntax exception.', 'duration': 390.352, 'highlights': ['Regular expression is used for pattern checking, searching, and manipulation of strings, such as validating email IDs and checking for specific characters, and it can be used for pattern matching and manipulation.', 'Java supports regular expressions with classes like pattern, matcher, and pattern syntax exception in the java.util package, which are used for matching patterns and handling exceptions.', 'Various regular expression patterns are explained, including matching specific characters, ranges, wildcards, line terminators, word boundaries, meta characters for defining digits, non-digits, white space, non-white space, word, and non-word characters, and quantifiers like star and plus.']}, {'end': 19281.317, 'start': 18920.95, 'title': 'Regular expressions in java', 'summary': 'Provides an overview of regular expressions in java, covering the use of symbols such as asterisk, question mark, and range within curly braces, and includes a practical demonstration of compiling and matching patterns against strings in java, with examples and explanations.', 'duration': 360.367, 'highlights': ['The chapter discusses the use of symbols like asterisk, question mark, and range within curly braces in regular expressions in Java, providing practical examples and explanations.', 'A practical demonstration of compiling and matching patterns against strings in Java is provided, with detailed examples and explanations.', 'The usage of symbols like asterisk, question mark, and range within curly braces in regular expressions in Java is explained, with practical examples and demonstrations.']}], 'duration': 751.294, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s18530023.jpg', 'highlights': ['Java supports regular expressions with classes like pattern, matcher, and pattern syntax exception in the java.util package, which are used for matching patterns and handling exceptions.', 'Regular expression is used for pattern checking, searching, and manipulation of strings, such as validating email IDs and checking for specific characters, and it can be used for pattern matching and manipulation.', 'Various regular expression patterns are explained, including matching specific characters, ranges, wildcards, line terminators, word boundaries, meta characters for defining digits, non-digits, white space, non-white space, word, and non-word characters, and quantifiers like star and plus.', 'The chapter discusses the use of symbols like asterisk, question mark, and range within curly braces in regular expressions in Java, providing practical examples and explanations.', 'A practical demonstration of compiling and matching patterns against strings in Java is provided, with detailed examples and explanations.', 'The usage of symbols like asterisk, question mark, and range within curly braces in regular expressions in Java is explained, with practical examples and demonstrations.']}, {'end': 21021.911, 'segs': [{'end': 19447.913, 'src': 'embed', 'start': 19419.651, 'weight': 0, 'content': [{'end': 19424.573, 'text': 'First one being checked exception the other one being unchecked exception and the third one being error.', 'start': 19419.651, 'duration': 4.922}, {'end': 19428.706, 'text': 'So checkedException is something that happens at the compile time.', 'start': 19425.165, 'duration': 3.541}, {'end': 19437.309, 'text': 'What happens is when you have a checkedException, when you are invoking some method which is throwing a checkedException, and okay,', 'start': 19429.106, 'duration': 8.203}, {'end': 19441.35, 'text': "I don't want to get into the catch block as yet because we haven't covered it.", 'start': 19437.309, 'duration': 4.041}, {'end': 19444.331, 'text': 'So this is also called as compileTimeException.', 'start': 19441.551, 'duration': 2.78}, {'end': 19447.913, 'text': 'It means if a method is throwing a checkedException,', 'start': 19444.752, 'duration': 3.161}], 'summary': 'The transcript discusses checked exceptions, which occur at compile time when invoking a method that throws a checked exception.', 'duration': 28.262, 'max_score': 19419.651, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s19419651.jpg'}, {'end': 19900.304, 'src': 'embed', 'start': 19855.774, 'weight': 1, 'content': [{'end': 19860.936, 'text': "So whenever there's an exception if you haven't handled it program control would come out from there.", 'start': 19855.774, 'duration': 5.162}, {'end': 19865.117, 'text': 'Exception handling is done to execute the program without getting an exception.', 'start': 19861.476, 'duration': 3.641}, {'end': 19870.839, 'text': 'So handling is done basically to handle the exception whenever the exception occurs do some action.', 'start': 19865.377, 'duration': 5.462}, {'end': 19877.221, 'text': 'It provides flexibility to the developer to handle it the way they want to and get it going.', 'start': 19871.139, 'duration': 6.082}, {'end': 19882.789, 'text': 'Mainly try, catch and finally are keywords for exception handling.', 'start': 19877.645, 'duration': 5.144}, {'end': 19884.331, 'text': 'So we have a try catch.', 'start': 19883.17, 'duration': 1.161}, {'end': 19884.991, 'text': 'As I said,', 'start': 19884.451, 'duration': 0.54}, {'end': 19894.539, 'text': "there's a try block wherein all the suspicious one or wherever the exception you think that there could be exception occurring could put it into a try block.", 'start': 19884.991, 'duration': 9.548}, {'end': 19899.664, 'text': 'And in the catch block, you would say that if a particular exception occurs, this is what I want to do.', 'start': 19894.699, 'duration': 4.965}, {'end': 19900.304, 'text': 'All right.', 'start': 19900.024, 'duration': 0.28}], 'summary': 'Exception handling allows program to execute without errors. keywords include try, catch, and finally.', 'duration': 44.53, 'max_score': 19855.774, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s19855774.jpg'}, {'end': 20570.457, 'src': 'embed', 'start': 20544.825, 'weight': 3, 'content': [{'end': 20550.849, 'text': 'the java throw keyword is used to explicitly to throw an exception while executing the program.', 'start': 20544.825, 'duration': 6.024}, {'end': 20557.252, 'text': 'so if you want to throw something, as i said, you could create your own custom exception, and if you want to throw something, you could throw it out.', 'start': 20550.849, 'duration': 6.403}, {'end': 20559.573, 'text': 'you could throw an exception from your program.', 'start': 20557.252, 'duration': 2.321}, {'end': 20563.107, 'text': 'It can be used to throw checked or unchecked exception.', 'start': 20560.123, 'duration': 2.984}, {'end': 20570.457, 'text': 'Any kind of exception could be thrown using throws using throw and the Java throw keyword is used inside a method.', 'start': 20563.367, 'duration': 7.09}], 'summary': 'Java throw keyword used to throw exceptions, custom exceptions can be created, can throw any kind of exception.', 'duration': 25.632, 'max_score': 20544.825, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s20544825.jpg'}], 'start': 19281.837, 'title': 'Java exception handling', 'summary': 'Discusses exception handling in java, including types of exceptions like checked, unchecked, and errors, with examples and mechanisms to handle exceptions using try-catch blocks. it covers the hierarchy of exceptions in java, the purpose of exception handling, and the usage of try, catch, and finally blocks for handling exceptions, emphasizing the need for exception handling in maintaining program stability and flexibility.', 'chapters': [{'end': 19699.264, 'start': 19281.837, 'title': 'Exception handling and types', 'summary': 'Discusses exception handling, types of exceptions such as checked, unchecked, and errors, with examples like array index out of bound and null pointer exception, and the mechanisms to handle exceptions using try-catch blocks. it also explains the difference between checked and unchecked exceptions and the occurrence of runtime errors. it covers the concept of stack overflow as an example of an error condition that cannot be anticipated during compilation.', 'duration': 417.427, 'highlights': ['The chapter discusses the concept of exception handling and the different types of exceptions such as checked, unchecked, and errors.', 'Examples like array index out of bound and null pointer exception are provided to illustrate the occurrence of exceptions during program execution.', 'The mechanism to handle exceptions using try-catch blocks is explained, emphasizing the importance of catching and handling exceptions to prevent compilation errors.', 'The difference between checked and unchecked exceptions is outlined, where checked exceptions require handling at compile time while unchecked exceptions are not mandatory to be handled during compilation.', 'The concept of stack overflow is explained as an example of an error condition that cannot be anticipated during compilation time and occurs during runtime.']}, {'end': 19962.693, 'start': 19699.264, 'title': 'Java exception handling', 'summary': 'Explains the hierarchy of exceptions in java, including checked and unchecked exceptions, the purpose of exception handling, and the usage of try, catch, and finally blocks for handling exceptions, emphasizing the need to handle exceptions for program execution and providing flexibility to developers.', 'duration': 263.429, 'highlights': ['Exceptions in Java are categorized into checked and unchecked exceptions, where checked exceptions like IO exception and SQL exception need to be handled during compilation time, while unchecked exceptions like divide by zero, array index out of bounds, and null pointer exception need not be handled during compilation time.', 'The purpose of exception handling in Java is to ensure program execution without stopping at the point of exception occurrence, allowing developers to handle exceptions the way they want and providing flexibility to keep the process going.', 'Try, catch, and finally blocks are used for exception handling in Java, where the try block contains code that could generate an error, the catch block catches specific exceptions and performs actions, and the finally block is used to release resources regardless of the occurrence of an exception.']}, {'end': 20544.825, 'start': 19962.693, 'title': 'Handling exceptions in java', 'summary': 'Covers handling exceptions in java, including the use of try-catch blocks, the finally block, and multiple catch blocks to handle different types of exceptions, emphasizing the importance of exception handling in maintaining program stability and flexibility.', 'duration': 582.132, 'highlights': ['The chapter covers handling exceptions in Java, including the use of try-catch blocks, the finally block, and multiple catch blocks to handle different types of exceptions.', 'Emphasizes the importance of exception handling in maintaining program stability and flexibility.', 'Demonstrates the use of try-catch blocks to handle specific exceptions such as arithmetic exceptions.', 'Explains the role of the finally block in executing code regardless of the occurrence of an exception.', 'Discusses the use of multiple catch blocks to handle different types of exceptions and the importance of their order.', 'Explores the concept of nested try blocks and their role in handling exceptions in nested code segments.', 'Addresses the significance of the throw keyword in Java exception handling.']}, {'end': 21021.911, 'start': 20544.825, 'title': 'Java throw and throws', 'summary': "Explains how the java 'throw' keyword is used to explicitly throw exceptions within a method, and the 'throws' keyword is used at the method signature level to declare exceptions, with a focus on handling checked and unchecked exceptions, creating custom exceptions, and the differences between 'throw' and 'throws'.", 'duration': 477.086, 'highlights': ["The Java 'throw' keyword is used to explicitly throw exceptions within a method, and it can be used to throw checked or unchecked exceptions, with a focus on handling checked exceptions using try-catch or throwing them out of the method for the caller to handle.", "The 'throws' keyword is used at the method signature level to declare exceptions, and it allows the method to indicate that it is not handling a checked exception and is asking the caller to handle it, with the option to either handle the exception within the method or throw it for the caller to handle.", 'Creating custom exceptions involves extending the Exception class to create a user-defined exception, and the example demonstrates overloading constructors for creating custom exceptions and throwing them to handle specific scenarios.']}], 'duration': 1740.074, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s19281837.jpg', 'highlights': ['The chapter discusses the concept of exception handling and the different types of exceptions such as checked, unchecked, and errors.', 'The mechanism to handle exceptions using try-catch blocks is explained, emphasizing the importance of catching and handling exceptions to prevent compilation errors.', 'The purpose of exception handling in Java is to ensure program execution without stopping at the point of exception occurrence, allowing developers to handle exceptions the way they want and providing flexibility to keep the process going.', "The Java 'throw' keyword is used to explicitly throw exceptions within a method, and it can be used to throw checked or unchecked exceptions, with a focus on handling checked exceptions using try-catch or throwing them out of the method for the caller to handle."]}, {'end': 23507.09, 'segs': [{'end': 21069.03, 'src': 'embed', 'start': 21043.937, 'weight': 2, 'content': [{'end': 21051.923, 'text': 'then we saw how java is aligned to those oops concepts, how java is known as object oriented program right,', 'start': 21043.937, 'duration': 7.986}, {'end': 21056.367, 'text': 'or how java is aligned to object oriented programming paradigm.', 'start': 21051.923, 'duration': 4.444}, {'end': 21060.25, 'text': 'then we spoke about abstract classes, which is a different modifier altogether.', 'start': 21056.367, 'duration': 3.883}, {'end': 21069.03, 'text': 'And then we spoke about 100% abstraction, which is nothing but interface, which is a construct in Java which helps you to specify something.', 'start': 21061.225, 'duration': 7.805}], 'summary': 'Java aligns with oop, including abstract classes and 100% abstraction through interfaces.', 'duration': 25.093, 'max_score': 21043.937, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s21043937.jpg'}, {'end': 21147.079, 'src': 'embed', 'start': 21116.511, 'weight': 1, 'content': [{'end': 21120.251, 'text': 'Alright, so file handling is nothing but You have external files.', 'start': 21116.511, 'duration': 3.74}, {'end': 21127.493, 'text': 'You might have something on your network, or it could be on your local machine itself and you want to access it and do something on it,', 'start': 21120.391, 'duration': 7.102}, {'end': 21131.255, 'text': "or you might want to have data that's been coming to your program.", 'start': 21127.493, 'duration': 3.762}, {'end': 21135.576, 'text': 'You might want to write it into a file so that you could kind of analyze it later.', 'start': 21131.335, 'duration': 4.241}, {'end': 21137.376, 'text': 'I spoke about exception.', 'start': 21136.136, 'duration': 1.24}, {'end': 21139.297, 'text': 'right?. If you get an exception,', 'start': 21137.376, 'duration': 1.921}, {'end': 21147.079, 'text': 'you could write it into a file so that you could later on go through it and understand at what time a particular exception occurred and you could act upon it.', 'start': 21139.297, 'duration': 7.782}], 'summary': 'File handling involves accessing external files for analysis and writing data to files for later use or exception handling.', 'duration': 30.568, 'max_score': 21116.511, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s21116511.jpg'}, {'end': 21220.04, 'src': 'embed', 'start': 21197.674, 'weight': 0, 'content': [{'end': 21205.379, 'text': 'We are going to talk about list and its classification in Java queue in Java and sets and their classification in Java.', 'start': 21197.674, 'duration': 7.705}, {'end': 21212.503, 'text': 'So, as you could relate all this collection, all these components within the collection frameworks are nothing but data structures in general.', 'start': 21205.819, 'duration': 6.684}, {'end': 21213.344, 'text': "that's used right?", 'start': 21212.503, 'duration': 0.841}, {'end': 21220.04, 'text': 'So maybe in C you might have used different data structure and whereas in different languages you have different data structures right?', 'start': 21213.717, 'duration': 6.323}], 'summary': "Discussing java's list, queue, and set classifications, relating them to data structures used in other languages.", 'duration': 22.366, 'max_score': 21197.674, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s21197674.jpg'}, {'end': 21842.874, 'src': 'embed', 'start': 21810.908, 'weight': 3, 'content': [{'end': 21814.41, 'text': 'right now i opt to throw it off.', 'start': 21810.908, 'duration': 3.502}, {'end': 21816.891, 'text': "or let's handle it all right.", 'start': 21814.41, 'duration': 2.481}, {'end': 21819.012, 'text': "when i say let's handle it, it's nothing.", 'start': 21816.891, 'duration': 2.121}, {'end': 21821.714, 'text': 'but you have try catch block, all right.', 'start': 21819.012, 'duration': 2.702}, {'end': 21824.975, 'text': 'so i say catch.', 'start': 21821.714, 'duration': 3.261}, {'end': 21827.777, 'text': 'so what exception was that it was file not found.', 'start': 21824.975, 'duration': 2.802}, {'end': 21831.699, 'text': 'exception. so you need to have file already in place, all right.', 'start': 21827.777, 'duration': 3.922}, {'end': 21839.592, 'text': 'so here i print saying that given file was not found on the local disk.', 'start': 21831.699, 'duration': 7.893}, {'end': 21842.874, 'text': "all right, and what's that file?", 'start': 21839.592, 'duration': 3.282}], 'summary': 'Implementing try-catch block to handle file not found exception.', 'duration': 31.966, 'max_score': 21810.908, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s21810908.jpg'}, {'end': 22337.261, 'src': 'embed', 'start': 22310.11, 'weight': 4, 'content': [{'end': 22316.611, 'text': 'Object of file writer is being created, which is a character oriented file or which is a character oriented class.', 'start': 22310.11, 'duration': 6.501}, {'end': 22317.525, 'text': 'All right.', 'start': 22317.165, 'duration': 0.36}, {'end': 22319.107, 'text': 'And you write to a file.', 'start': 22317.645, 'duration': 1.462}, {'end': 22320.808, 'text': "You're writing to the file here.", 'start': 22319.607, 'duration': 1.201}, {'end': 22321.929, 'text': 'All right.', 'start': 22321.628, 'duration': 0.301}, {'end': 22327.613, 'text': "And similarly, when you use file reader, it's a character oriented reader reads character,", 'start': 22322.009, 'duration': 5.604}, {'end': 22330.675, 'text': 'one character at a time from the file that you have mentioned here.', 'start': 22327.613, 'duration': 3.062}, {'end': 22337.261, 'text': "So maybe I'll take just an example of writing it because it's going to be pretty much similar.", 'start': 22332.137, 'duration': 5.124}], 'summary': 'Creation of character-oriented file writer and reader for reading and writing to a file is explained.', 'duration': 27.151, 'max_score': 22310.11, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s22310110.jpg'}], 'start': 21021.911, 'title': 'Java file handling and collection framework', 'summary': 'Covers java oops concepts, file handling, and java collection framework, including lists, queues, and sets. it also provides details on file input and output operations in java, handling text and binary files, and emphasizes best practices for writing programs.', 'chapters': [{'end': 21159.38, 'start': 21021.911, 'title': 'Module 4: java file handling and collection framework', 'summary': 'Covers the basics of java oops concepts, such as abstraction, exception handling, and regular expressions, and introduces file handling and java collection framework, emphasizing the importance of these concepts in java programming.', 'duration': 137.469, 'highlights': ['The chapter emphasizes the importance of file handling in Java, highlighting its use for accessing external files, analyzing and profiling application behavior, and understanding and acting upon exceptions.', 'It covers Java OOPs concepts including abstraction, exception handling, and regular expressions, providing a comprehensive understanding of these fundamental concepts in Java programming.', 'The chapter also delves into the alignment of Java with OOPs concepts and the different types of exceptions in Java, including checked and unchecked exceptions, and the need to catch or handle exceptions in the program.']}, {'end': 21810.908, 'start': 21159.84, 'title': 'Java collection & file io', 'summary': 'Covers java collection framework including lists, queues, and sets, and delves into file input and output operations in java, providing details on the fileio api, java.io package, and handling text and binary files. it also demonstrates writing and reading into a file using printwriter and file classes, emphasizing best practices for writing programs.', 'duration': 651.068, 'highlights': ['The chapter covers Java Collection Framework including lists, queues, and sets', 'Delves into file input and output operations in Java, providing details on the FileIO API', 'Demonstrates writing and reading into a file using PrintWriter and File classes']}, {'end': 22268.559, 'start': 21810.908, 'title': 'File handling in java', 'summary': 'Covers handling file not found exception, using try-catch blocks, throwing runtime exception, writing to a file, closing resources using finally block, and reading from a file in java, with examples and explanations.', 'duration': 457.651, 'highlights': ['The program demonstrates handling file not found exception using try-catch block, and throwing runtime exception to stop further processing if file not found, with examples and explanations.', 'It includes writing content to a file, closing the file using finally block, and explaining the use of finally block for closing resources, with examples.', 'The chapter also covers reading from a file in Java using scanner and handling file not found exception by throwing it, with detailed examples.']}, {'end': 22581.214, 'start': 22269.48, 'title': 'Java file writer demo', 'summary': 'Discusses the usage of file writer in java, demonstrating the process of creating a character oriented file, writing content to a file, handling io exceptions, and verifying the successful creation of the file and its content.', 'duration': 311.734, 'highlights': ['The chapter explains the process of creating a character oriented file using file writer in Java.', 'The demonstration includes writing content to a file using the file writer in Java.', 'The chapter mentions the handling of IO exceptions when using file writer in Java.', 'The process of verifying the successful creation of the file and its content is demonstrated in the chapter.']}, {'end': 23507.09, 'start': 22582.301, 'title': 'Stream-based io in java', 'summary': 'Covers the concept of input and output operations using java streams, focusing on byte-oriented input and output streams, file output stream class, and file input stream class, including their methods and functionalities in handling file operations.', 'duration': 924.789, 'highlights': ['Java streams are used to perform input and output operations on 8 bits a byte right streams is basically operating on a byte input stream.', 'Output stream is nothing but if you want to write something from your program to any resource on a network, that would be nothing but right.', 'The file output stream class is used to write to a file and takes a byte array as input.', 'The file input stream class reads the contents of the file into the byte array passed as a parameter.', "The read method reads the next byte from the input source and returns -1 if it's the end of the stream."]}], 'duration': 2485.179, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s21021911.jpg', 'highlights': ['The chapter covers Java Collection Framework including lists, queues, and sets', 'The chapter emphasizes the importance of file handling in Java, highlighting its use for accessing external files, analyzing and profiling application behavior, and understanding and acting upon exceptions', 'The chapter also delves into the alignment of Java with OOPs concepts and the different types of exceptions in Java, including checked and unchecked exceptions, and the need to catch or handle exceptions in the program', 'The program demonstrates handling file not found exception using try-catch block, and throwing runtime exception to stop further processing if file not found, with examples and explanations', 'The chapter explains the process of creating a character oriented file using file writer in Java']}, {'end': 24786.738, 'segs': [{'end': 23626.43, 'src': 'embed', 'start': 23598.293, 'weight': 0, 'content': [{'end': 23602.836, 'text': 'So all these are kind of not big hardware, not server farms that you have.', 'start': 23598.293, 'duration': 4.543}, {'end': 23604.937, 'text': "It's a normal hardware that you could configure.", 'start': 23603.016, 'duration': 1.921}, {'end': 23614.325, 'text': "and you could run through your chunks of data or petabytes of data that comes in from cloud or from elsewhere, right? So that's the beauty of it.", 'start': 23605.501, 'duration': 8.824}, {'end': 23615.565, 'text': "That's the beauty of Java.", 'start': 23614.365, 'duration': 1.2}, {'end': 23622.168, 'text': 'And one of the main things, or main feature that Java has got is serialization and deserialization,', 'start': 23615.826, 'duration': 6.342}, {'end': 23626.43, 'text': 'which helps in having this distributed framework going okay?', 'start': 23622.168, 'duration': 4.262}], 'summary': 'Java enables distributed processing of petabytes of data using serialization and deserialization.', 'duration': 28.137, 'max_score': 23598.293, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s23598293.jpg'}, {'end': 23823.964, 'src': 'embed', 'start': 23776.574, 'weight': 1, 'content': [{'end': 23786.179, 'text': "and deserialization is nothing but again taking the state of the object that's been written to the file, again putting it back to a class format, or,", 'start': 23776.574, 'duration': 9.605}, {'end': 23790.941, 'text': 'when you want to use this serialized class, you would basically deserialize it to use it.', 'start': 23786.179, 'duration': 4.762}, {'end': 23801.588, 'text': 'So serialization is a process of converting an object into sequence of bytes which can be persisted to a disk or file and can be sent through streams,', 'start': 23791.579, 'duration': 10.009}, {'end': 23809.015, 'text': 'or can send across wire, or could be you could actually take it on your drive and transport it elsewhere.', 'start': 23801.588, 'duration': 7.427}, {'end': 23813.879, 'text': 'The reverse process which will convert data bytes into object is called deserialization.', 'start': 23809.415, 'duration': 4.464}, {'end': 23814.78, 'text': 'All right.', 'start': 23814.48, 'duration': 0.3}, {'end': 23823.163, 'text': "So how do we have this serialization and deserialization done or what classes we have for supporting it? Let's talk about that.", 'start': 23815.598, 'duration': 7.565}, {'end': 23823.964, 'text': 'All right.', 'start': 23823.604, 'duration': 0.36}], 'summary': 'Serialization converts objects into bytes for storage, transmission; deserialization reverses process.', 'duration': 47.39, 'max_score': 23776.574, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s23776574.jpg'}, {'end': 23909.159, 'src': 'embed', 'start': 23874.782, 'weight': 3, 'content': [{'end': 23881.083, 'text': 'The supporting class for serialization is Object Output Stream and Object Input Stream.', 'start': 23874.782, 'duration': 6.301}, {'end': 23884.024, 'text': "I'll quickly take a demo of this.", 'start': 23881.903, 'duration': 2.121}, {'end': 23889.945, 'text': 'The first thing that we do is serialization.', 'start': 23887.884, 'duration': 2.061}, {'end': 23896.246, 'text': 'Serialization is done by Object Output Stream.', 'start': 23889.985, 'duration': 6.261}, {'end': 23898.826, 'text': 'Again, we have a main method.', 'start': 23896.746, 'duration': 2.08}, {'end': 23902.347, 'text': 'Suppose I want to serialize it.', 'start': 23899.806, 'duration': 2.541}, {'end': 23909.159, 'text': 'I would do something like I have a private method which is void which is serialized.', 'start': 23902.387, 'duration': 6.772}], 'summary': 'Object output stream and object input stream support serialization. a private void method is used for serialization.', 'duration': 34.377, 'max_score': 23874.782, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s23874782.jpg'}, {'end': 24314.152, 'src': 'embed', 'start': 24285.137, 'weight': 5, 'content': [{'end': 24291.262, 'text': 'so one thing to note here is vehicle info class has to implement serializable.', 'start': 24285.137, 'duration': 6.125}, {'end': 24293.083, 'text': "that's a marker interface.", 'start': 24291.262, 'duration': 1.821}, {'end': 24297.806, 'text': "serializable is nothing but a marker interface and it doesn't have any method within.", 'start': 24293.083, 'duration': 4.723}, {'end': 24299.567, 'text': 'it is just an indicator.', 'start': 24297.806, 'duration': 1.761}, {'end': 24302.448, 'text': "as you could see, it's an empty interface, All right.", 'start': 24299.567, 'duration': 2.881}, {'end': 24303.989, 'text': 'This is the source code of it.', 'start': 24302.468, 'duration': 1.521}, {'end': 24305.929, 'text': "You could see it's an empty interface.", 'start': 24304.229, 'duration': 1.7}, {'end': 24314.152, 'text': 'It is just a marker or it is just a notification to the JVM saying that this class is something that could be serialized.', 'start': 24306.29, 'duration': 7.862}], 'summary': 'Vehicleinfo class must implement serializable, an empty marker interface for serialization.', 'duration': 29.015, 'max_score': 24285.137, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s24285137.jpg'}, {'end': 24524.467, 'src': 'embed', 'start': 24496.66, 'weight': 8, 'content': [{'end': 24505.674, 'text': "In the same class, or I'll just for simplicity sake, I'll change this to Object Stream Demo because this is not just.", 'start': 24496.66, 'duration': 9.014}, {'end': 24513.74, 'text': 'All right, so I refactor it and I rename this to.', 'start': 24509.717, 'duration': 4.023}, {'end': 24519.724, 'text': 'OK, so this has been renamed to Object Stream Demo.', 'start': 24515.861, 'duration': 3.863}, {'end': 24524.467, 'text': 'Now create a private method, which is nothing but void deserialize.', 'start': 24519.744, 'duration': 4.723}], 'summary': 'Refactored class to object stream demo, created private method deserialize', 'duration': 27.807, 'max_score': 24496.66, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s24496660.jpg'}, {'end': 24646.015, 'src': 'embed', 'start': 24616.783, 'weight': 9, 'content': [{'end': 24619.544, 'text': 'So here you could see we had bright object.', 'start': 24616.783, 'duration': 2.761}, {'end': 24621.945, 'text': "Now I'll have read object.", 'start': 24619.724, 'duration': 2.221}, {'end': 24628.868, 'text': 'So read object throws file not found exception or class not found exception that you need to handle.', 'start': 24622.405, 'duration': 6.463}, {'end': 24629.628, 'text': 'All right.', 'start': 24629.328, 'duration': 0.3}, {'end': 24630.689, 'text': 'Again, throw it.', 'start': 24629.928, 'duration': 0.761}, {'end': 24634.73, 'text': 'So here you could see IO exception and class not found exception.', 'start': 24630.969, 'duration': 3.761}, {'end': 24639.332, 'text': 'Right Single method can choose to throw multiple exceptions from within.', 'start': 24634.79, 'duration': 4.542}, {'end': 24640.193, 'text': 'All right.', 'start': 24639.352, 'duration': 0.841}, {'end': 24641.993, 'text': 'So we have chosen to throw it.', 'start': 24640.293, 'duration': 1.7}, {'end': 24646.015, 'text': 'Now we have vehicle info.', 'start': 24642.894, 'duration': 3.121}], 'summary': 'Demonstration of throwing and handling exceptions, including file not found and class not found exceptions.', 'duration': 29.232, 'max_score': 24616.783, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s24616783.jpg'}, {'end': 24711.238, 'src': 'embed', 'start': 24675.108, 'weight': 7, 'content': [{'end': 24677.309, 'text': "That's why we can actually typecast it.", 'start': 24675.108, 'duration': 2.201}, {'end': 24678.372, 'text': 'All right.', 'start': 24678.072, 'duration': 0.3}, {'end': 24684.616, 'text': "So now what I do is once I get this deserialized object, I'm going to print out the values that I have within.", 'start': 24678.392, 'duration': 6.224}, {'end': 24685.797, 'text': 'All right.', 'start': 24684.636, 'duration': 1.161}, {'end': 24688.258, 'text': "So I'm going to print the name of the vehicle.", 'start': 24685.837, 'duration': 2.421}, {'end': 24689.559, 'text': 'So I say.', 'start': 24688.679, 'duration': 0.88}, {'end': 24696.844, 'text': 'All right.', 'start': 24689.579, 'duration': 7.265}, {'end': 24697.444, 'text': 'Put us.', 'start': 24696.924, 'duration': 0.52}, {'end': 24703.748, 'text': 'Right So name of the vehicle in the serialized file.', 'start': 24700.846, 'duration': 2.902}, {'end': 24706.55, 'text': 'Similarly, I just copy paste it.', 'start': 24704.449, 'duration': 2.101}, {'end': 24711.238, 'text': "We'll print a number of wheels.", 'start': 24707.657, 'duration': 3.581}], 'summary': 'Deserializing object to print vehicle name and number of wheels.', 'duration': 36.13, 'max_score': 24675.108, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s24675108.jpg'}, {'end': 24786.738, 'src': 'embed', 'start': 24760.957, 'weight': 4, 'content': [{'end': 24768.765, 'text': 'OK So first we are going to serialize it and then we are going to serialize it and see whether we get the contents that we expect.', 'start': 24760.957, 'duration': 7.808}, {'end': 24770.126, 'text': 'All right.', 'start': 24768.785, 'duration': 1.341}, {'end': 24770.907, 'text': "So it's running.", 'start': 24770.146, 'duration': 0.761}, {'end': 24773.448, 'text': "Let's see if the file has been created.", 'start': 24771.647, 'duration': 1.801}, {'end': 24774.729, 'text': 'So we deleted the file.', 'start': 24773.528, 'duration': 1.201}, {'end': 24775.87, 'text': "It's not yet come.", 'start': 24775.07, 'duration': 0.8}, {'end': 24779.913, 'text': 'So we can see that a file was created here.', 'start': 24777.551, 'duration': 2.362}, {'end': 24782.095, 'text': 'Right Which is a serialized file.', 'start': 24780.293, 'duration': 1.802}, {'end': 24786.738, 'text': 'And we printed the value from the serialized file as well.', 'start': 24782.995, 'duration': 3.743}], 'summary': 'Serialized file created and tested for expected contents.', 'duration': 25.781, 'max_score': 24760.957, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s24760957.jpg'}], 'start': 23507.11, 'title': 'Serialization and deserialization in java', 'summary': 'Covers the concept of serialization and deserialization in java, emphasizing its importance in distributed computing and big data frameworks like hadoop and apache spark. it discusses the process of serializing a java class, basics of serialization and deserialization, and includes a demo on object stream and the serialization process.', 'chapters': [{'end': 23823.964, 'start': 23507.11, 'title': 'Serialization and deserialization in java', 'summary': 'Covers the concept of serialization and deserialization in java, emphasizing its importance in distributed computing and big data frameworks like hadoop and apache spark, which run on commodity hardware or cloud services instead of server farms.', 'duration': 316.854, 'highlights': ['Serialization and deserialization are essential in distributed computing and big data frameworks like Hadoop and Apache Spark, which run on commodity hardware or cloud services, reducing the need for server farms.', 'Serialization enables the conversion of an object into a sequence of bytes, which can be persisted to a disk or file and sent through streams or across wire.', "Deserialization involves the reverse process of converting data bytes into an object, allowing the retrieval of the original object's state from the persisted bytes."]}, {'end': 24285.137, 'start': 23824.044, 'title': 'Serialization in java', 'summary': 'Discusses the process of serializing a java class using object output stream, demonstrating the creation of a model class, vehicle info, and the usage of serialization to write the state of the object to a file, emphasizing the importance of implementing the serializable interface.', 'duration': 461.093, 'highlights': ['The chapter discusses the process of serializing a Java class using Object Output Stream', 'Demonstrates the creation of a model class, Vehicle info', 'Usage of serialization to write the state of the object to a file', 'Emphasizes the importance of implementing the Serializable interface']}, {'end': 24495.56, 'start': 24285.137, 'title': 'Serialization and deserialization basics', 'summary': 'Discusses the basics of serialization and deserialization, emphasizing the use of marker interface serializable, the process of serializing an object into a binary file, and the concept of deserialization for data transfer over a network.', 'duration': 210.423, 'highlights': ['The chapter emphasizes the use of marker interface Serializable for serialization.', 'It explains the process of serializing an object into a binary file.', 'The concept of deserialization for data transfer over a network is discussed.']}, {'end': 24641.993, 'start': 24496.66, 'title': 'Object stream demo', 'summary': 'Discusses the process of renaming a class to object stream demo, creating a private method for deserialization, and handling exceptions during the deserialization process.', 'duration': 145.333, 'highlights': ['The chapter covers the process of renaming a class to Object Stream Demo and creating a private method for deserialization.', 'It explains the steps involved in deserialization, including creating file input stream and object input stream.', 'The chapter also discusses handling exceptions during deserialization, specifically focusing on handling file not found exception and class not found exception.']}, {'end': 24786.738, 'start': 24642.894, 'title': 'Serialization and deserialization process', 'summary': 'Covers the process of serializing and deserializing an object, where the program serializes and deserializes a file to verify the expected content.', 'duration': 143.844, 'highlights': ['The program serializes and deserializes a file to verify the expected content.', 'The process involves typecasting the deserialized object and printing the values of the contents, including the name of the vehicle, number of wheels, and mileage.', 'The file is created during serialization, and the content is printed from the serialized file.']}], 'duration': 1279.628, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s23507110.jpg', 'highlights': ['Serialization and deserialization are essential in distributed computing and big data frameworks like Hadoop and Apache Spark, reducing the need for server farms.', 'Serialization enables the conversion of an object into a sequence of bytes, which can be persisted to a disk or file and sent through streams or across wire.', "Deserialization involves the reverse process of converting data bytes into an object, allowing the retrieval of the original object's state from the persisted bytes.", 'The chapter discusses the process of serializing a Java class using Object Output Stream.', 'The program serializes and deserializes a file to verify the expected content.', 'The chapter emphasizes the use of marker interface Serializable for serialization.', 'The concept of deserialization for data transfer over a network is discussed.', 'The process involves typecasting the deserialized object and printing the values of the contents, including the name of the vehicle, number of wheels, and mileage.', 'The chapter covers the process of renaming a class to Object Stream Demo and creating a private method for deserialization.', 'The chapter also discusses handling exceptions during deserialization, specifically focusing on handling file not found exception and class not found exception.']}, {'end': 26481.23, 'segs': [{'end': 24835.883, 'src': 'embed', 'start': 24806.926, 'weight': 0, 'content': [{'end': 24811.589, 'text': "when I say it could be transported, it's nothing, but this is just a binary file, right,", 'start': 24806.926, 'duration': 4.663}, {'end': 24818.37, 'text': 'so you could take it into your text file or you could take it into your pen drive and you could take it anywhere, All right.', 'start': 24811.589, 'duration': 6.781}, {'end': 24821.132, 'text': "so that's the beauty of serialization and deserialization.", 'start': 24818.37, 'duration': 2.762}, {'end': 24825.816, 'text': 'I spent more time on this because this is something that is very important for big data.', 'start': 24821.252, 'duration': 4.564}, {'end': 24830.079, 'text': 'Since big data is nothing but all the big data frameworks that we have.', 'start': 24826.296, 'duration': 3.783}, {'end': 24835.883, 'text': 'they follow distributed computing, and this is one of the important internals of distributed computing.', 'start': 24830.079, 'duration': 5.804}], 'summary': 'Serialization and deserialization are crucial for big data frameworks due to their role in distributed computing.', 'duration': 28.957, 'max_score': 24806.926, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s24806926.jpg'}, {'end': 24961.96, 'src': 'embed', 'start': 24931.228, 'weight': 3, 'content': [{'end': 24937.413, 'text': "but what I'm trying to say is wrapper class is nothing but a wrapper built upon the primitive data type,", 'start': 24931.228, 'duration': 6.185}, {'end': 24945.14, 'text': "so that everything is taken care in terms of classes, since it's completely object oriented programming language, right?", 'start': 24937.413, 'duration': 7.727}, {'end': 24949.524, 'text': 'So Java has a class dedicated to each of the primitive types.', 'start': 24945.22, 'duration': 4.304}, {'end': 24954.428, 'text': 'These are known as wrapper classes because they wrap the primitive data type into the object of that class.', 'start': 24949.564, 'duration': 4.864}, {'end': 24961.96, 'text': 'right. so you could see for byte you have a wrapper class, corresponding wrapper class as byte, which starts with capital B.', 'start': 24954.995, 'duration': 6.965}], 'summary': 'Java has wrapper classes for primitive types, ensuring object-oriented handling.', 'duration': 30.732, 'max_score': 24931.228, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s24931228.jpg'}, {'end': 25172.63, 'src': 'embed', 'start': 25146.306, 'weight': 1, 'content': [{'end': 25151.07, 'text': 'so when we take example, you should get some more idea about this.', 'start': 25146.306, 'duration': 4.764}, {'end': 25158.437, 'text': 'generic provide compile time type safety allowing programmers to catch invalid types at the compile time.', 'start': 25151.07, 'duration': 7.367}, {'end': 25164.943, 'text': 'so generics work on type erasure, which is nothing but which is done at the compile time itself.', 'start': 25158.437, 'duration': 6.506}, {'end': 25166.624, 'text': "basically it's done at the compile time.", 'start': 25164.943, 'duration': 1.681}, {'end': 25172.63, 'text': 'it can catch exceptions during the compile time itself or it could prompt you during the compile time itself.', 'start': 25166.624, 'duration': 6.006}], 'summary': 'Generics provide compile-time type safety, catching invalid types at compile time.', 'duration': 26.324, 'max_score': 25146.306, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s25146306.jpg'}, {'end': 25425.099, 'src': 'embed', 'start': 25400.304, 'weight': 4, 'content': [{'end': 25407.728, 'text': 'You could imagine one of the classes within collection is list, which is nothing but growable array of any data type.', 'start': 25400.304, 'duration': 7.424}, {'end': 25408.309, 'text': 'All right.', 'start': 25408.009, 'duration': 0.3}, {'end': 25414.973, 'text': 'So Java collection framework provides an architecture to store and manipulate a group of object.', 'start': 25408.709, 'duration': 6.264}, {'end': 25417.674, 'text': 'A Java collection framework includes the following.', 'start': 25415.353, 'duration': 2.321}, {'end': 25423.738, 'text': 'It has interfaces, classes and algorithm interfaces is nothing but again, specification.', 'start': 25417.955, 'duration': 5.783}, {'end': 25425.099, 'text': 'This is how it should be.', 'start': 25423.818, 'duration': 1.281}], 'summary': 'Java collection framework provides architecture to store and manipulate objects, including interfaces, classes, and algorithm specifications.', 'duration': 24.795, 'max_score': 25400.304, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s25400304.jpg'}, {'end': 25793.706, 'src': 'embed', 'start': 25767.094, 'weight': 2, 'content': [{'end': 25773.897, 'text': 'ArrayList is nothing but similar to arrays that we had, and here you could see elements stored within of size 5.', 'start': 25767.094, 'duration': 6.803}, {'end': 25778.239, 'text': 'ArrayList of size 5 and you could see values stored within.', 'start': 25773.897, 'duration': 4.342}, {'end': 25787.384, 'text': 'All right, so this is how you instantiate an ArrayList ArrayList object is equal to new ArrayList and you have an ArrayList created.', 'start': 25778.561, 'duration': 8.823}, {'end': 25793.706, 'text': 'One of the main things about ArrayList is, as I said, itself grow able or its dynamic.', 'start': 25787.824, 'duration': 5.882}], 'summary': 'Arraylist stores 5 elements, dynamically expandable.', 'duration': 26.612, 'max_score': 25767.094, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s25767094.jpg'}], 'start': 24787.118, 'title': 'Java data handling', 'summary': 'Covers serialization and deserialization, wrapper classes, generics in java, advantages of generics, and java arraylist basics. it emphasizes the significance of serialization for big data applications, type safety and compile-time checking in generics, and the basics of creating and iterating through arraylist in java.', 'chapters': [{'end': 24825.816, 'start': 24787.118, 'title': 'Serialization and deserialization for big data', 'summary': 'Discusses the process of serialization and deserialization, emphasizing the significance of storing the state of an object to a disk, allowing it to be transported as a binary file, crucial for big data applications.', 'duration': 38.698, 'highlights': ['Serialization and deserialization allow storing the state of an object to a disk and transporting it as a binary file, crucial for big data applications.', 'The expected value printed after deserialization was BMW 4 and 10, demonstrating successful storage and retrieval of object state.', 'The process enables the data to be transported as a binary file, facilitating its transfer across different storage mediums such as text files or pen drives.']}, {'end': 25225.062, 'start': 24826.296, 'title': 'Understanding wrapper classes and generics in java', 'summary': 'Covers the concept of wrapper classes in java, which are objects that wrap primitive data types, and generics, which provide type safety and allow handling any data type. it also explains the use of wrapper classes and the concept of generics in java, providing insights into wrapper classes and generics in terms of object-oriented programming.', 'duration': 398.766, 'highlights': ['Wrapper classes in Java are objects that wrap primitive data types, making the language completely object-oriented.', 'Generics in Java enable type parameters when defining classes, interfaces, and methods, providing compile-time type safety.', 'The concept of wrapper classes and generics is explained in the context of object-oriented programming in Java.']}, {'end': 26063.195, 'start': 25225.745, 'title': 'Advantages of generics in java', 'summary': 'Explains the advantages of generics in java, emphasizing type safety, compile-time checking, and avoiding typecasting, enabling the creation of data structures to hold specific types and catch errors during compile time, and provides an overview of the java collection framework including interfaces, classes, and algorithms.', 'duration': 837.45, 'highlights': ['Generics ensure type safety and avoid typecasting, enabling the creation of data structures to hold specific types and catch errors during compile time.', 'Java collection framework includes interfaces, classes, and algorithms to store and manipulate a group of objects.', 'The collection framework includes distinct data structures such as list, queue, and set, each with specific properties like ordered collection, first in first out, and unique values.', 'The ArrayList in Java is a dynamic, self-growing array that does not require a predefined size during declaration and provides methods for adding, removing, and traversing elements.', 'Traversal of a collection in Java is accomplished using the Iterator interface, which allows the iteration, access, and removal of data elements within the collection.']}, {'end': 26481.23, 'start': 26063.635, 'title': 'Java arraylist basics', 'summary': 'Covers the basics of creating and iterating through arraylist in java, including the process of creating a list of strings, adding values to it, and iterating through the list using iterators. it also touches upon the usage of java 8 streams as an alternative to iterators.', 'duration': 417.595, 'highlights': ["The process of creating a list of strings and adding values to it involves instantiating an ArrayList and adding specific values such as 'BMW', 'Mercedes', and 'Audi'.", "Iterating through the list is demonstrated using list iterators, with a specific example of printing the values 'BMW', 'Mercedes', and 'Audi' using the iterator dot next method.", 'The chapter briefly mentions the transition towards using Java 8 streams as an alternative to iterators, highlighting the benefits of abstraction and reduced verbosity in stream processing.']}], 'duration': 1694.112, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s24787118.jpg', 'highlights': ['Serialization and deserialization crucial for big data applications', 'Generics in Java provide compile-time type safety', 'ArrayList in Java is a dynamic, self-growing array', 'Wrapper classes in Java make the language completely object-oriented', 'Java collection framework includes distinct data structures']}, {'end': 27454.114, 'segs': [{'end': 26526.404, 'src': 'embed', 'start': 26499.223, 'weight': 0, 'content': [{'end': 26506.61, 'text': "So what are the advantages of using array list? It's more about It's faster in terms of retrieval, right? Index based retrieval.", 'start': 26499.223, 'duration': 7.387}, {'end': 26511.394, 'text': 'So suppose, if you want to get to the index, to just write like ArrayList dot,', 'start': 26506.63, 'duration': 4.764}, {'end': 26515.717, 'text': 'get to and it would give you the one at the index to or the element at the index to.', 'start': 26511.394, 'duration': 4.323}, {'end': 26526.404, 'text': 'Whereas when it comes to insertions and deletions, if you want to insert a particular object at index to what it has to do is it has to move.', 'start': 26516.257, 'duration': 10.147}], 'summary': 'Advantages of array list: faster retrieval with index-based access.', 'duration': 27.181, 'max_score': 26499.223, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s26499223.jpg'}, {'end': 26587.066, 'src': 'embed', 'start': 26558.936, 'weight': 2, 'content': [{'end': 26561.537, 'text': 'A typical online transaction processing.', 'start': 26558.936, 'duration': 2.601}, {'end': 26566.04, 'text': 'this thing would be application or say, for example, you have Amazon right?', 'start': 26561.537, 'duration': 4.503}, {'end': 26572.084, 'text': 'Amazon or something wherein you have a lot of transactions happening which needs insertions and deletions right?', 'start': 26566.341, 'duration': 5.743}, {'end': 26575.226, 'text': 'In that case, ArrayList is not a good option.', 'start': 26572.705, 'duration': 2.521}, {'end': 26580.93, 'text': 'Whereas in terms of big data, which is like analytics, right? Online analytic processing.', 'start': 26575.687, 'duration': 5.243}, {'end': 26585.566, 'text': "which doesn't have transactions as such, right? It doesn't have insertions and deletions.", 'start': 26581.343, 'duration': 4.223}, {'end': 26587.066, 'text': 'It is one-time load.', 'start': 26585.986, 'duration': 1.08}], 'summary': 'Online transaction processing requires efficient data handling, while big data analytics involves one-time loads without transactions.', 'duration': 28.13, 'max_score': 26558.936, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s26558936.jpg'}, {'end': 26790.087, 'src': 'embed', 'start': 26759.464, 'weight': 1, 'content': [{'end': 26765.226, 'text': 'If any element is removed from the array list, then the rest of the element should be shifted to the left, all right?', 'start': 26759.464, 'duration': 5.762}, {'end': 26770.087, 'text': 'Similarly, when you add something to the list, you have to move everything to the right.', 'start': 26765.806, 'duration': 4.281}, {'end': 26777.47, 'text': 'Adding an element in between or removing an element with linked list is faster than array list because it uses doubly linked list.', 'start': 26770.868, 'duration': 6.602}, {'end': 26782.401, 'text': "So no element shifting is required, right? You don't have to shift any addresses or something.", 'start': 26777.93, 'duration': 4.471}, {'end': 26790.087, 'text': "It's just about moving the pointers, right? So you would just move it, skip one element and move to the next in terms of deletion.", 'start': 26782.521, 'duration': 7.566}], 'summary': 'Adding/removing elements in linked list faster than array list due to no shifting.', 'duration': 30.623, 'max_score': 26759.464, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s26759464.jpg'}, {'end': 26845.914, 'src': 'embed', 'start': 26800.535, 'weight': 8, 'content': [{'end': 26806.3, 'text': 'It is normally for list, but linked list could be thought of as a list as well as queue.', 'start': 26800.535, 'duration': 5.765}, {'end': 26809.923, 'text': "right?. Since it's a doubly linked list, you could have like first in, first out.", 'start': 26806.3, 'duration': 3.623}, {'end': 26814.668, 'text': 'ArrayList is better for storing and accessing data.', 'start': 26810.566, 'duration': 4.102}, {'end': 26815.569, 'text': 'All right.', 'start': 26815.268, 'duration': 0.301}, {'end': 26822.352, 'text': 'So as I said, this is pretty much good enough for analytical sort of application analytical nature of application.', 'start': 26815.709, 'duration': 6.643}, {'end': 26826.014, 'text': 'Whereas when it comes to transactional linked list would be better.', 'start': 26822.812, 'duration': 3.202}, {'end': 26835.699, 'text': 'So linked list is better for manipulating data and it is slow in searching an element because it needs to compare the elements from the first node when it comes to,', 'start': 26826.054, 'duration': 9.645}, {'end': 26837.3, 'text': 'you know, index-based search.', 'start': 26835.699, 'duration': 1.601}, {'end': 26845.914, 'text': 'It is slower because it has to start all the way from the start because it goes through links, right? It has links to next element.', 'start': 26838.072, 'duration': 7.842}], 'summary': 'Linked list is good for data manipulation, while arraylist is better for storing and accessing data. linked list is slower in searching due to its structure.', 'duration': 45.379, 'max_score': 26800.535, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s26800535.jpg'}, {'end': 26897.545, 'src': 'embed', 'start': 26868.41, 'weight': 4, 'content': [{'end': 26873.112, 'text': 'But what is important to note is vector is synchronized when it comes to multi-threading.', 'start': 26868.41, 'duration': 4.702}, {'end': 26875.434, 'text': "It's better to go with vector.", 'start': 26873.473, 'duration': 1.961}, {'end': 26878.535, 'text': 'But nowadays we have concurrent ArrayList.', 'start': 26875.614, 'duration': 2.921}, {'end': 26880.916, 'text': 'ArrayList that is supporting concurrency.', 'start': 26878.855, 'duration': 2.061}, {'end': 26886.859, 'text': 'So there are a lot of optimized versions of it, which gives a lot of performance improvement.', 'start': 26881.777, 'duration': 5.082}, {'end': 26889.961, 'text': 'So vectors are no more used as such in industry.', 'start': 26887, 'duration': 2.961}, {'end': 26892.983, 'text': "It's a legacy form of ArrayList.", 'start': 26890.621, 'duration': 2.362}, {'end': 26897.545, 'text': 'There are concurrent versions of ArrayList that has been evolved.', 'start': 26893.723, 'duration': 3.822}], 'summary': 'Vector is no longer used; concurrent arraylist is preferred for multi-threading, offering performance improvement.', 'duration': 29.135, 'max_score': 26868.41, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s26868410.jpg'}, {'end': 27040.3, 'src': 'embed', 'start': 27017.333, 'weight': 5, 'content': [{'end': 27025.435, 'text': 'So double ended interface DQ DQ interface allows you to add and remove elements from peak as well as from the bottom.', 'start': 27017.333, 'duration': 8.102}, {'end': 27026.776, 'text': "That's what DQ is.", 'start': 27025.575, 'duration': 1.201}, {'end': 27028.196, 'text': 'Double ended queue.', 'start': 27027.416, 'duration': 0.78}, {'end': 27033.018, 'text': 'Right And I read DQ is nothing but the concrete implementation of DQ.', 'start': 27028.596, 'duration': 4.422}, {'end': 27037.559, 'text': 'DQ is an interface and the concrete implementation is already DQ.', 'start': 27033.278, 'duration': 4.281}, {'end': 27040.3, 'text': 'So what are the Q and DQ methods?', 'start': 27038.339, 'duration': 1.961}], 'summary': 'Double ended queue (dq) interface allows adding and removing elements from both ends. dq is a concrete implementation of the interface.', 'duration': 22.967, 'max_score': 27017.333, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s27017333.jpg'}, {'end': 27444.77, 'src': 'embed', 'start': 27415.283, 'weight': 6, 'content': [{'end': 27418.545, 'text': 'So here we have something like you could remove first.', 'start': 27415.283, 'duration': 3.262}, {'end': 27419.906, 'text': 'All right.', 'start': 27419.546, 'duration': 0.36}, {'end': 27421.647, 'text': "So it's a double ended queue.", 'start': 27420.306, 'duration': 1.341}, {'end': 27423.769, 'text': 'You could interact in both the directions.', 'start': 27421.688, 'duration': 2.081}, {'end': 27428.372, 'text': 'You could actually remove first and add to the last and stuff like that.', 'start': 27424.59, 'duration': 3.782}, {'end': 27438.287, 'text': "So you could see here that there's a double ended queue created with four elements initially, 21, 42, 63 and 84.", 'start': 27428.513, 'duration': 9.774}, {'end': 27444.77, 'text': 'And you could see that remove first is removing forty to twenty one rather from here since twenty one is the first one.', 'start': 27438.287, 'duration': 6.483}], 'summary': 'A double ended queue allows interaction in both directions, demonstrated with 4 initial elements: 21, 42, 63, and 84.', 'duration': 29.487, 'max_score': 27415.283, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s27415283.jpg'}], 'start': 26482.131, 'title': 'Java data structures', 'summary': 'Covers the advantages of arraylist, such as faster index-based retrieval, and its use cases for big data applications and online transaction processing. it also discusses the differences between linked list and array list, highlighting the advantages of linked list for insertions and deletions, and its suitability for transactional applications and multi-threading. additionally, the chapter explores the implementation of queue and double ended queue in java, covering their methods and functionalities.', 'chapters': [{'end': 26600.555, 'start': 26482.131, 'title': 'Arraylist: advantages and use cases', 'summary': 'Discusses the advantages of arraylist, highlighting its faster index-based retrieval and the inefficiency in insertions and deletions, providing use cases for big data applications and online transaction processing.', 'duration': 118.424, 'highlights': ['ArrayList enables faster index-based retrieval, making it suitable for use in scenarios where frequent retrieval operations are required, such as big data applications. (e.g. ArrayList.get() allows quick access to elements at a specific index)', 'The inefficiency in insertions and deletions in ArrayList is highlighted, as it requires moving elements and incrementing the entire array, making it unsuitable for scenarios involving frequent modifications, such as online transaction processing. (e.g. Inserting an element at a specific index in ArrayList requires shifting the subsequent elements, causing inefficiency and time consumption.)', 'The discussion emphasizes the relevance of ArrayList in big data applications, stating that it is ideal for scenarios that involve one-time data loading and processing without frequent insertions and deletions, such as online analytic processing. (e.g. ArrayList is recommended for big data applications and online analytic processing, where data manipulation involving insertions and deletions is minimal or non-existent.)']}, {'end': 26959.481, 'start': 26600.895, 'title': 'Linked list vs arraylist', 'summary': 'Discusses the differences between linked list and array list, highlighting the advantages of linked list for insertions and deletions, its use of doubly linked list, and its suitability for transactional applications and multi-threading, while also noting the legacy status of vectors in comparison to array list and concurrent array list.', 'duration': 358.586, 'highlights': ['Linked list is better for manipulating data and slow in searching an element because it needs to compare the elements from the first node when it comes to index-based search', 'Linked list uses doubly linked list to store elements, making it faster for insertions and deletions compared to array list', 'ArrayList is better for storing and accessing data, making it suitable for analytical applications', 'Vectors are a legacy form of ArrayList, synchronized for multi-threading, but no longer used in industry due to the evolution of concurrent ArrayList']}, {'end': 27454.114, 'start': 26959.481, 'title': 'Queue and double ended queue in java', 'summary': 'Discusses the implementation of queue and double ended queue in java, covering the methods and functionalities of queue, including adding, removing, and retrieving elements, and also demonstrates the use of double ended queue for adding and removing elements in both directions.', 'duration': 494.633, 'highlights': ['The chapter discusses the implementation of Queue and Double Ended Queue in Java', 'The methods and functionalities of Queue, including adding, removing, and retrieving elements', 'Demonstrates the use of Double Ended Queue for adding and removing elements in both directions']}], 'duration': 971.983, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s26482131.jpg', 'highlights': ['ArrayList enables faster index-based retrieval, suitable for big data applications. (e.g. ArrayList.get() allows quick access to elements at a specific index)', 'Linked list uses doubly linked list for faster insertions and deletions compared to array list', 'ArrayList is recommended for big data applications and online analytic processing, where data manipulation involving insertions and deletions is minimal or non-existent.', 'The inefficiency in insertions and deletions in ArrayList makes it unsuitable for scenarios involving frequent modifications, such as online transaction processing. (e.g. Inserting an element at a specific index in ArrayList requires shifting the subsequent elements, causing inefficiency and time consumption.)', 'Vectors are a legacy form of ArrayList, synchronized for multi-threading, but no longer used in industry due to the evolution of concurrent ArrayList', 'The chapter discusses the implementation of Queue and Double Ended Queue in Java', 'The methods and functionalities of Queue, including adding, removing, and retrieving elements', 'Demonstrates the use of Double Ended Queue for adding and removing elements in both directions', 'Linked list is better for manipulating data and slow in searching an element because it needs to compare the elements from the first node when it comes to index-based search', 'ArrayList is better for storing and accessing data, making it suitable for analytical applications']}, {'end': 29252.323, 'segs': [{'end': 27843.597, 'src': 'embed', 'start': 27819.357, 'weight': 1, 'content': [{'end': 27826.002, 'text': "And this is what is reusability, right? See, I'm not writing the method to print it multiple times.", 'start': 27819.357, 'duration': 6.645}, {'end': 27831.747, 'text': "It's just once and which could be used for printing has set as well as linked has set.", 'start': 27826.263, 'duration': 5.484}, {'end': 27834.79, 'text': 'So this is what reusability is all about.', 'start': 27832.468, 'duration': 2.322}, {'end': 27838.833, 'text': "If you don't expose it as a method and if you write it within your main method,", 'start': 27834.89, 'duration': 3.943}, {'end': 27843.597, 'text': "you won't be able to reuse it and you would have to write the same piece of code multiple times.", 'start': 27838.833, 'duration': 4.764}], 'summary': 'Reusability allows code to be used multiple times, saving effort and avoiding repetition.', 'duration': 24.24, 'max_score': 27819.357, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s27819357.jpg'}, {'end': 28300.406, 'src': 'embed', 'start': 28273.519, 'weight': 2, 'content': [{'end': 28278.063, 'text': 'None of is creates an empty enum set with the specified element type.', 'start': 28273.519, 'duration': 4.544}, {'end': 28284.278, 'text': 'uh, this creates a enum set initially containing the specified element.', 'start': 28278.775, 'duration': 5.503}, {'end': 28286.599, 'text': 'okay, you could initialize it as well.', 'start': 28284.278, 'duration': 2.321}, {'end': 28294.163, 'text': 'so basically, here we are giving a specific class with which it would be created or the enum set would be created.', 'start': 28286.599, 'duration': 7.564}, {'end': 28300.406, 'text': 'range creates a enum set initially containing the specified elements.', 'start': 28294.163, 'duration': 6.243}], 'summary': 'Creating enum sets with specified element type and elements.', 'duration': 26.887, 'max_score': 28273.519, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s28273519.jpg'}, {'end': 28508.838, 'src': 'embed', 'start': 28483.046, 'weight': 0, 'content': [{'end': 28491.67, 'text': 'Again, there are different variants that we would look at map has hash map, which is similar to has set which is based on indexing or hashing.', 'start': 28483.046, 'duration': 8.624}, {'end': 28495.432, 'text': 'All right, you have linked hash map, which is pretty much similar again.', 'start': 28492.551, 'duration': 2.881}, {'end': 28498.893, 'text': "Hash map doesn't maintain the sequence of insertions.", 'start': 28496.052, 'duration': 2.841}, {'end': 28501.915, 'text': 'Linked hash map maintains the sequence of insertions.', 'start': 28499.374, 'duration': 2.541}, {'end': 28508.838, 'text': "There's a sorted map, which is again free map and which is sorted on based on keys.", 'start': 28502.455, 'duration': 6.383}], 'summary': 'Different map variants: hash map, linked hash map, sorted map.', 'duration': 25.792, 'max_score': 28483.046, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s28483046.jpg'}, {'end': 28727.462, 'src': 'embed', 'start': 28700.059, 'weight': 3, 'content': [{'end': 28703.14, 'text': 'You can have multiple null values, but only one null key.', 'start': 28700.059, 'duration': 3.081}, {'end': 28705.101, 'text': "You can't have multiple null keys.", 'start': 28703.58, 'duration': 1.521}, {'end': 28710.463, 'text': 'So null is also treated as a key, as a valid key when it comes to HashMap.', 'start': 28705.501, 'duration': 4.962}, {'end': 28719.476, 'text': "Whereas in hash table, there's one more variant of key value pair, which is hash table, which would throw you an error if you have key as null.", 'start': 28711.17, 'duration': 8.306}, {'end': 28721.918, 'text': 'But HashMap takes key as null.', 'start': 28720.037, 'duration': 1.881}, {'end': 28724.16, 'text': "So that's an advantage of it.", 'start': 28722.839, 'duration': 1.321}, {'end': 28727.462, 'text': "So HashMap doesn't maintain the order of the element.", 'start': 28724.52, 'duration': 2.942}], 'summary': 'Hashmap allows null keys and values, while maintaining no order.', 'duration': 27.403, 'max_score': 28700.059, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s28700059.jpg'}], 'start': 27455.415, 'title': 'Java set implementations and map in java', 'summary': 'Explains the implementation and properties of different set implementations in java, including hashset, linkedhashset, and treeset, and discusses enumset and map in java, covering enumset as a special type of set used for creating enum constants and map being a key-value pair data structure with unique keys and different variants like hashmap, linkedhashmap, and treemap.', 'chapters': [{'end': 27818.596, 'start': 27455.415, 'title': 'Java set implementations', 'summary': 'Explains the implementation and properties of different set implementations in java, including hashset, linkedhashset, and treeset, highlighting their unique features and usage scenarios, with a detailed example of hashset and linkedhashset usage.', 'duration': 363.181, 'highlights': ['HashSet, LinkedHashSet, and TreeSet are variants of Set in Java, with HashSet being efficient for retrieval due to indexing, LinkedHashSet maintaining insertion order, and TreeSet being used for sorting elements.', 'The HashSet does not maintain any order and uses hashing for faster retrieval, whereas LinkedHashSet maintains the insertion order of elements added to it.', 'The clone method inherited from the Object class allows for shallow copying of the Set, which creates a copy with the same references, while deep copying creates different instances for each element.', 'The iterator method is used to iterate through the Set, and the size method is used to check the size of the Set.', 'The chapter provides a detailed example of creating and iterating through HashSet and LinkedHashSet instances in Java.']}, {'end': 28196.457, 'start': 27819.357, 'title': 'Understanding reusability and sets in java', 'summary': 'Discusses the concept of reusability in java, emphasizing the benefits of writing reusable methods and the differences between linked hash sets and hash sets. it also covers the retain all method, size, hash code, contains, contains all, iterator, converting collections to arrays, and checking if a collection is empty.', 'duration': 377.1, 'highlights': ['The concept of reusability is explained, highlighting the benefits of writing reusable methods, such as improving readability and reducing redundancy.', 'The differences between linked hash sets and hash sets are discussed, including the maintenance of insertion order and the random nature of retrieval in linked hash sets.', 'The retain all method is explained, demonstrating how it performs an intersection between two sets and retains common elements, with a quantifiable example of retaining elements 1 and 2 from a set with values 1, 2, 3, and 4.', 'Methods such as size, hash code, contains, contains all, iterator, converting collections to arrays, and checking if a collection is empty are detailed, providing insights into their functionalities in Java collections.']}, {'end': 28672.086, 'start': 28201.388, 'title': 'Enumset and map in java', 'summary': 'Discusses enumset and map in java, with enumset being a special type of set used for creating enum constants, and map being a key-value pair data structure with unique keys and different variants like hashmap, linkedhashmap, and treemap. it also covers typical exceptions when dealing with map interface.', 'duration': 470.698, 'highlights': ['EnumSet creates enum set containing all elements in the specified element type', 'Map maintains key-value pairs with unique keys and different variants like HashMap, LinkedHashMap, and TreeMap', 'Exception types like NoSuchElementException, ClassCastException, NullPointerException, and UnsupportedOperationException are thrown when using Map interface']}, {'end': 29252.323, 'start': 28673.286, 'title': 'Java hashmap and enummap', 'summary': 'Introduces java hashmap, explaining its features including unique elements, handling of null keys and values, and maintaining insertion order. it also covers linked hashmap and treemap, highlighting their differences in maintaining order. additionally, it discusses enummap and its usage with enum keys for mapping values.', 'duration': 579.037, 'highlights': ['Java HashMap features unique elements and allows multiple null values but only one null key, while maintaining no specific order for the elements.', 'Linked HashMap maintains the order of elements as they were entered, while TreeMap sorts based on the key, and EnumMap is a specialized map implementation for enum keys.', 'EnumMap restricts keys to enum values and demonstrates mapping values accordingly.']}], 'duration': 1796.908, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s27455415.jpg', 'highlights': ['HashSet, LinkedHashSet, and TreeSet are variants of Set in Java, with HashSet being efficient for retrieval due to indexing, LinkedHashSet maintaining insertion order, and TreeSet being used for sorting elements.', 'The concept of reusability is explained, highlighting the benefits of writing reusable methods, such as improving readability and reducing redundancy.', 'EnumSet creates enum set containing all elements in the specified element type', 'Java HashMap features unique elements and allows multiple null values but only one null key, while maintaining no specific order for the elements.']}, {'end': 29992.451, 'segs': [{'end': 29429.326, 'src': 'embed', 'start': 29385.839, 'weight': 2, 'content': [{'end': 29388.161, 'text': 'It provides single sorting sequence only.', 'start': 29385.839, 'duration': 2.322}, {'end': 29392.143, 'text': 'That is, you can sort the elements based on one data only.', 'start': 29388.261, 'duration': 3.882}, {'end': 29395.665, 'text': "You can't have multiple data, can't sort based on multiple data.", 'start': 29392.323, 'duration': 3.342}, {'end': 29396.406, 'text': 'All right.', 'start': 29396.106, 'duration': 0.3}, {'end': 29401.869, 'text': "So I'll just walk you through this, which would give you an example.", 'start': 29398.367, 'duration': 3.502}, {'end': 29406.272, 'text': 'So So basically, you have a student which implements comparable.', 'start': 29401.989, 'duration': 4.283}, {'end': 29411.395, 'text': 'Now, here you could relate to the example that I took, wherein you have roll number and name.', 'start': 29406.812, 'duration': 4.583}, {'end': 29412.816, 'text': 'Now you want to sort it.', 'start': 29411.816, 'duration': 1}, {'end': 29415.458, 'text': 'Now, what we are trying to sort here is by roll number.', 'start': 29412.836, 'duration': 2.622}, {'end': 29418.681, 'text': "So that's how you express using comparable right?", 'start': 29415.919, 'duration': 2.762}, {'end': 29421.482, 'text': 'You have comparable student right?', 'start': 29418.741, 'duration': 2.741}, {'end': 29429.326, 'text': "And you could see here there's a compare to method that this comparable student has got or the comparable interface has got.", 'start': 29422.122, 'duration': 7.204}], 'summary': "The transcript explains the limitation of single sorting sequence and provides an example using a student's roll number for sorting.", 'duration': 43.487, 'max_score': 29385.839, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s29385839.jpg'}, {'end': 29886.407, 'src': 'embed', 'start': 29854.537, 'weight': 0, 'content': [{'end': 29855.779, 'text': 'So what is comparator?', 'start': 29854.537, 'duration': 1.242}, {'end': 29858.622, 'text': 'and comparable comparator provides single sorting sequence.', 'start': 29855.779, 'duration': 2.843}, {'end': 29867.533, 'text': 'That is, we can sort the collection on the basis of single statement, such as ID or name, as we saw that you would have just one compared to method,', 'start': 29858.662, 'duration': 8.871}, {'end': 29870.977, 'text': 'and based on that you would have the sequencing done or the sorting done.', 'start': 29867.533, 'duration': 3.444}, {'end': 29874.081, 'text': 'Whereas comparator you could have multiple logic.', 'start': 29871.498, 'duration': 2.583}, {'end': 29879.94, 'text': 'since you could have multiple classes implementing this comparator and you could write your own logic.', 'start': 29874.633, 'duration': 5.307}, {'end': 29886.407, 'text': 'Like in the previous example, we saw that we had a comparator based on rule number and we had a comparator based on name as well.', 'start': 29880.14, 'duration': 6.267}], 'summary': 'Comparator and comparable allow for single and multiple sorting sequences based on specific criteria.', 'duration': 31.87, 'max_score': 29854.537, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s29854537.jpg'}, {'end': 29934.811, 'src': 'embed', 'start': 29895.554, 'weight': 4, 'content': [{'end': 29897.334, 'text': 'within the student class itself.', 'start': 29895.554, 'duration': 1.78}, {'end': 29903.597, 'text': 'you define the compare to method when you use comparable, whereas when you use comparator you wrote different classes.', 'start': 29897.334, 'duration': 6.263}, {'end': 29906.358, 'text': "so that's about decoupling that I mentioned.", 'start': 29903.597, 'duration': 2.761}, {'end': 29914.922, 'text': 'comparable provides compared to method to sort the elements and comparator provides compare method to sort elements.', 'start': 29906.358, 'duration': 8.564}, {'end': 29923.425, 'text': 'all right, comparable is found in Java dot lang package and comparator is found in java.util package.', 'start': 29914.922, 'duration': 8.503}, {'end': 29934.811, 'text': 'we can sort the list of comparable type by collections dot sort list and we can sort list of elements of comparator type by collections dot sort list,', 'start': 29923.425, 'duration': 11.386}], 'summary': 'Using comparable for sorting within student class, comparator for decoupling, and java packages for each method.', 'duration': 39.257, 'max_score': 29895.554, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s29895554.jpg'}, {'end': 29992.451, 'src': 'embed', 'start': 29964.364, 'weight': 5, 'content': [{'end': 29971.846, 'text': 'Like we gave something for rule number, we instantiated rule number comparator and gave it for sorting by rule number.', 'start': 29964.364, 'duration': 7.482}, {'end': 29975.927, 'text': 'And we instantiated name comparator for sorting by name.', 'start': 29972.526, 'duration': 3.401}, {'end': 29981.047, 'text': "All right, so that's how we sort user-defined classes.", 'start': 29977.486, 'duration': 3.561}, {'end': 29985.089, 'text': 'So, basically, why do we have comparable and comparator?', 'start': 29981.907, 'duration': 3.182}, {'end': 29992.451, 'text': "Just to reiterate but JVM or Java wouldn't know how to sort a user-defined class right?", 'start': 29985.389, 'duration': 7.062}], 'summary': 'Explaining the use of comparators for sorting user-defined classes in java.', 'duration': 28.087, 'max_score': 29964.364, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s29964364.jpg'}], 'start': 29254.981, 'title': 'Java comparable and comparator', 'summary': "Explains the use of comparable and comparator interfaces in java for sorting user-defined classes, with examples of sorting by roll number and salary, and the limitations of comparable for sorting based on only one data. it also discusses the differences between comparable and comparator interfaces, where comparable provides a single sorting sequence while comparator allows for multiple sorting logics, found in java's lang and util packages respectively, and demonstrates how to use them for sorting user-defined classes.", 'chapters': [{'end': 29527.079, 'start': 29254.981, 'title': 'Java comparable and comparator', 'summary': 'Explains the use of comparable and comparator interfaces in java for sorting user-defined classes, with examples of sorting by roll number and salary, and the limitations of comparable for sorting based on only one data.', 'duration': 272.098, 'highlights': ['The Comparable interface in Java is used to sort the objects of user-defined classes, providing a single sorting sequence based on one data only.', "The limitations of Comparable interface for sorting based on multiple data, as it can't sort based on multiple data, only one data.", 'Example of using Comparable interface in Java to sort an array list of student objects based on roll number using the Collections.sort method.']}, {'end': 29992.451, 'start': 29527.679, 'title': 'Comparable vs comparator in java', 'summary': "Discusses the differences between comparable and comparator interfaces in java, where comparable provides a single sorting sequence while comparator allows for multiple sorting logics, found in java's lang and util packages respectively, and demonstrates how to use them for sorting user-defined classes.", 'duration': 464.772, 'highlights': ['Comparable provides single sorting sequence, whereas Comparator allows for multiple logic', 'Comparable affects the original class, while Comparator does not affect the original class', 'Comparable is found in Java.lang package and Comparator is found in java.util package', 'Sorting user-defined classes using Comparable and Comparator', 'Usage of Comparable and Comparator for sorting user-defined classes']}], 'duration': 737.47, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s29254981.jpg', 'highlights': ['Comparator allows for multiple sorting logics', 'Comparable provides single sorting sequence', 'Limitations of Comparable for sorting based on only one data', 'Example of using Comparable interface to sort student objects by roll number', 'Differences between Comparable and Comparator interfaces', 'Usage of Comparable and Comparator for sorting user-defined classes']}, {'end': 31656.704, 'segs': [{'end': 30044.459, 'src': 'embed', 'start': 30018.02, 'weight': 0, 'content': [{'end': 30022.422, 'text': 'Now he is learning XML so that he can handle it easily.', 'start': 30018.02, 'duration': 4.402}, {'end': 30026.964, 'text': "So what is XML all about? It's an extensible markup language.", 'start': 30022.863, 'duration': 4.101}, {'end': 30030.866, 'text': 'It is designed to store and transport data.', 'start': 30027.565, 'duration': 3.301}, {'end': 30034.508, 'text': 'XML has hierarchical human readable formats.', 'start': 30031.547, 'duration': 2.961}, {'end': 30038.534, 'text': 'XML is platform independent and language independent.', 'start': 30035.111, 'duration': 3.423}, {'end': 30044.459, 'text': "Why did XML come into picture at the first place? So it's basically you have different systems.", 'start': 30038.914, 'duration': 5.545}], 'summary': 'Learning xml to handle data easily, a platform independent, language independent hierarchical format for storing and transporting data.', 'duration': 26.439, 'max_score': 30018.02, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s30018020.jpg'}, {'end': 30093.182, 'src': 'embed', 'start': 30066.383, 'weight': 1, 'content': [{'end': 30070.866, 'text': 'So, basically, when you want to send data from a client to the service,', 'start': 30066.383, 'duration': 4.483}, {'end': 30076.389, 'text': 'you would send it in a specific format that the client understands or the server understands.', 'start': 30070.866, 'duration': 5.523}, {'end': 30083.174, 'text': 'So the server exposes or the server expresses the input format in a XML form.', 'start': 30077.17, 'duration': 6.004}, {'end': 30085.395, 'text': 'And this is platform independent.', 'start': 30083.654, 'duration': 1.741}, {'end': 30089.379, 'text': 'This is like you might have a service tomorrow created in .', 'start': 30085.816, 'duration': 3.563}, {'end': 30093.182, 'text': 'NET which can use the same XML as used by Java program as well.', 'start': 30089.379, 'duration': 3.803}], 'summary': 'Data sent in xml format for platform-independent communication.', 'duration': 26.799, 'max_score': 30066.383, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s30066383.jpg'}, {'end': 30200.021, 'src': 'embed', 'start': 30171.43, 'weight': 2, 'content': [{'end': 30177.872, 'text': 'Why we need XML? XML is an industry standard for delivering content on the internet.', 'start': 30171.43, 'duration': 6.442}, {'end': 30179.552, 'text': "So it's a standard.", 'start': 30178.392, 'duration': 1.16}, {'end': 30187.474, 'text': "So most of the services, most of data intercommunication that's happening within internet is done in the form of XML.", 'start': 30180.072, 'duration': 7.402}, {'end': 30190.235, 'text': 'They communicate with each other in the form of XML.', 'start': 30187.874, 'duration': 2.361}, {'end': 30193.936, 'text': 'XML is designed to store and transport data.', 'start': 30190.775, 'duration': 3.161}, {'end': 30200.021, 'text': 'XML is extensible because it provides a facility to define new tags.', 'start': 30194.517, 'duration': 5.504}], 'summary': 'Xml is an industry standard for internet content delivery and data intercommunication, with most services using xml for communication and data storage.', 'duration': 28.591, 'max_score': 30171.43, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s30171430.jpg'}, {'end': 30353.782, 'src': 'embed', 'start': 30328.109, 'weight': 3, 'content': [{'end': 30336.274, 'text': "And there are different tools available in the market as well, which would give you kind of format your XMLs so that it's much more readable.", 'start': 30328.109, 'duration': 8.165}, {'end': 30338.856, 'text': 'So there are a lot of tools available already.', 'start': 30336.795, 'duration': 2.061}, {'end': 30342.676, 'text': 'XML separates data from HTML.', 'start': 30339.534, 'duration': 3.142}, {'end': 30345.877, 'text': 'It separates actual data from HTML code.', 'start': 30343.196, 'duration': 2.681}, {'end': 30348.379, 'text': 'XML simplifies data sharing.', 'start': 30346.338, 'duration': 2.041}, {'end': 30353.782, 'text': 'So basically as I said it pretty much intercommunication standard between systems.', 'start': 30349.019, 'duration': 4.763}], 'summary': 'Xml tools make data more readable, with many tools available. xml separates data from html, simplifying data sharing.', 'duration': 25.673, 'max_score': 30328.109, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s30328109.jpg'}, {'end': 30903.325, 'src': 'embed', 'start': 30855.042, 'weight': 4, 'content': [{'end': 30858.162, 'text': 'Like you could realize, XML in a form of free format,', 'start': 30855.042, 'duration': 3.12}, {'end': 30868.765, 'text': 'where in your root node is nothing but element of your XML and the leaf nodes or the leaves are nothing but the actual value stored in the XML.', 'start': 30858.162, 'duration': 10.603}, {'end': 30871.486, 'text': 'So let me talk about tree rules.', 'start': 30869.205, 'duration': 2.281}, {'end': 30880.693, 'text': 'In this given example, student is a root element, then first name, last name and email are descendants of student.', 'start': 30872.287, 'duration': 8.406}, {'end': 30883.735, 'text': 'This is pretty much straightforward when it comes to tree.', 'start': 30881.114, 'duration': 2.621}, {'end': 30889.159, 'text': 'So you have a root node and you have descendants and we can see from the structure.', 'start': 30884.216, 'duration': 4.943}, {'end': 30895.584, 'text': 'Ancestors, in this example, student is ancestor of all other elements.', 'start': 30889.82, 'duration': 5.764}, {'end': 30900.648, 'text': "It's a root node, so it's an ancestor of all other elements within this tree.", 'start': 30896.105, 'duration': 4.543}, {'end': 30903.325, 'text': 'order XML attributes.', 'start': 30901.204, 'duration': 2.121}], 'summary': 'Xml is a free format with a root node and descendants, as shown in the given example.', 'duration': 48.283, 'max_score': 30855.042, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s30855042.jpg'}, {'end': 30986.888, 'src': 'embed', 'start': 30954.714, 'weight': 5, 'content': [{'end': 30956.195, 'text': "It's a modifier, you can say.", 'start': 30954.714, 'duration': 1.481}, {'end': 30959.357, 'text': 'Some kind of a modifier to your element.', 'start': 30956.635, 'duration': 2.722}, {'end': 30963.194, 'text': 'So attributes add more information about the element.', 'start': 30959.952, 'duration': 3.242}, {'end': 30969.978, 'text': 'It is adding some more information to the element XML attributes must always be quoted either.', 'start': 30963.694, 'duration': 6.284}, {'end': 30975.001, 'text': 'It should be within single quote or you could have it within double quotes here.', 'start': 30970.058, 'duration': 4.943}, {'end': 30976.442, 'text': 'We have it within double quotes.', 'start': 30975.061, 'duration': 1.381}, {'end': 30978.323, 'text': 'What are XML comments??', 'start': 30977.022, 'duration': 1.301}, {'end': 30986.888, 'text': "So to make it more readable, or to increase the maintainability of an XML so that someone else can understand what you're trying to do?", 'start': 30978.923, 'duration': 7.965}], 'summary': 'Xml attributes provide additional information about elements for readability and maintainability.', 'duration': 32.174, 'max_score': 30954.714, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s30954714.jpg'}, {'end': 31455.828, 'src': 'embed', 'start': 31430.377, 'weight': 7, 'content': [{'end': 31436.182, 'text': 'A well-formed XML document can be validated against XSD.', 'start': 31430.377, 'duration': 5.805}, {'end': 31440.445, 'text': 'You have an XSD similar to DTD, which defines the structure.', 'start': 31436.222, 'duration': 4.223}, {'end': 31446.53, 'text': 'A well-formed XML should be validated or should be valid against a particular XSD.', 'start': 31440.865, 'duration': 5.665}, {'end': 31455.828, 'text': 'So here we see an XST, which is much more verbose or which is much more clearer to understand compared to DTD.', 'start': 31447.324, 'duration': 8.504}], 'summary': 'Xml can be validated against xsd, which is clearer than dtd.', 'duration': 25.451, 'max_score': 31430.377, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s31430377.jpg'}], 'start': 29993.071, 'title': 'Understanding xml and its applications', 'summary': 'Covers the introduction to xml and its role in data storage and transport, explaining its features, differences from html, and rules, including its structure, elements, comments, and validation rules with examples.', 'chapters': [{'end': 30146.376, 'start': 29993.071, 'title': 'Introduction to xml and its applications', 'summary': 'Introduces xml, its features, and its role in storing and transporting data, emphasizing its platform and language independence and human-readable format.', 'duration': 153.305, 'highlights': ['XML is designed to store and transport data, with hierarchical human-readable formats, and is platform and language independent.', 'XML is used for carrying data from clients to servers for communication, and it is human-readable, making it easy to understand the format for data exchange.', 'XML allows service providers to expose contracts in a specific format that both clients and servers understand, enabling platform-independent communication.', "XML's platform independence allows it to be used across different systems and services, facilitating data exchange between different technologies like .NET and Java."]}, {'end': 30692.433, 'start': 30146.376, 'title': 'Understanding xml basics', 'summary': 'Explains the importance of xml as an industry standard for data exchange, its extensibility, features, differences from html, and rules including white space preservation and proper nesting, highlighting its platform independence, ease of writing, extensibility, and dynamic nature.', 'duration': 546.057, 'highlights': ['XML is an industry standard for delivering content on the internet, used for data intercommunication and designed to store and transport data.', 'XML is extensible, allowing the addition of new tags and evolving structure, making it dynamic and adaptable to changing needs.', 'Writing XML is easy, with optimized parsers for performance, and it can work on any platform, making it platform agnostic.', 'XML separates data from HTML, simplifies data sharing and transport, and is used for storing and communicating data, while HTML is used for display and has predefined tags.', 'XML preserves white space as actual data, requires proper ordering and nesting of elements, and considers white space as valid data for communication between systems.']}, {'end': 31002.031, 'start': 30692.773, 'title': 'Understanding xml structure and elements', 'summary': 'Discusses the structure of xml, the nesting of elements, and the use of attributes and comments, with examples demonstrating the root, child, and leaf nodes, as well as the concept of ancestors and descendants within xml.', 'duration': 309.258, 'highlights': ['XML structure, root element, child elements, leaf nodes, and their values', 'Attributes in XML and their purpose', 'Nesting of elements and the concept of ancestors and descendants', 'XML comments for readability and maintainability']}, {'end': 31656.704, 'start': 31002.431, 'title': 'Xml comments and structure', 'summary': 'Discusses xml comments syntax, rules, and usage, as well as the structure and validation rules for well-formed xml, including dtd and xsd, with examples provided. it also explains the differences between dtd and xsd, and briefly mentions the usage of css for styling xml documents.', 'duration': 654.273, 'highlights': ['XML comments syntax', 'Rules for XML comments', 'Well-formed XML structure and rules', 'DTD and its usage', 'XSD and its usage', 'Differences between DTD and XSD', 'CSS for XML styling']}], 'duration': 1663.633, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s29993071.jpg', 'highlights': ['XML is designed for data storage and transport, platform and language independent.', 'XML allows service providers to expose contracts in a specific format for platform-independent communication.', 'XML is used for data intercommunication and is extensible for evolving structure.', 'XML separates data from HTML, simplifies data sharing and transport.', 'XML structure, root element, child elements, leaf nodes, and their values.', 'Attributes in XML and their purpose.', 'Nesting of elements and the concept of ancestors and descendants.', 'XML comments syntax and rules for well-formed XML structure.']}, {'end': 32870.595, 'segs': [{'end': 31713.6, 'src': 'embed', 'start': 31689.271, 'weight': 0, 'content': [{'end': 31695.132, 'text': 'Now, what is XSL? XSL stands for extensible style sheet language.', 'start': 31689.271, 'duration': 5.861}, {'end': 31702.434, 'text': 'XSL navigates all the nodes and elements and display XML data in a particular format.', 'start': 31695.853, 'duration': 6.581}, {'end': 31708.057, 'text': "All right, it's basically for parsing sort of It navigates through all the nodes and elements.", 'start': 31702.994, 'duration': 5.063}, {'end': 31710.959, 'text': 'Queries can be specified in XSL.', 'start': 31708.598, 'duration': 2.361}, {'end': 31713.6, 'text': 'If you want to query some particular data.', 'start': 31710.979, 'duration': 2.621}], 'summary': 'Xsl navigates xml nodes to display data in a specific format.', 'duration': 24.329, 'max_score': 31689.271, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s31689271.jpg'}, {'end': 31817.459, 'src': 'embed', 'start': 31793.947, 'weight': 2, 'content': [{'end': 31802.371, 'text': 'CSS is specifically for display, right? Changing the font size, changing the colors, background colors and foreground color and everything.', 'start': 31793.947, 'duration': 8.424}, {'end': 31808.434, 'text': 'XSL is more powerful than CSS since you can extract data or do something with it.', 'start': 31803.191, 'duration': 5.243}, {'end': 31810.395, 'text': "Basically, it's a processor.", 'start': 31809.055, 'duration': 1.34}, {'end': 31813.777, 'text': 'You actually can process the XML using XSL.', 'start': 31810.535, 'duration': 3.242}, {'end': 31817.459, 'text': 'CSS does not use XML notations.', 'start': 31814.437, 'duration': 3.022}], 'summary': 'Xsl is more powerful than css for processing xml data.', 'duration': 23.512, 'max_score': 31793.947, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s31793947.jpg'}, {'end': 31899.178, 'src': 'embed', 'start': 31875.706, 'weight': 1, 'content': [{'end': 31883.29, 'text': 'And parsing XML refers to going through XML document to access data or to modify data in one or the other way.', 'start': 31875.706, 'duration': 7.584}, {'end': 31884.25, 'text': 'All right.', 'start': 31883.93, 'duration': 0.32}, {'end': 31892.314, 'text': 'You could actually read through the XML or you could extract data or you could modify data using XML parsers.', 'start': 31884.771, 'duration': 7.543}, {'end': 31897.937, 'text': 'What are parsers here? You could see XML document right being sent to the parser.', 'start': 31893.235, 'duration': 4.702}, {'end': 31899.178, 'text': 'Parser is nothing but API.', 'start': 31898.037, 'duration': 1.141}], 'summary': 'Parsing xml involves accessing or modifying data using xml parsers.', 'duration': 23.472, 'max_score': 31875.706, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s31875706.jpg'}, {'end': 31952.201, 'src': 'embed', 'start': 31923.487, 'weight': 3, 'content': [{'end': 31928.29, 'text': 'Object based is nothing but document object model or it is also known as DOM.', 'start': 31923.487, 'duration': 4.803}, {'end': 31932.725, 'text': 'Event-based, we have two different parsers when it comes to event-based.', 'start': 31929.142, 'duration': 3.583}, {'end': 31934.967, 'text': 'One is SACS and the other one is TAX.', 'start': 31932.825, 'duration': 2.142}, {'end': 31940.071, 'text': "All right, so let's talk about object-based model.", 'start': 31935.908, 'duration': 4.163}, {'end': 31945.876, 'text': 'DOM parser, it stands for Document Object Model.', 'start': 31940.952, 'duration': 4.924}, {'end': 31952.201, 'text': 'It is an object-oriented representation of an XML parse tree.', 'start': 31946.696, 'duration': 5.505}], 'summary': 'Comparing object-based (dom) and event-based (sacs, tax) xml parsers.', 'duration': 28.714, 'max_score': 31923.487, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s31923487.jpg'}, {'end': 32103.786, 'src': 'embed', 'start': 32080.697, 'weight': 8, 'content': [{'end': 32089.06, 'text': "right, you don't have to think much about it, but basically what we are trying to do is, instead of creating the instance of something on our own,", 'start': 32080.697, 'duration': 8.363}, {'end': 32097.304, 'text': 'which is like we usually do with new and the class name right, instead of doing it on our own, factory design pattern is nothing,', 'start': 32089.06, 'duration': 8.244}, {'end': 32102.126, 'text': 'but the creation logic is written within a class which is not exposed to you.', 'start': 32097.304, 'duration': 4.822}, {'end': 32103.786, 'text': 'so you did not create it.', 'start': 32102.126, 'duration': 1.66}], 'summary': 'Factory design pattern encapsulates creation logic within a class, removing the need for manual instance creation.', 'duration': 23.089, 'max_score': 32080.697, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s32080697.jpg'}, {'end': 32405.962, 'src': 'embed', 'start': 32367.681, 'weight': 7, 'content': [{'end': 32375.545, 'text': 'through transformer, we are transforming your document, or the xml which is in the form of document, into a file.', 'start': 32367.681, 'duration': 7.864}, {'end': 32380.727, 'text': "so let's see this program.", 'start': 32375.545, 'duration': 5.182}, {'end': 32383.208, 'text': 'so in the meanwhile, we can do one thing.', 'start': 32380.727, 'duration': 2.481}, {'end': 32392.593, 'text': "i'll create one more directory here at eureka xml.", 'start': 32383.208, 'duration': 9.385}, {'end': 32396.014, 'text': "OK, and we don't have any files with them.", 'start': 32393.732, 'duration': 2.282}, {'end': 32401.258, 'text': "Let's hold on for a minute.", 'start': 32399.697, 'duration': 1.561}, {'end': 32402.539, 'text': 'Yeah, it does come up.', 'start': 32401.758, 'duration': 0.781}, {'end': 32403.42, 'text': 'All right.', 'start': 32403.1, 'duration': 0.32}, {'end': 32405.962, 'text': "So it's the same program that we spoke about.", 'start': 32403.72, 'duration': 2.242}], 'summary': 'Using transformer to convert xml document into a file.', 'duration': 38.281, 'max_score': 32367.681, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s32367681.jpg'}, {'end': 32775.461, 'src': 'embed', 'start': 32447.295, 'weight': 6, 'content': [{'end': 32448.075, 'text': "It's building it.", 'start': 32447.295, 'duration': 0.78}, {'end': 32452.958, 'text': "And if it's generated, you should get XML file generated at the end.", 'start': 32449.056, 'duration': 3.902}, {'end': 32458.965, 'text': 'So this is about using DOM.', 'start': 32456.963, 'duration': 2.002}, {'end': 32460.046, 'text': 'All right.', 'start': 32459.726, 'duration': 0.32}, {'end': 32464.051, 'text': "So when you say DOM, it's nothing but document object model.", 'start': 32460.407, 'duration': 3.644}, {'end': 32465.592, 'text': "It's building yet.", 'start': 32464.811, 'duration': 0.781}, {'end': 32467.514, 'text': 'So hold on for a minute.', 'start': 32466.333, 'duration': 1.181}, {'end': 32469.897, 'text': "Let's see.", 'start': 32469.136, 'duration': 0.761}, {'end': 32471.478, 'text': 'I think it should come up soon.', 'start': 32470.057, 'duration': 1.421}, {'end': 32477.665, 'text': "Right I think it's coming up.", 'start': 32476.424, 'duration': 1.241}, {'end': 32771.017, 'text': 'All right.', 'start': 32770.716, 'duration': 0.301}, {'end': 32775.461, 'text': 'So we have this program here, which is kind of creating XML document.', 'start': 32771.057, 'duration': 4.404}], 'summary': 'Using dom to build xml file.', 'duration': 328.166, 'max_score': 32447.295, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s32447295.jpg'}], 'start': 31657.205, 'title': 'Xml and dom', 'summary': 'Discusses linking css to xml, xsl for parsing and querying xml data, differences between css and xsl, and the usage and classification of xml parsers. it also covers using the document object model (dom) to create an xml document with elements such as students, first name, last name, email, and marks, and transforming it into a human-readable xml file, demonstrating the use of factory classes and transformers.', 'chapters': [{'end': 32103.786, 'start': 31657.205, 'title': 'Xml, xsl, css, and xml parsers', 'summary': 'Discusses linking css to xml, xsl for parsing and querying xml data, differences between css and xsl, and the usage and classification of xml parsers, including object-based and event-based models.', 'duration': 446.581, 'highlights': ['XSL navigates all the nodes and elements and display XML data in a particular format, allowing queries to be specified, and it displays data on the browser as per the format given in the XSL file.', 'XSL is more powerful than CSS, enabling data extraction and processing, unlike CSS that is mainly for display purposes.', 'XML parsers are software libraries used to work with XML documents, validate document format, and parse XML to access or modify data, with the classification into object-based (DOM) and event-based (SAX and StAX) models.', 'DOM parser is an object-oriented representation of an XML parse tree, defining a standard way to access and manipulate documents, with the usage and import of classes described.']}, {'end': 32870.595, 'start': 32103.786, 'title': 'Using dom to create and transform xml', 'summary': 'Covers using the document object model (dom) to create an xml document with elements such as students, first name, last name, email, and marks, and transforming it into a human-readable xml file, demonstrating the use of factory classes and transformers.', 'duration': 766.809, 'highlights': ['Creating XML document using DOM', 'Transforming XML document into a file', 'Utilizing factory classes']}], 'duration': 1213.39, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s31657205.jpg', 'highlights': ['XSL navigates all nodes and elements, displaying XML data in a specific format.', 'XML parsers validate document format and parse XML to access or modify data.', 'XSL is more powerful than CSS, enabling data extraction and processing.', 'DOM parser provides an object-oriented representation of an XML parse tree.', 'XML parsers are classified into object-based (DOM) and event-based (SAX and StAX) models.', 'CSS is mainly for display purposes, unlike XSL which allows queries to be specified.', 'Creating XML document using DOM.', 'Transforming XML document into a file.', 'Utilizing factory classes.']}, {'end': 34197.624, 'segs': [{'end': 32915.902, 'src': 'embed', 'start': 32870.595, 'weight': 0, 'content': [{'end': 32879.439, 'text': 'so I put this and I say I want like three spaces per indent level, which is good, and I format it okay.', 'start': 32870.595, 'duration': 8.844}, {'end': 32885.492, 'text': 'when I click the format, You can see that it formatted the entire XML for me.', 'start': 32879.439, 'duration': 6.053}, {'end': 32891.297, 'text': "So the basic thing that it's doing is just about formatting this XML all right.", 'start': 32886.593, 'duration': 4.704}, {'end': 32894.32, 'text': 'This is much more readable right after formatting.', 'start': 32892.178, 'duration': 2.142}, {'end': 32895.841, 'text': "You can see that it's readable.", 'start': 32894.36, 'duration': 1.481}, {'end': 32903.887, 'text': 'You can see first name as Henry Lee and Henry123 at gmail.com and you have 70 put in here which is what we expect out.', 'start': 32895.86, 'duration': 8.027}, {'end': 32907.57, 'text': 'Okay so we saw this output after running the program.', 'start': 32903.907, 'duration': 3.663}, {'end': 32911.714, 'text': 'Now quickly let me run through what storm parser.', 'start': 32908.131, 'duration': 3.583}, {'end': 32915.902, 'text': 'and how do we use DomParser for parsing an existing XML.', 'start': 32912.279, 'duration': 3.623}], 'summary': 'Demonstrating xml formatting and parsing using domparser.', 'duration': 45.307, 'max_score': 32870.595, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s32870595.jpg'}, {'end': 33310.385, 'src': 'embed', 'start': 33278.947, 'weight': 2, 'content': [{'end': 33282.648, 'text': 'Whatever is being displayed here are nothing but leaves of your tree.', 'start': 33278.947, 'duration': 3.701}, {'end': 33285.648, 'text': 'Advantages and disadvantages of using DOM.', 'start': 33283.348, 'duration': 2.3}, {'end': 33291.129, 'text': 'It is preferred when we have to randomly access separate parts of the document.', 'start': 33286.049, 'duration': 5.08}, {'end': 33296.731, 'text': "So if you don't want to do it sequentially, it's preferred that you use DOM.", 'start': 33291.69, 'duration': 5.041}, {'end': 33299.451, 'text': 'It supports both read and write operation.', 'start': 33297.371, 'duration': 2.08}, {'end': 33304.172, 'text': 'So we created XML using DOM and we read XML using DOM as well.', 'start': 33299.731, 'duration': 4.441}, {'end': 33310.385, 'text': 'So the first example that we took about creating a student.xml was using DOM as well.', 'start': 33304.701, 'duration': 5.684}], 'summary': 'Dom allows random access, read/write operations, and xml creation/reading.', 'duration': 31.438, 'max_score': 33278.947, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s33278947.jpg'}, {'end': 33923.051, 'src': 'embed', 'start': 33890.049, 'weight': 3, 'content': [{'end': 33892.731, 'text': 'SACS parser is faster than any other parser.', 'start': 33890.049, 'duration': 2.682}, {'end': 33895.232, 'text': 'It handles large document.', 'start': 33893.171, 'duration': 2.061}, {'end': 33897.414, 'text': 'We spoke about all this right here.', 'start': 33895.773, 'duration': 1.641}, {'end': 33906.34, 'text': 'Disadvantages of using is client will be unable to understand the whole information because data is broken into pieces.', 'start': 33897.994, 'duration': 8.346}, {'end': 33909.683, 'text': "So it's not storing it in one place.", 'start': 33907.221, 'duration': 2.462}, {'end': 33910.924, 'text': "It's broken into pieces.", 'start': 33909.803, 'duration': 1.121}, {'end': 33913.786, 'text': "It's not even storing it into memory.", 'start': 33911.624, 'duration': 2.162}, {'end': 33915.327, 'text': "It's just flushing it off.", 'start': 33914.146, 'duration': 1.181}, {'end': 33916.968, 'text': "It's just writing it and leaving it.", 'start': 33915.507, 'duration': 1.461}, {'end': 33923.051, 'text': "So what's the difference between DOM and SACS parser? DOM stands for Document Object Models.", 'start': 33917.489, 'duration': 5.562}], 'summary': 'Sacs parser is faster, handles large documents, but data is broken into pieces, not stored in memory.', 'duration': 33.002, 'max_score': 33890.049, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s33890049.jpg'}], 'start': 32870.595, 'title': 'Xml parsing and formatting', 'summary': 'Covers xml formatting and parsing using domparser and dom, demonstrating xml formatting for readability, parsing data like first name, email, and numerical values, and comparing advantages and disadvantages of dom and sax parsers.', 'chapters': [{'end': 32915.902, 'start': 32870.595, 'title': 'Xml formatting and parsing with domparser', 'summary': 'Covers xml formatting, demonstrating how to format xml for readability and discusses parsing an existing xml using domparser, with an example output of parsing data like first name, email, and a numerical value of 70.', 'duration': 45.307, 'highlights': ['The chapter covers XML formatting and demonstrates how to format XML for readability, which is done by applying three spaces per indent level, resulting in a more readable format.', 'It discusses parsing an existing XML using DomParser, providing an example output of parsed data, including first name (Henry Lee), email (Henry123@gmail.com), and a numerical value of 70.']}, {'end': 33256.601, 'start': 32916.502, 'title': 'Xml parsing using dom', 'summary': 'Explains how to parse an xml using dom, iterating through nodes and displaying the content, with an example of reading an xml file with two students and displaying their details.', 'duration': 340.099, 'highlights': ['The chapter explains how to parse an XML using DOM, iterating through nodes and displaying the content.', 'Example of reading an XML file with two students and displaying their details.', 'Importing necessary classes and creating DocumentBuilderFactory.']}, {'end': 33864.57, 'start': 33256.601, 'title': 'Dom vs sax parser', 'summary': 'Explains the advantages and disadvantages of using dom and sax parsers, highlighting that dom is preferred for random access and supports read and write operations, while sax is more suitable for large xml documents due to its event-based and memory efficient approach, but not ideal for random parsing.', 'duration': 607.969, 'highlights': ['DOM parser creates a tree-like structure with a root element and is preferred for random access, supporting both read and write operations.', 'DOM parser is slower than other parsers as it has to create a tree, which can take a long time, especially for large XML files.', 'DOM parser is not memory efficient and may consume a lot of memory, making it less suitable for parsing large XMLs.', 'SAX parser is event-based and sequentially processes XML, making it suitable for large XML documents and not memory-intensive, but not ideal for random parsing.']}, {'end': 34197.624, 'start': 33865.15, 'title': 'Comparison of dom and sacs xml parsers', 'summary': 'Compares the advantages and disadvantages of dom and sacs xml parsers, highlighting the memory efficiency and speed of sacs, as well as the ability of dom to manipulate the source xml and handle small to medium sized xmls.', 'duration': 332.474, 'highlights': ['SACS parser is faster than any other parser.', 'DOM is useful when reading small to medium sized XMLs.', 'SACS is used when big XML files need to be parsed.', 'DOM can insert and delete nodes.', 'SACS parsers cannot manipulate the source XML.']}], 'duration': 1327.029, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s32870595.jpg', 'highlights': ['The chapter covers XML formatting and demonstrates how to format XML for readability, which is done by applying three spaces per indent level, resulting in a more readable format.', 'It discusses parsing an existing XML using DomParser, providing an example output of parsed data, including first name (Henry Lee), email (Henry123@gmail.com), and a numerical value of 70.', 'DOM parser creates a tree-like structure with a root element and is preferred for random access, supporting both read and write operations.', 'SACS parser is faster than any other parser.', 'DOM is useful when reading small to medium sized XMLs.']}, {'end': 36646.029, 'segs': [{'end': 34333.525, 'src': 'embed', 'start': 34287.857, 'weight': 0, 'content': [{'end': 34294.679, 'text': 'and we saw about advantages and disadvantages, and which one would be apt one for your use.', 'start': 34287.857, 'duration': 6.822}, {'end': 34294.959, 'text': 'all right.', 'start': 34294.679, 'duration': 0.28}, {'end': 34300.26, 'text': 'so you have to understand the nature of the application or nature of the xmls that you are dealing with,', 'start': 34294.959, 'duration': 5.301}, {'end': 34304.061, 'text': 'and based on that you could decide which parser to go for.', 'start': 34300.26, 'duration': 3.801}, {'end': 34305.821, 'text': "so that's about the parsers.", 'start': 34304.061, 'duration': 1.76}, {'end': 34308.242, 'text': "now let's talk about xpath.", 'start': 34305.821, 'duration': 2.421}, {'end': 34313.283, 'text': 'xpath expression is a query language used to select path of xml document.', 'start': 34308.242, 'duration': 5.041}, {'end': 34320.235, 'text': 'based on the query string, You can create a query string and you can retrieve it using XPath.', 'start': 34313.283, 'duration': 6.952}, {'end': 34326.12, 'text': 'XPath returns a node set representing XML nodes at the end of the path.', 'start': 34320.896, 'duration': 5.224}, {'end': 34333.525, 'text': 'All right, so this is basically like querying language or you have XPath expression which you could write query.', 'start': 34326.72, 'duration': 6.805}], 'summary': 'Comparing parsers and discussing xpath for xml querying.', 'duration': 45.668, 'max_score': 34287.857, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s34287857.jpg'}, {'end': 34758.475, 'src': 'embed', 'start': 34731.311, 'weight': 4, 'content': [{'end': 34735.472, 'text': 'DOM4j is an open source Java-based library to parse XML document.', 'start': 34731.311, 'duration': 4.161}, {'end': 34737.893, 'text': 'DOM4j is flexible and memory efficient.', 'start': 34735.532, 'duration': 2.361}, {'end': 34741.554, 'text': 'It integrates well with DOM SAX APIs.', 'start': 34738.333, 'duration': 3.221}, {'end': 34747.096, 'text': 'It should be used when you need the information in an XML document more than once.', 'start': 34742.175, 'duration': 4.921}, {'end': 34755.513, 'text': 'So, basically, with SAX, if you want to parse through more than once, If you want the information from the same XML more than once,', 'start': 34747.816, 'duration': 7.697}, {'end': 34758.475, 'text': "it's not that efficient, because it will have to parse it again.", 'start': 34755.513, 'duration': 2.962}], 'summary': 'Dom4j is a memory-efficient java library for parsing xml documents, recommended for multiple retrievals.', 'duration': 27.164, 'max_score': 34731.311, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s34731311.jpg'}, {'end': 34947.318, 'src': 'embed', 'start': 34922.022, 'weight': 5, 'content': [{'end': 34926.945, 'text': 'Jaxby is used to write Java objects into XML and vice versa.', 'start': 34922.022, 'duration': 4.923}, {'end': 34929.447, 'text': 'All right, so you could write it or read it.', 'start': 34927.506, 'duration': 1.941}, {'end': 34931.568, 'text': 'What are the features of Jaxby??', 'start': 34930.107, 'duration': 1.461}, {'end': 34935.911, 'text': 'It supports for all W3C schema features right?', 'start': 34931.588, 'duration': 4.323}, {'end': 34942.395, 'text': 'All the standard W3Cs are standard and all the features that you have in W3C it has a support for it.', 'start': 34935.951, 'duration': 6.444}, {'end': 34947.318, 'text': 'It reduces a lot of generated schema derived classes.', 'start': 34942.975, 'duration': 4.343}], 'summary': 'Jaxby converts java objects to xml and supports all w3c schema features.', 'duration': 25.296, 'max_score': 34922.022, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s34922022.jpg'}, {'end': 35311.254, 'src': 'embed', 'start': 35280.052, 'weight': 6, 'content': [{'end': 35281.792, 'text': 'Jason is data-oriented.', 'start': 35280.052, 'duration': 1.74}, {'end': 35285.641, 'text': 'xml is document oriented.', 'start': 35282.299, 'duration': 3.342}, {'end': 35288.622, 'text': 'json is less secured than xml.', 'start': 35285.641, 'duration': 2.981}, {'end': 35291.804, 'text': 'xml is more secured than json.', 'start': 35288.622, 'duration': 3.182}, {'end': 35296.126, 'text': 'json supports only text and number data type.', 'start': 35291.804, 'duration': 4.322}, {'end': 35303.61, 'text': 'xml supports many data type as text, number, images, charts, graphs, etc.', 'start': 35296.126, 'duration': 7.484}, {'end': 35304.611, 'text': 'all right.', 'start': 35303.61, 'duration': 1.001}, {'end': 35308.993, 'text': 'so it has restriction with the number of data types that it can hold.', 'start': 35304.611, 'duration': 4.382}, {'end': 35311.254, 'text': 'json object holds key value pair.', 'start': 35308.993, 'duration': 2.261}], 'summary': 'Json supports limited data types, while xml supports a wide range and offers more security.', 'duration': 31.202, 'max_score': 35280.052, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s35280052.jpg'}, {'end': 36503.809, 'src': 'embed', 'start': 36474.591, 'weight': 7, 'content': [{'end': 36479.973, 'text': 'So we have a read JSON method, which is taking absolute file name as its parameter.', 'start': 36474.591, 'duration': 5.382}, {'end': 36486.416, 'text': 'We have a JSON parser class, which is one of the classes from the jar that we downloaded.', 'start': 36480.733, 'duration': 5.683}, {'end': 36488.697, 'text': 'JSON simple jar that we downloaded.', 'start': 36486.896, 'duration': 1.801}, {'end': 36497.046, 'text': "and since it's put into your application, since we have attached it with our application, we are able to use those classes.", 'start': 36489.182, 'duration': 7.864}, {'end': 36503.809, 'text': "right, if you wouldn't have done that step of linking the library with the application, you won't be able to use these classes.", 'start': 36497.046, 'duration': 6.763}], 'summary': 'Using json parser class from the downloaded json simple jar to read json files in the application.', 'duration': 29.218, 'max_score': 36474.591, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s36474591.jpg'}, {'end': 36594.815, 'src': 'embed', 'start': 36570.854, 'weight': 2, 'content': [{'end': 36578.597, 'text': "All right, so that's about XML and JSON, which is nothing but it's a standard set across industry for data exchange.", 'start': 36570.854, 'duration': 7.743}, {'end': 36579.903, 'text': 'so yeah.', 'start': 36579.463, 'duration': 0.44}, {'end': 36585.067, 'text': "having said that, one of the main differences between xml and json is it's lightweight,", 'start': 36579.903, 'duration': 5.164}, {'end': 36591.052, 'text': "and most of the companies or the industry is moving towards using json's rather than xml's.", 'start': 36585.067, 'duration': 5.985}, {'end': 36594.815, 'text': "but xml's are legacy and they have a lot of weight.", 'start': 36591.052, 'duration': 3.763}], 'summary': 'Xml and json are industry standards for data exchange. json is lightweight and preferred by most companies over xml, which is considered legacy and heavy.', 'duration': 23.961, 'max_score': 36570.854, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s36570854.jpg'}], 'start': 34197.624, 'title': 'Xml, xpath, and json in java', 'summary': 'Covers xml parsing using different parsers, advantages and disadvantages, xpath querying, using xpath in java for parsing xml files, introducing dom4j, jax-b, comparing json and xml in data exchange, and working with json data, emphasizing advantages and practical implementation in java.', 'chapters': [{'end': 34458.76, 'start': 34197.624, 'title': 'Xml parsing and xpath querying', 'summary': 'Covers xml parsing using different parsers, discussing advantages and disadvantages, and the usage of xpath for querying xml documents, emphasizing the different types of nodes and expressions.', 'duration': 261.136, 'highlights': ['XML parsing using different parsers', 'Usage of XPath for querying XML documents', 'Different types of nodes and expressions in XPath']}, {'end': 35157.703, 'start': 34458.76, 'title': 'Using xpath and dom4j in java', 'summary': 'Discusses using xpath in java for parsing small or medium sized xml files, and also explains the steps for using dom4j, an open source java-based library to parse xml documents, and introduces jax-b, a java architecture for xml binding, including its features and steps for converting java objects into xml.', 'duration': 698.943, 'highlights': ['XPath is used in Java for parsing small or medium sized XML files, and the steps for using it include importing related packages, creating a document builder, creating an XPath object and path expression, and compiling the XPath expression.', 'DOM4j is an open source Java-based library to parse XML documents, which is flexible, memory efficient, and integrates well with DOM and SAX APIs. It should be used when information in an XML document is needed more than once.', 'JAX-B is a Java architecture for XML binding used to write Java objects into XML and vice versa, and it supports all W3C schema features, reduces the number of generated schema derived classes, has a small runtime library, and provides additional validation support by JAXP 1.3 validation API.']}, {'end': 35952.751, 'start': 35158.504, 'title': 'Json vs xml in data exchange', 'summary': 'Explains the difference between json and xml, highlighting that json is lightweight, easy to read and write, supports arrays, objects, strings, numbers, and values, while xml is more cumbersome, occupies more memory, and supports a wider range of data types. it also provides insights into encoding json in java and linking it with the application.', 'duration': 794.247, 'highlights': ['JSON is lightweight compared to XML, making it preferable for data interchange, as it occupies less memory and bandwidth, and is used in RESTful APIs for communication between client and server systems.', 'JSON supports arrays, objects, strings, numbers, and values, while XML supports a wider range of data types, including text, number, images, charts, and graphs.', 'The process of encoding JSON in Java involves creating a JSON object, printing the JSON, and ensuring best practices for readability and maintainability, such as using meaningful method names and comments.', "Linking the application with a JSON library involves downloading the JSON jar file, adding it to the application's libraries, and linking it to the application to leverage its functionality."]}, {'end': 36646.029, 'start': 35953.331, 'title': 'Working with json data', 'summary': 'Explains the process of formatting, writing, and reading json data, emphasizing the importance of json in data exchange, its lightweight nature, and the shift towards its usage over xml in the industry, with a focus on practical implementation and coding best practices.', 'duration': 692.698, 'highlights': ['JSON is becoming a standard for data exchange, with many tools available for formatting and validation.', 'The importance of validating JSON data to avoid errors in formatting.', 'The process of writing JSON data into a file involves converting it into a string and using a file writer to write it, emphasizing the importance of closing the file to prevent memory consumption.', 'The process of reading JSON data involves parsing it into a JSON object and accessing specific attributes, highlighting the practical implementation of reading and parsing JSON data.', 'The shift towards using JSON over XML in the industry due to its lightweight nature, with a focus on practical implementation and coding best practices.']}], 'duration': 2448.405, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/hBh_CC5y8-s/pics/hBh_CC5y8-s34197624.jpg', 'highlights': ['Usage of XPath for querying XML documents', 'XML parsing using different parsers', 'JSON is lightweight compared to XML, making it preferable for data interchange', 'The shift towards using JSON over XML in the industry due to its lightweight nature', 'DOM4j is an open source Java-based library to parse XML documents, which is flexible, memory efficient, and integrates well with DOM and SAX APIs', 'JAX-B is a Java architecture for XML binding used to write Java objects into XML and vice versa, and it supports all W3C schema features, reduces the number of generated schema derived classes, has a small runtime library, and provides additional validation support by JAXP 1.3 validation API', 'JSON supports arrays, objects, strings, numbers, and values, while XML supports a wider range of data types, including text, number, images, charts, and graphs', 'The process of reading JSON data involves parsing it into a JSON object and accessing specific attributes, highlighting the practical implementation of reading and parsing JSON data']}], 'highlights': ["Java's platform independence enables programs to run on any platform, widely used in distributed computing.", "Java's security features prevent unauthorized access, virus intrusion, and untrusted processes.", "Java's dynamic runtime polymorphism and distributed computing support enable efficient processing of big data.", 'Java is widely used in financial services industry, with global investment banks using it for electronic trading systems.', "Java's lightweight nature in embedded systems is achieved through features introduced in Java 8.", "Java's support for distributed architecture benefits big data technologies and enables cost-effective solutions.", 'Java is favored for web applications due to its security features and support of numerous web servers.', 'Java is well-suited for scientific applications due to its ability to handle CPU-intensive tasks and multi-threading.', 'Method overloading in Java allows the existence of multiple methods with the same name but different parameters.', 'Java strings are used to handle large amounts of data and provide a more efficient alternative to character arrays.', 'The static keyword in Java is used for memory management and refers to the common properties of an object.', 'Inheritance in Java achieves code reusability and method overriding, with practical examples of single, hierarchical, and multi-level inheritance.', 'Method overriding and method overloading are essential for runtime polymorphism in Java.', 'Interfaces promote loose coupling and specify class contracts, while encapsulation is promoted through access modifiers.', 'Regular expressions in Java are used for pattern checking, searching, and manipulation of strings.', 'Exception handling in Java ensures program execution without stopping at the point of exception occurrence.', 'Serialization and deserialization are essential in distributed computing and big data frameworks like Hadoop and Apache Spark.', 'Generics in Java provide compile-time type safety, and ArrayList is a dynamic, self-growing array.', 'ArrayList enables faster index-based retrieval, suitable for big data applications.', 'HashSet, LinkedHashSet, and TreeSet are variants of Set in Java, each with specific characteristics.', 'XML is designed for data storage and transport, platform and language independent, and separates data from HTML.', 'XSL is more powerful than CSS, enabling data extraction and processing, and DOM parser provides an object-oriented representation of an XML parse tree.', 'Usage of XPath for querying XML documents and the shift towards using JSON over XML in the industry.']}