 So today in this video we will be talking about analytics, Fox, softwares, interview questions and the interview process and this video was shared by one of our subscriber friend. So this video was sent us back in August 10th, 2021 and this was for a Java back-end developer role. So this is the mail that we have received. So this was for three-plus years experience of candidate and there were three rounds like the first round was a telephonic round which was a technical round, second round was a manager, manager round which was a virtual round and third was an HR discussion which was again a telephonic round. So this is the mail that we have got interview experience at Analytics Fox software, Java back-end role. Hi, I am sharing my interview experience with you which was conducted at Analytics Fox software and thanks for you and your team for the guidance on the interview questions. Details about the rounds and questions are below 95% of the questions from your interview series only. This interview was conducted based on three-plus years of experience. Once again, thank you so much and keep doing this type of great work to help other salary offered was 7 lakhs per annum. Please hide my details. So basically this was for three years of experience guy and 7 lakhs is a decent package I would say. So let us see the questions and before getting into the questions there is one important thing that I would like to discuss about. Do you know that lot of companies now offer jobs only based on your skills? So you don't need to worry if you don't have a degree from a good college or if you lack experience. Talent and skills is all that matters. If you think you have got all the relevant skills for a job in back-end development the guaranteed salary of a minimum 4 lakhs per annum for non-technical roads and 6 lakhs per annum for a tech trolls and this can go up to 15 lakhs or more than that. There is no age restriction to apply. Experience candidate can get up to 50% hike in salary by applying to their next job through re-level. I am going to share you with you two amazing companies that will hire you in just 15 days. The first company is Moengage. So this is a B2B SaaS based customer engaged platform and you can see the team size is 200 to 500 and CTC is up to 25 lakhs per annum and the headquarters is San Francisco. The other company that I would like to share is Dukan. You might have definitely heard about this app Dukan which this is an Indian based app. So the team size is 50 employees. CTC that can go up is like 9 lakhs per annum and the headquarters is in Bangalore and you can go through this site. You can get to know more about this and who hasn't heard about these two companies. These companies are now hiring freshers and people with no experience through re-level by an academy. All you have to do is register for the re-level test which is totally free of course. There is a simple way to register. This was shared in the previous video as well how to register. The registration process video will be attached in the description as well and you don't need to have a video resume required anymore. You can have a look at re-level achievers twitter page as well where you can see people who have achieved a good score in re-level test and have got their dream jobs. The best part about re-level by an academy is you don't need any specific qualification. Just the re-level test which is free of course and it is open for all age groups. Re-level achievers who have switched jobs have really got more than 50% of salary hikes and video resume is also not required. So what are you waiting for? You can register through the test and take the test of your convenient time. The description to the re-level site is there in the description. So don't miss this golden opportunity. So guys coming to the first question it was related to immutability concept. So questions were like what is immutable in Java and conditions of immutable. Specifically she wants to know about Gator and Setter methods and immutable. So for this question you can answer this in this way. So immutable class in Java means that once the object is created we cannot change its content. In Java all the wrapper classes like integer, Boolean by short and string are immutable. So how to create immutable class in Java? We can declare create our own immutable class as well prior to going ahead go through the characteristics of immutability in order to have a good understanding while implementing the same following a few requirements. The class must be declared as a financial so that the child classes can't be created. Data members in the class must be declared as private so that the direct access is not allowed. Data members in the class must be declared as final so that we cannot change the value once it has been assigned. The parameterized construction should initialize all the fields performing a deep copy so that the data member that can't be modified with the object reference. Deep copy of object should be performed in the Gator method to return a copy rather than returning the actual objects. And if you want you can answer this as well. What are the advantages of immutability? So immutable objects are thread safe. You will not have any synchronization issues. Immutable objects are good map keys and set elements. Since this typically do not change once created immutability makes it easier to write use and reason about the code like class invariant is established once and then unchanged. Immutability makes it easier to paralyze your program as there are no conflicts among the objects. The internal state of the program will be consistent even if you have exceptions. Reference to immutable objects can be cashed as they are not going to change. So this is the answer that you can give for like on the immutability concept in Java. Coming to the next question. So what is multithreading and synchronized keyword? For that we can answer it in this way. So multithreading in Java. So multithreading in Java is a feature that allows concurrent execution of two or more parts of a program for maximum utilization of CPU. Each part of such program is called a thread. So threads are lightweight processes within the process. And coming to the synchronized keyword in multithreaded programs may often to come into a situation where multiple threads try to access the same resource and finally produce errors and unforeseen results. So it needs to be made sure by some synchronization method that only one thread can access the resource at a given point of time. Java provides a way of creating threads and synchronizing their tasks by using synchronized blocks synchronized. So synchronized blocks in Java are marked with synchronized keyword. A synchronized block in Java is synchronized on some object. All synchronized blocks synchronized on the same object can only have one thread execution inside them at a time. All other threads attempting to enter the synchronized block are blocked until the thread inside the synchronized block exists the block. So this was about the synchronized keyword and multithreading in Java. So coming to the next section of fashions, exception handling, how can we handle exceptions in Java? Can we have try block without a cache block and try with the resource? For these things we can answer this in this way. So what is exception handling? An exception is an unwanted event that interrupts the normal flow of the program. When an exception occurs, program execution gets terminated. In such cases we get a system-generated error message. The good thing about the exception is that we can handle it in Java. By handling the exceptions we can provide a meaningful message to the user about the issue rather than a system-generated message which may not be understandable to a user. So how can we create, how can we handle exceptions in Java using try cache and custom exceptions? And can we have try block without cache? Yes we can have. It is possible to have a try block without a cache block by using a finally block. As we know, finally block will execute, always execute even if there is an exception occurred in try block except system.exit. Try with resources. In Java try with resources statement is a try statement that declares one or more resources. The resources is an object that must be closed after finishing the program. The try with resources statement ensures that each resources is closed at the end of the statement execution. So this was about the try-cladge and exception handling. The next section of questions are from collection. What is collection framework? Difference between hash map and hash table, what is the best collection? So collection framework you have to explain the entire hierarchy of the collection like which interface is what is extent, what is implementing which interface, which class is extending, which class, what all comes under list, what all comes under set and why map is not under the collection framework and all those things and coming to the hash map and hash table differences. So we can state it in this way. So hash map is not synchronized, it is not thread safe and cannot be shared between many threads without proper synchronization code whereas hash table is synchronized, it is thread safe and can be shared with many threads. Hash map allows one null key and multiple null values whereas hash table does not allow any null key or value. Hash map is generally preferred over hash table if thread synchronization is not needed. So this was the difference between hash map and hash table and coming to the next section of questions. Difference between a thread controller and rest controller and what is component, a thread component annotation. So basically the difference between the thread rest controller and controller is one is from spring and one is from rest and if we told we are using a thread controller then we need to specify a thread response body but whereas if we are using a thread rest controller we do need to specify the thread response body and if thread components can you need to explain about that thing and coming to the next section of question. Difference between hibernate and jpa difference between primary key and unique key basically the difference between hibernate and jpa is nothing but jpa is the specification and hibernate is the implementation and coming to the difference between primary key and unique key we have the answer primary key is a column that is used to uniquely identify each table of table it is used to add integrity constant to the table only one primary key is allowed to to be used in a table duplicate and null like empty values are not allowed not valid in the case of primary key. Primary keys can be used as foreign keys to others tables to whereas coming to unique key is a constraint that is used to uniquely identify table in a table or in a row in a table multiple unique keys can be present in a table null values are allowed in case of unique key this can also be used as foreign keys to another table. So these were the questions this was related to hibernate or like db related things we can say is the next question is really was on query I believe yeah my sql query to get second highest salary so our friend has already shared the query as well so select star select employee dot salary from employee order by employee salary dsc limit 1 comma 1 and this actually doesn't work in all the situations so we have to use other way as our friend shared we are sharing this or this is not the perfect solution for that and coming to the next question so these were the managerial round interview questions so these were the questions like three questions like some scenario based questions were asked give the situation and given the situation and ask what should be the workflow explain in detail every step I have extreme to him write a program to get the frequency of numbers inside an array so this is a program also that he has been given the program is having array of integers so we have a friend has used java 8 streams java 8 concept like group by and identity and counting so this was already shared on our channel as well so you can go through that video as well so these were the questions guys that were shared by our subscriber friend I hope you have liked it and it might help someone at least please do like the video if it is an helpful video for you and here is the complete mail that our friend has sent to us you can go through it hard for a minute and you can go through it like we have already shared all the interview questions you can go through that as well so this is it so these were the questions that were asked at analytics fox and if you are on a channel for the first time and if you wonder what we are and what we do so we are basically a base bunch of software engineers what an interview is a different companies and share our real-time interview experiences through these videos you can visit our channel and you can get benefited of the videos that has already shared and because a lot of people do comment on like a lot of people do mailers like thanking for sharing the interview questions that are helping out and if you want to share your interview experience you can share it you can mail us your interview experience at the email edit that is there in the descriptions so if you haven't subscribed please do subscribe like share provide the feedback in the comment section and thank you for watching