---
# System prepended metadata

title: Important notes

---

# Important notes
## java knowledge
### oop and poc
* less efficiency
* easy maintenance and modification
* Reusability of code.
* Improved reliability and flexibility of code.
* Increased understanding of code.
### What are the concepts of OOP?
* **Abstraction**: The abstraction technique aims to separate the implementation details of a class from its behavior.
* **Encapsulation**: The internal state of every object is protected by hiding its attributes.the hidding stage can be access by their method（It increases usability and maintenance of code, because the behavior of an object can be independently changed or extended.It improves modularity by preventing objects to interact with each other, in an undesired way.）
* **Polymorphism** : Polymorphism is the ability of programming languages to present the same interface for differing underlying data types.  the same obeject when calls the same method with same parameters but they can behalf differently.
* **Inheritance** the children can entends their parents
* Predefined types must be objects 
* User defined types must be objects 
* Operations must be performed by sending messages to objects
### Is Java 100% Object-oriented?
Not 100%. Java does not satisfy all the OOP conditions (predefined types must be objects) because it uses eight primitive data types(Boolean, byte, char, int, float, double, long, short) which are not objects.
### features of Java
* Object-Oriented 
* Platform independent 
* High Performance 
* Multithreaded 
* Portable 
* Secure
### What is JVM?
A Java virtual machine (JVM) is a process virtual machine that can execute Java bytecode. Each Java source file is compiled into a bytecode file, which is executed by the JVM.
### Why is Java called the Platform Independent Programming Language?
Java was designed to allow application programs to be built that could be run on any platform, without having to be rewritten or recompiled by the programmer for each separate platform. A Java virtual machine makes this possible because it is aware of the specific instruction lengths and other particularities of the underlying hardware platform.
### What is the Difference between JDK and JRE?
The Java Runtime Environment (JRE) is basically the Java Virtual Machine (JVM) where your Java programs are being executed. It also includes browser plugins for applet execution. The Java Development Kit (JDK) is the full-featured Software Development Kit for Java, including the JRE, the compilers and tools (like JavaDoc, and Java Debugger), in order for a user to develop, compile and execute Java applications.
### overload override
**Overloading** occurs when two or more methods in one class have the same method name but different parameters.
**Overriding** occurs when two methods have the same method name and parameters. One of the methods is in the parent class, and the other is in the child class. Overriding allows a child class to provide the specific implementation of a method that is already present in its parent class.​
### static
* The static keyword denotes that a member variable or method can be accessed, without requiring an instantiation of the class to which it belongs.
* can not be overrided
### Can you access the non-static variable in static context?
your code tried to access the non-static varible without any instantitation of the class,it is illegal.
### What is Autoboxing and Unboxing?
Autoboxing is the automatic process done by the java complier. it automatic transfers the primitive type to the correspoding object wrapper class.
Int->Integer
when the conversion goes the other way, it calls unboxing
### Constructor
* A counstuctor got called when a new object is created
* same as the method overloading
### Does Java support multiple inheritance?
No, Java does not support multiple inheritance. Each class is able to extend only on one class but is able to implement more than one interfaces.
### abstraction and interface
![](https://i.imgur.com/gpKydAy.png)
###  What is the purpose of a Transient variable?
A transient variable would not be serialized even if the class to which it belongs is serialized.
###  What are the different access modifiers available in Java?
* public: everywhere the appliction
* protected: inside the pacage and its chirdren can access
* default: inside the package
* private: only access in the class
### Singleton
* In a singleton class we:
* ensure that only one instance of the singleton class ever exists
* provide global access to that instance
## Java Threads/java 多线程问题
### difference between stack and heap:
they both are memory spaces in java applications. each thread has its own stack which is used to store local variables, method parameters and call stack. variable store in stack is not visible to other while heap is common are spance.
### difference between processs and threads
* one process consists of multiple threads
* threads share the same memory and system resources while process runs complete independent
* threads are more effciency because it needs less time when create,delete or switching host.
### different ways of creating a thread
* A class may extend the thread class
* A class may implement the runnable interface
* An application can use the excutor framework, inorder to create a thread pool.
###  Explain the available thread states in a high-level
* **new**: ready to run
* **Runnable**: actually to run
* **BLOCKED**: The thread is in a blocked state while waiting for a monitor lock 
* **WAITING**: The thread waits for another thread to perform a particular action waiting state can transfer to blocked by notify or notifyAll. 
* **time_waited**: waited access all time
* **terminated**:The thread has finished its execution.
### race condition:
race condition occurs due to race beween two threads.if the thread is excuted first lost the race, excuted the second, the behhaviour of code changes
### What is a deadlock?
* A condition that occurs when two processes are waiting for each other to complete, before proceeding. The result is that both processes wait endlessly.
four reasons cause deadlock:
* **Mutual exclusion**: only one process can use the resource at any instant of time.
* **Hold and wait**: A process is holding resource while applyng for the additional resourch which are held by other threads.
* **No Pre-emption**:The operating system must not de-allocate resources once they have been allocated; they must be released by the holding process voluntarily.
* **circular wait** one thread waiting for the resource which are held by the other thread. and the other thread is waiting for the process held by the first thread.
solved methd:
* apply all the resource first
* apply resource in order, and release in reverse order
* when one process can not get the resource , it can release all the resource they have.
Read more: https://javarevisited.blogspot.com/2014/07/top-50-java-multithreading-interview-questions-answers.html#ixzz7OvDha95f
* **Circular wait**: 
### Volatile
* Mutual Exclusion – only one thread executes a critical section at a time 
* Visibility – changes made by one thread to the shared data are visible to other threads to maintain data consistency
* all the threads read it’s value directly from the memory and don’t cache it. This makes sure that the value read is the same as in the memory.
### difference between run() and start():
**run**: if you call run inside a thread class, only a normal method can be invoked
**start(): but if you want to acutally excute in a thread, use start.
### difference between notify and notifyall:
notify only awoke one thread and notifyalll awokes all thread to race the monitor lock

### What is context-switching in multi-threading?
Context Switching is the process of storing and restoring of CPU state so that Thread execution can be resumed from the same point at a later point of time. Context Switching is the essential feature for multitasking operating system and support for multi-threaded environment.
### thread.join()/How can we make sure main() is the last thread to finish in Java Program?
if we call thread1.join() that means this thread excutes when thread one finish excution
### thread communicate:
wait() notify() notifyall()
### What is thread-safety
thread safety is a property of object or code that gauranteed if they are excuted by multiple threads, it will behave as expected.
### difference bewteen synchronized nad synchronized block
* sychronzied block the whole object
* sychronzide block does not
### threadlocal
* a way to ensure thread safety.
* private and static
* each thread has its own threadloacal value, and we can use them by get() and set, we use the get to get the value and use set() to set value local to thread
### difference between wait and sleep
* Sleep method will not release the lock. Wait method releases lock.
* Wait method defined in Object class, whereas Sleep method defined in Thread class.
* You have to use a synchronized block for wait method whereas no need of a synchronized block.
* Have to call notify or notifyAll method to start waited thread, sleep thread start after specified time.
### difference between sychronized and retrantlock
* sychronized is a unfair lock while retrantlock can be a unfair lock or fair lock
* retrantlock can be interrupted
* retrantlock can awake threads by groups while sychronized can only awake one or awake all.
### yield
which can make the thread to relinquish the cpu and then other threads can get the oportunity to get the cpu
### Write code to solve Producer Consumer problems in Java!!
### threadpool
a way to manage thread
### atomic operation
atomic operation are performed in a single unit of task without interference from other operations
### difference between callable and runnable
* runnable do not has return value while callable do not has the return value. 
* callable can through exception

## data sturcture
### Array
***definition***: Stores data elements based on a sequential (usually zero-based) index.
* Optimal for indexing. Bad for searching, inserting and deleting.
* ![](https://i.imgur.com/CCJ0RN0.png)
* **ArrayList**: Array lists are created with an initial size. When this size is exceeded, the collection is automatically enlarged. When objects are removed, the array may be shrunk.
    * ArrayList is not safe, it has no guarantee if synchronization
    * it uses Array to store
    * Arraylist expansion: initial size: 10, enriched it to 1.5, copy original array to it. ensureCapcity(large amount initial)
    * **comparation between arraylist and linkedlist** 
        * When arraylist wants to add elements, it will affect by the position of the element. Linkedlist uses add but if it is allowd to remove all the sequence linkedlist is good to use as add and delete, and array list is used to search, The basic data stucture for arraylist is array and for linkedlist is linkedlist.
        * Linked list do not support random access while array list support
        * Arraylist waste of space because it has remaining space when it goes to enrich the arraylist.while linkedlist waste of space because every node of linked list uses space than the item in arraylist.
        * ![](https://i.imgur.com/S9MGMyV.png)

* **vector**: 
    * safe
    * like a array,but the main point is like the arraylist
* **String** Strings are constant; their values cannot be changed after they are created.
* **StringBulder** 
     * but with no guarantee of synchronization
* **StringBuffer**
    * there is guarantee of synchronization 
### Linked List
***definition***: Stores data using nodes that have a datum and pointers to other nodes.
* Designed to optimize insertion and deletion during iteration. Slow at indexing and searching.
* Singly Linked Lists have nodes that reference the next node.
* Doubly Linked Lists have nodes that also reference the previous node.
* Circularly Linked Lists are linked lists whose tail reference the head.
* Stacks are commonly implemented using linked lists.
    * Stacks are last in, first out (LIFO) data structures. push() & pop().
    * Implemented with a linked list where the head is the only place for insertion and removal.
    * Queues are commonly implemented using linked lists.
* Queues are first in, first out (FIFO) data structures. enqueue() & dequeue().
    * Implemented with a linked list that only removes from the head and adds to the tail.
    * Double-Ended Queues or Deques are also commonly implemented using linked lists.
    * Deques allow elements to be added and removed from either the head or tail of the queue.
* ![](https://i.imgur.com/pprLBOb.png)
### Hash Table
***definition***: Stores data as key-value pairs in a direct access table. Designed to optimize searching, insertion and deletion.
* Hash Functions accept a key (from an arbitrarily sized dataset) and map it to an output i.e. hash code (from a fixed sized dataset). This hash code is then mapped to an index for storage.
    * This is known as hashing, whose motivation is to assign a unique index to every possible key.
    * This is done because the actual key space may be too large while only a fraction of those keys may appear.
    * A good hash function must: 
        * return a value within the hash table range.
        * achieve an even distribution of indices from the keys that actually occur.
        * be easy and quick to compute.
* **Hash Collisions** occur when a hash function returns the same hash code for two distinct keys or two different hash codes are mapped to the same index.
* Most hash functions have this problem. how to solve: 
    * Closed Address Hashing - Chain together the keys that generate the same index in a linked list (O(n)) or binary search tree (O(log n)).Load Factor is n/h, where n is the number of records and h is the number of hash cells.
    * Open Address Hashing - Store all the elements in the hash table and handle hash collisions by rehashing i.e. look for an alternative slot.Linear Probing - Insert the colliding record in the next slot recursively. However, this can result in long runs of occupied slots.
    * Quadratic Probing/Double Hashing - Use two hash functions to hash the key twice in case of a collision.
    * Using open address hashing requires a hash cell to be marked as obsolete when a record is deleted to avoid stopping search.
* Hashes are important for associative arrays (i.e. key-value pairs) and database indexing.
* ![](https://i.imgur.com/lEjdSog.png)
     * why the worst case（insert,delete) happen:
     ![](https://i.imgur.com/Dz0u2hZ.png)
    * **search**: the data sturcture becomes linkedlist
    * **insert**: the data sturcture becomes linkedlist
    * **delete**: the data sturcture becomes linkedlist
* Comparation between hashmap and hashtable
    * hashmap can not guaranteen syntronized while hash table can
    * hashmap is more efficient than hash table.
    * hashtable(linkedlist array), hashmap(linkedlist, array,red and black tree)8,64
    * hashtable(initial size: 11, then 2n+1) hashmap(16)
* HashSet
    * **how to calculate repead or not **: calculate the hashcode of the target, if no , add. if is, use equals.
* treeset: can be ordered
### Tree
***definition***: 
* 1. A tree is a data structure composed of nodes.
* 2. Each tree has one root node that has zero or more child nodes and each of these child nodes has zero or more child nodes.
* 3. Nodes without children are called leaves.
* 4. A tree cannot contain cycles and nodes may not have links back to their parent nodes.
#### Binary Tree
* Is a tree data structure where every node has at most two children.
    * There is one left and one right child node.
* A complete binary tree is one where every level of the tree is fully filled, except for perhaps the last level. To the extent that the last level is filled, it is filled from left to right.
* A full binary tree is one where every node has either zero or two children.
* A perfect binary tree is one that is both full and complete. Perfect binary trees must have exactly 2^k - 1 nodes, where k is the number of levels.
* A degenerate tree is an unbalanced tree, which if entirely one-sided is essentially a linked list.
#### Binary Search Tree
#### Binary balance Tree
#### red and black tree
### Graph
![](https://i.imgur.com/cyuQUGA.png)
### question regarding data sturcture
#### What is data structure?
it refers to the way how data is stored and manipulated
#### ??? Differentiate between file and structure storage structure.

The key difference between both the data structure is the memory area that is being accessed. When dealing with the structure that resides the main memory of the computer system, this is referred to as storage structure. When dealing with an auxiliary structure, we refer to it as file structures.
#### When is a binary search best applied?
it can be best applied to search in a list , and all elments in the list are nearly in order or sorted. it starts in the middle, if the middle element is not the target one, it will search the lower half or the higher half.The split and search will then continue in the same manner.
#### What is a linked list?
A linked node list is a set of nodes which each nodes connected the following node
#### How do you reference all the elements in a one-dimension array?
used and index loop
#### In what areas do data structures are applied?
algorithms, database dedign:redis hashmap key
#### What is LIFO?
it refers to: Last in first out. The refers to how to store,access and retrieved data ina data structre. the element been added last can be accessed first.  
#### what is a queue
it is a data sturcture, and you add elment in one hand and remove data from aother hand. FIFO
####  What are binary trees?
a data stucture has two nodes, one left node and one right node. it is an extension of the linkedlist
#### Which data structures are applied when dealing with a recursive function?
stack, recursion is a function calles itself based on the termination states
#### What is a stack?
it is the data sturcture and it uses the Last in first out it adds the data on the top, and when you want to remove one element, it onle allows to remove the first element.
#### Explain Binary Search Tree
a binary search tree is data sturcture the value of the left children always smaller then the value of its parent node and the value of the right children always bigger or equal the value o its parent node, and every subtree is a binary search tree.
####  What are multidimensional arrays?
the data sturcture always make used of multiple indexes like game table, graph.
#### linear data sturcture
a structure in which the elements are stored sequentially, and the elements are connected to the previous and the next element
#### ???Are linked lists considered linear or non-linear data structures?
It depends on where you intend to apply linked lists. If you based it on storage, a linked list is considered non-linear. On the other hand, if you based it on access strategies, then a linked list is considered linear.
#### How does dynamic memory allocation help in managing data?
Apart from being able to store simple structured data types, dynamic memory allocation can combine separately allocated structured blocks to form composite structures that expand and contract as needed.
#### What is FIFO?
FIFO refers to the point first in first out, and the refers to data store in a queue, when remove an element it will remove the element which is the longest one to be added.
#### What is an ordered list?
list in an descending or asceding order
#### what is a mergesort?
It is a sort algorithm which is based on divide and conquer algorithm. in a sequenced data, the adajcent ones are merged to form a sorted list, then there sortedlist are merged again to form a even bigger sorted list. This sequence repeated until its formed a single sorted list.
#### Differentiate NULL and VOID
Null is a value, whereas Void is a data type identifier. A variable that is given a Null value indicates an empty value. The void is used to identify pointers as having no initial size.
####  What is a linear search?
A linear search refered to find a specific target key in a sequenced data. each element in the sequence is compared and checked whether it is the specific key. this process stoped until it finds the specific key or we have compared all the elemnt in the sequence.
####  How does variable declaration affect memory allocation?
it depends the data type. for an interger, 4 byte should be allocated
#### What is the advantage of the heap over a stack?
the heap is more flexible than the stack. because memory space for the heap can be dynamcally allocated or deallocated. however, the momory at times for the heap can be slower than stack.
#### How do you insert a new item in a binary search tree?
First check the root is empty or not, if it is empty, just insert the new item to the root. if it is not empty, refers to to the value of the key, if if is larger than the root,inset the node at the right subtree. if it is smaller than the root, insert the node at the left subtree.
#### ??? How does a selection sort work for an array?
The selection sort is a fairly intuitive sorting algorithm, though not necessarily efficient. In this process, the smallest element is first located and switched with the element at subscript zero, thereby placing the smallest element in the first position.

The smallest element remaining in the subarray is then located next to subscripts 1 through n-1 and switched with the element at subscript 1, thereby placing the second smallest element in the second position. The steps are repeated in the same manner till the last element.
####  How do signed and unsigned numbers affect memory?
in the case of signed numbers, the first bit is used to indicate whether it is possitive or not which leaves with one bit short, for unsigned numbers, you have all digits availible for that numbers. The effect is best seen in the number range (an unsigned 8-bit number has a range 0-255, while the 8-bit signed number has a range -128 to +127.
#### What are dynamic data structures?
Dynamic data structures are structures that expand and contract as a program runs. It provides a flexible means of manipulating data because it can adjust according to the size of the data.
#### In what data structures are pointers applied?
Pointers that are used in linked list have various applications in the data structure. Data structures that make use of this concept include the Stack, Queue, Linked List and Binary Tree.
### ???What is the minimum number of queues needed when implementing a priority queue?

The minimum number of queues needed in this case is two. One queue is intended for sorting priorities while the other queue is used for actual storage of data.
#### Which sorting algorithm is considered the fastest?

There are many types of sorting algorithms: quick sort, bubble sort, balloon sort, radix sort, merge sort, etc. Not one can be considered the fastest because each algorithm is designed for a particular data structure and data set. It would depend on the data set that you would want to sort.(when the quick sort apply to the data set, all these elements in this data set is nearly in order, it becomes o(n^2))
#### What is a dequeue?

A dequeue is a double-ended queue. This is a structure wherein elements can be inserted or removed from either end.
####  What are the parts of a linked list?
head and tail,all the nodes are linked in sequencial
#### Differentiate linear from a nonlinear data structure.

The linear data structure is a structure wherein data elements are adjacent to each other. Examples of linear data structure include arrays, linked lists, stacks, and queues. On the other hand, a non-linear data structure is a structure wherein each data element can connect to more than two adjacent data elements. Examples of nonlinear data structure include trees and graphs.
#### Briefly explain recursive algorithm.

Recursive algorithm targets a problem by dividing it into smaller, manageable sub-problems. The output of one recursion after processing one sub-problem becomes the input to the next recursive process.
#### What is Huffman’s algorithm?

Huffman’s algorithm is used for creating extended binary trees that have minimum weighted path lengths from the given weights. It makes use of a table that contains the frequency of occurrence for each data element.

#### What is Fibonacci search?

Fibonacci search is a search algorithm that applies to a sorted array. It makes use of a divide-and-conquer approach that can significantly reduce the time needed in order to reach the target element.
#### Topological Sorting
Topological Sorting (Topological Sorting) is a linear sequence of all vertices of a Directed Acyclic Graph (DAG, Directed Acyclic Graph). And the sequence must satisfy the following two conditions:
* Each vertex appears and only appears once.
* If there is a path from vertex A to vertex B, then vertex A occurs before vertex B in the sequence.
* can be implemented by java
## Networking 计算机网络
### Difference between TCP and UDP protocol
* TCP is connection-oriented, while UDP is connectionless
* TCP provides reliable connection while udp does not
* Tcp is slower than udp
* Tcp needs more resource than udp
* Tcp is suitble for the message delievering while udp is suitble for media transmission
* TCP guarantees order of messages, UDP doesn't.
* Data boundary(multiple data packet can be combined) is not preserved in TCP, but UDP preserves it.
### tcp handshake protocal
![](https://i.imgur.com/mveDZri.png)
why we need three times?
because the tcp handshake is used for the client and server both ensure they have establied a reliable communication chanek
fIRST ACK, client knows nothing while server konws the send function of client and recievr function of server is correct.
clients knows all. while server does not know whether its send function is corretct
### How do you implement reliable transmission in UDP protocol
* sequence number and retransmission
### 7 different layers of the OSI Reference Model
* **Application layer**:
* **Presentation layer**:
* **session layer**: 
* **Transport layer**:
* **network layer**:
* **data link layer**:
* **physical layer**:
* ![](https://i.imgur.com/9yY2rSG.png)
* ![](https://i.imgur.com/0iN8fjp.png)
### Explain the different Layers of TCP/IP Model.
Application Layer, Transport Layer, Network or Internet Layer, Network interface layer
![](https://i.imgur.com/iFr0vFN.png)
### what is dns?
 Domain Name Server we can call it internet phone book
 tranfer ip addresses to hostnames
### what happens if you type a url in the browser
* 1.look up the location of the server hosting the website
* 2.make the connection to the server
* 3.send a request to get the specific page
* 4.handle the response from the server and
* 5.how it renders the page so you, the viewer, can interact with the website
### http and https:
*http* http stands for hyper text transfer protocal stateless which defines a set of rules and standards on how information can be transmitted by the world wide web
*https* it is a secrute version of http  It enables secure transactions by encrypting the communication and also helps identify network servers securely.
* difference between http and https
* http run on tcp while https run on tls and ssl
* the default port of http is 80 while for http the port is 443
## Operating system操作系统
### the main purpose of the operating system

## Mysql
### questions
####  Define SQL?
SQL stands for Structured Query Language. SQL is a programming Language designed specially for managing data in Relational Database Management System (RDBMS).
#### What is RDBMS? Explain its features?
it is the most widely used database tecnology system in the world
* store date in tables
* tables have rows and colums
* data are access through sql
#### What is an ERD?
ERD stands for entity relation diagram, it is the graphical tecnology to reprent tables and their relationship.
#### What is the difference between Primary Key and Unique Key?
* Primary Key is used to uniquely identify a row but a unique key is used to prevent duplicate values in a column. 
 * Existence: A table can have only one primary key but it can have multiple unique keys.
#### How to store picture file in the database. What Object type is used?
type blog is recommended. blog stands for binary large object
#### What is Data Warehousing?
store different source of data
#### What are indexes in a Database. What are the types of indexes?
indexes are the quick reference for fast find the data in the database
* clustered indexes(聚集索引) the left node of the clustered index store all information of one row, and it can be sorted. one table only exisits one clustered index
* nonclustered indexes（非聚集索引）one table can have multiple clustered index, and it can not access the data directly, you first refers to index, then find the data.
#### How many TRIGGERS are possible in MySql?
A MySQL trigger is a database object that is associated with a table. It will be activated when a defined action is executed for the table. The trigger can be executed when you run one of the following MySQL statements on the table: INSERT, UPDATE and DELETE and it can be invoked before or after the event.
six 
#### What is Heap table?
Tables that are present in the memory are called as HEAP tables. These tables are commonly known as memory tables. These memory tables never have values with data type like “BLOB” or “TEXT”. They use indexes which make them faster.
#### Float and DOUBLE
Float: 8 space accuracy, 4 bytes
Double:18 space accuracy, 8bytes
#### What storage engines are used in MySQL? 
Storage engines are called table types and data is stored in files using various techniques.
Technique involves:
Storage mechanism
Locking levels
Indexing
Capabilities and functions.
## NoSql
### Eventually Consistency
### CAP theory
## projects
### questions conclude
#### microservice SOA?
SOA:ESB(enterprise service bus) control all service
run independantly
easy to call each other by api
##### Why, in a SOA, long-lived transactions are discouraged and sagas are suggested instead?
##### What are the differences between SOA and microservice?
##### Sagas and compensations What's the difference between a transaction and a compensation operation in a saga, in SOA?
##### When is a microservice too micro?
##### What are the pros and cons of microservice architecture?
### Elctronic business platform
![](https://i.imgur.com/2I6KIUb.jpg)
#### **Introduction**
* A full category e-commense shoping website like amazon. this system can be divided into two parts: The first part is designed for the customers. they can enter the website and search the products, add their fauvorite product to the cart, and place an order. The other part is designed for the administrater. the administrator monitor the promotion of the product, and then add the product of remove the product. Besides, they can make refund.
* **detailed introducton**: here we can use the three tier architecture to explain my ecommenrse application. The dirst is **presentation tier**: This tier consists all my display frond end pages like the search interface which is designed for the user to search product.
* **application tier** here  consists nice microservices like the searchig serviceand they are build upon the springcloud frame work. the interaction between the presentation tier and the application tier are down by nigx, then zuul will transfor the request to euroka. here ribbon are used for the load balance and hystrix is used for failure tolerancd.
* **data tier**. here I use mysql and redis are used as cache to improve the responce speed of the system. In addition, elasticsearch are used for searching. 
#### **why?**
a backend developer job in china. you have to know some knowledge about high concurrency. expericens in spring framework,nosql and messaguage queue.
#### **most dificult thing**  (消息队列的解决办法？)
* Stituation: we have the administrator platform,the custom platform, and the search platform, if we change the data, the search page and the custom page shwos wrong.
* Task:solve the problem in a easy way
* Action: The first method is to write a api modefy the search engine, every time when I modify the database, I call this api. it is so complex, here I use message queue.
* Result: Now this problem solved, and I have a basic understanding of message queue.
#### important notes:
* RabbitMQ-> sloved the problem of inter-service communication and distributed transaction
    * **introduction**: post office, accept and transfer message
    * publisher:publisher sends the message to the queue, and counsumer get the message from the queue.
    * counsumer: 
    * mode:
        * direct
        * fan out 
* **local storage**: With web storage, web applications can store data locally within the user's browser. and there is no time limit
* **nginx**: NGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability.
* elasticsearch: 
    * better for searching function
    * deal with complex searching problem
    * three main characteristics:
        * distributed
        * restful
        * intime
    * kibana visualize the data of elsticresearch and provide api to manupate elasticsearch
    * concepts:
        * indices:index
        * shard: the split of data
        * replica: repeat of data
    * support fuzz range aggregations(easy than mysql) 
* **Fastdfs**: distributed file system 
* redis: 
    * redis can be be used as cache which can improve the responce speed of the system.
* JWT
* restful api: server side will not store any information of the client. 
* **eureka**:
     * like uber. responsible for managing the information of service provider, counsumer d ont need to find service by their selves, they just tell eureka what they need, then eureka will call the service/
     * Eureka: reveal its address
     * Provider: tell eureka its information and which service it provided
     * counsumer: book the sevice, send the address of provider and update in a period.
     * heartbeat: provided needs to tell their status to eureka by heart beat.
* **ribbon**:Ribbon primarily provides client-side load balancing algorithms.
    * 7 ways to loadbalance
        * random
        * retry
        * roundrobin
* **hystrix**  : if microservice one went wrong, then the request will not be responsed, the thread will not relased, then run out the service of the server.
     * thread pool： thread isolation
     * service downgrade： onlt the main service is avaliabel  
### social platform
it is a social platfrom belongs to the financial staff, which consists of six main functions:news, QA events, dating platform, make friends, recruitment information. here we can use the three tier architecture to explain my social platform application. The first is 
* **presentation tier**: This tier consists all my display frond end pages like the search interface which is designed for the user to search jobs and news.
* **application tier** here  consists eight microservices like the searchig serviceand they are build upon the springcloud frame work. the interaction between the presentation tier and the application tier are down by nigx, then zuul will transfor the request to euroka. here ribbon are used for the load balance and hystrix is used for failure tolerancd.
* **data tier**. here I use mysql,and redis are used as cache to improve the responce speed of the system. In addition, elasticsearch are used for searching. and mongodb is used to store large amount of data.
### movie recommendation system
The traditional way to build a movie recommendation system is making use of the user data and history actions and then applying collaborative filtering for recommendation. But we adopt artificial intellgience method to build a  movie recommendation application. we have implemented a convolutional neral network based on user features, movie features and ratting features. and we use the model to calculate which movie the user probably like most. But, if we think it as the real movie recommen application, there may exsist some problmes.  if our model goes wrong, it will continue give wrong recommendation to the user. So, user will feel disappoint about our application, and they may never use our recommendation system. here, for solve this problem, we use the additional feature ratting feature, we let our model also consider users' reviews. Eevry time when we give user recommedations, we ask user to give us feedback, and then the feedback will be sent into our model. The next recommendation given by our model will count the feedback of user. So, if the user does not like the movies, it will stop recommend the movies to them.

For a more robust reccomendation, the user feature and movie feature are gained by gcn which can give more accurate recommendations than the original one.
![](https://i.imgur.com/EsVqlmR.png)
For cold start problem, five most popular movies are given and we ass user to fill their personal information. 

For evaluation, mse loss and open questionaire A/B version
### deep learning
The paper presents a novel method for Multi-source Domain Adaptation named WAMDA which uses multiple sources to train a predictor based on their internal relevance and their rele- vance score related to the target. Our work is to reproduce the proposed approach on only one dataset OfficeHome dataset and the other two methods (Resnet and MFSAN for evaluating the effectiveness of the proposed method).
WAMDA is a method that can do effective multi-source domain adaptation based on the source- target and source-source similarities. The following gives information about the basic structure.
The proposed algorithm is divided into two parts. The first stage is pre-adaptation train- ing , we can obtain the relevance score, feature extractor, source classifier, and domain classifier from this stage. Then, the other stage is multi-source adaptation training , the weighted alignment of domains is performed, classifiers and a target encoder are learned based on this weighted aligned space. 
dataset:office home, experiments done by google colab
the diifficult, 
![](https://i.imgur.com/haexXjk.png)
binary cross-entropy loss, coral loss, qt loss, align loss, distill loss, entropy loss, de loss, and T->W loss
### what is the difference between python flask and java spring
for python flask, it is a lightweight, you can get started very quickly, it is easy for us to learn.
for java springboot, it is good for a big project and Open source" and "Great community" are the primary reasons why Spring is favored, because when we meet a bug for java soringboot, we quickly find answers in its community.
### python flask mvc
![](https://i.imgur.com/ukkwgKv.png)

## behaviour questions
### 1.  tell me about your self
> *my name is Siwei, I was born and grow up in China, and I did my bachelor in chengdu where I major in computer science. During my bachelor, I have taken several courses like Introduction to Web Technologies, Software Engineering Principles,and Programming for the Web. These courses help me learned several theorytical knowledge about how to design a software and offer me a chance put these knowledge into practise. After that, I felt like I would like to learn more about computer science.
> So, I decided to go to the netherlands and study at Tu delft. here my specific track is artificial intelligience. and I Have taken several courses related to aritifical intelligience like indormation retrival, deep learning, multimedia search and rememdation  machine learning. After getting a deeper understanding of computer science, I prefer the practical side more than the research side so I would like to be a software developer. I did some projects by myselft to learn more new tecnologies like java springboot. So, That's all about me. I am prepared to answer any questions you may have about my education and experience."*
### 2. Where do you see yourself five years from now?(重新写一个更detail的）,
> “I’m really excited about the software development right now. I hope that in five years, I’m continuing to get better at progaming ,buidling web application and learning more new tecnologies so that I can ultimately building more excenlent application which can make worlds better. besides, However, I’d like to take on roles with greater responsibility. I could see myself leading teams of developers as a senior programmer, and mentoring junior developers whilst growing as a technical lead and architect.”
<!-- and hopefully this will be with your company." -->
### 3.Describe a major goal you've set for yourself recently.
the major goal is to find a job or an internship. I believe that the biggest problem I encounter is not my coding ability but my comunication skills. So, for improve this, I have taken a course to improve my spoken ability and find some friends to help me do the mock interview.
### 5. We all have weaknesses. What are some of your major weaknesses?/### 35. What personal skill or work habit have you struggled to improve?
From my point of view, my main weakness is that I lack the real work expericnce. but if With this new work, I will have the opportunity to learn the job the way you want it done, I am never bored because there is always something new to learn. 
In addition, although I have no former on-the-job experience with this work, I do bring my love of learning new things, which can only enhance my ability to learn this process very quickly.
### 6. What type of decisions do you have difficulty making?
if there are two equaliy-good ideas, it is hard for me to decide.
### 7. What is your biggest failure?
three monthis ago, i was actively searching for the opportunity to do a thesis project in company. When I applied the positition in philips, after two range of interviews, I failed.
Why they decide not to processd with me because of my communication skills.  So, for improve this, I have taken a course to improve my spoken ability and find some friends to help me do the mock interview.
### 8. What are the major reasons for your success?/We're considering two other candidates for this position. Why should we hire you rather than someone else?/Tell me something about yourself that I didn't know from reading your resume./ Why should I hire you? /What are your strengths? /How do you explain your job success?/describe your selt
1. I have suitble coding skills. I know mysql well, I take taken courses related to database and have used mysql in several projects. also, i am good at Java. So, i thought i am suitble for your job position.
2. I am a fast learner. it is easy for me to quicky learn new things and new teccnologys. At tudelft, i have taken several different courses and I can quickly learn the new framework and finish the coursework.(minizig dapr)
3. I really good at solving teconolgy problems,Because i never give up something, I always belive I can do this. And I have my pipeline to solve the problem.
* we first need to focus what the problem is
* then we search at the internet. be careful, we should try any methods we can find
* it this does not work, we can find the principle of this problem, and to see if my idea works/
* if the problem can not be solved, we just find an alternative tecnology to do that
* I am very good at planning and insist on doing things according to my plan. Before looking for jobs in china, i planned to finish 300 leetcode, and I made a schedule from stacks, retrace to dynamic programming. Now the summer is over, and I have done leetcodes as i planned. Also, there is a small example can indicate this: i never quit one of the courses at tudelft
I personally have felt my reasoning and logical abilities at work improve from LC practice every morning. The knowledge itself hasn't been particularly useful at work but regular algorithmic thinking practice has proved to be useful for me.
### 10. How do you spend your free time?
### 11. Why do you want to work in this industry?/Why do you think this industry would sustain your interest in the long haul?19. Tell me what you think our distinctive advantage is within the industry./What motivates you to do this kind of work?/58. Since this will be your first job, how do you know you'll like the career path?
<!-- there are several reasons why I want to work in your company, first, I am really impressed by the product which can make the world better. that is  exactly your idea. I really like the idea of your product which is to make healthy mineral water and abandon the plastic bottle.
Personally, I really like learning new things and dealing with new chanllenge. i think your company can offer me this chance. -->
First, I felt my background meet your requirements. I am familar with java and python and I also have certain knowlegde of operating system and networking secruity. Besides, I also have experience in mysql.
In addition, I really like the training program, from my point of view, it offered me a changce to learn and develope not my only my professional skills but also my personal skills
Bsesides, I really like the your company's culture: act instead of react, during my study time, I would like to have a first instead of dwelling on things. And some of your tecnical course sounds really attactive! 
the third reason is that I like your company's culture. On your website, you we let quality be more important than quantity, So do I. when I did the assignment, i always want the perfect one! 
The main focus of your company is person development.
### 15. Describe your ideal career./23. What's your dream job?
My ideal job is one where I get to solve problems and build new applications. I love to learn new technology, so it is great to work in a company providing a change for me to learn more and help me keep in pace withe new tecnology development. and I’m a team player. I’m happiest when I’m part of a busy team who are all working to fix a particular software problem that will ultimately benefit the whole organisation. Besides, there is a chance to get my idea in to practise.
* which kind of company do you prefer?
    * I prefer small company
        * If I work in a big company, I work often end up doing the same thing on the same equipment with the same colleagues working for the same   client and using the same technology. In a smaller company, you’ll get the opportunity to work on a more varied type of projects
        * It’s Easier to Get Noticed 
        * easy to communicate, i know every one
    * I prefer big company
        * Formal training programs are often readily available in large companies, meaning there are more opportunities to develop and grow. 
        * A larger company means a larger pool of talent, and big companies typically attract the best of the best. This means that you’ll have the opportunity to learn from people who are experts in their field, which is great for your professional and personal development.
        * diverse community  
        * Working at the cutting edge of tech, you’ll always have new challenges and new problems to solve.
### 31. How do you regroup when things haven't gone as planned?/ 34. How do you manage your work week and make realistic deadlines?/How do you organize and plan for major projects?
### 36. What color is your brain?
### 38. What's the most creative or innovative project you've worked on? ### 41. How will you complement this department?/ 42. Describe how your personality and/or skills would help round out the department. What types of people enjoy working with you for hours at a time? How would the company's customers or clients react? Assure the interviewer that there will be no surprises about your work personality.
from my point view, here I would like to describe my thesis project. this project is in collobration with national library in the netherlands. Refers to why we do this project, nowadys there are 240 million low-literacy people in the netherlands. and there are second language readers, people withe reading comprehension problems, and chirdren.  it is difficult for them to understand complex sentence or article. there is survey showed that some cov19 policies published by dutch goverment written in difficult word is difficult for these people to understand. And you know, there are so many books and documents in the national library, if these materials can not be understood by human, this means nothins. In the past, KB has thought to solve this problem by simplifying the text manually. However, it will cost too much effort. Here, my project is going to solve this problem by using artificial intelligience tecnologies. even there are existing tecnologys to simplify the text, these tecnologies are still not good. Models are like to make mistakes when they simplify the sentence. what i am doing now is to find why model goes wrong and try to find a way to improve the model.
### 45. Are you most productive working alone or in a group?
it depends on which group I work in, if the group are full of talented people and we have have good commnuication, then I am  most productive working in a group. 
### 4.1 How would people describe you?
“I would say that people would describe me as a good communicator because when we do groupwork, we always have a good work atmosphere.
### 4.2 Which is your most significant accomplishment
One year ago, I have taken a course named information retrieval and I have to pass the course with higher score.
* When I did the first assignment of information retrival, it asked as to implement a bm25 algrithms to finish passage ranking and applied learning to rank tecniques to finish reranking. and we are required to make two improments for the baseline. the project is so difficult and a completely new area to us and one of my team mates droped that course.Moreover, there is no teaching assistant availiable for that course so no one answers our questions
<!-- * it sounds not so difficule however, the dataset is so large that we can not implement the algorithm by ourselves. it should use some toolikits. there are no instructions for the toolkit and you have no idea which one is suitble. -->
* I have searched all the information I can find, I have tried several algorithms, that's really a hard time and my teammates 
* after i finished this project and geta highest score at that course. I think there is no project that i should give up and i belive that if you insist on doing sth. you can do everything.
### experience cshow my leadership 
I am currently study computer science, and most of my classes during my study time involved teamwork. I try to step up as a leader whenever possible, because it allows me to develop skills in communication, delegation, and managing multiple tasks and deadlines. Besides, I think this can help me gain a good score. In a course named information retrieval, we were broken off into teams of four and had to complete a large project throughout the whole quater.  My team ended up getting the highest grade in the class because I set a schedule early in the project and delegated tasks to people based on their strengths. For example, one  of my team mates is good at python, so I alocate the task of data preprocess to her. To be honest, I enjoy leading and delegating, and I hope to continue leading in my professional career now.
* situation: here I would like to talk about my recent leadership experience when i took the course multimedia search and Recommendation.there are four of us, and we need to set the goal, divide the task.
* task, we should finish the project. i should help us to set the clear goal, at that time, two of my group mates has two different opinios. i need to decide which idea to take.
* Action: I first try to find the implement possibility of these two projects. and I talk with them about their idea. after 
* we persuade the other people and get a high score at that course

### my questions #### 
1. what tecnology stack do your compang use?
2. Can you tell me some more information about your company 
3. what is your typical day at work or what is the typical day of a software engineer in your team?
4. what is the biggest chanllenge of this job?
5. What are you looking for in a candidate?
### 46. Tell me about an effective manager, supervisor, or other person in a leading role you've known/ What type of people do you work with most effectively?
### 50. What personal characteristics add to your effectiveness?
### 52. How do you usually go about solving a problem?/ How practical or pragmatic are you?/ 54. Tell me about a time when there was no rule or precedent to help you attack a problem.

### 59. What are your aspirations beyond this job?
### 60. How long do you think you'd continue to grow in this job?
### 61. Compare this job to others you're pursuing.
### 62. Tell me about your salary expectations.
### 63. What do you reasonably expect to earn within five years?
### 64. Other than work, tell me about an activity you've remained interested in over several years.
### 65. What do you enjoy in your spare time?
### 66. Do you live a balanced lifestyle?
### 67.What outside activities complement your work interests?
### 68. If you found yourself getting burned out, what would you do to revitalize your energy?
### 69. Our company believes that employees should give back time to the community. How do you feel about it?
### 70. What community projects that can use your professional skills are particularly interesting to you?
### 71. Describe how a sport or hobby taught you a lesson in teamwork or discipline.
### 72. Tell about a time you had to use teamwork to get a desired result. Tell a specific story, then explain how the same skill or lesson has been used in your work.
### 73. When you aren't at work, do you prefer to stick to a schedule, or do you prefer to be spontaneous? Why?
### 74. Tell me about an interest that you outgrew.
### 75. What would you do if I told you that I thought you were giving a very poor interview today?
### 76. Tell me about your most difficult work or personal experience.
### 77. If this were your first annual review with our company, what would I be telling you right now?

### 78. Give an example of a time when you were asked to accomplish a task but weren't given enough information. How did you resolve this problem?
### 79. How have you handled criticism of your work?
### 80. Tell me about a situation that frustrated you at work.
### 81. Tell me about your least-favorite manager or professor.
### 82. Who's the toughest employer you've ever had, and why?
### 83. Time management has become a necessary factor in productivity. Give an example of a time-management skill you've learned and applied at work.
### 84. Would you be willing to locate to another city?
### 85. Would you be able to work extended hours as necessary to perform the job?
### 88. Was there a course that you found particularly challenging?
### 89. Why didn't you participate more in extracurricular activities?




### 面试复盘 
#### opticsvalley
* idea job career?
    * provide a chance for me to learn more tecnologies and help me keep in pace with the tecnology development
    * have a chance to put my idea into practise
* which kind of company do you prefer?
    * I prefer small company
        * If I work in a big company, I work often end up doing the same thing on the same equipment with the same colleagues working for the same   client and using the same technology. In a smaller company, you’ll get the opportunity to work on a more varied type of projects
        * It’s Easier to Get Noticed 
        * easy to communicate, i know every one
    * I prefer big company
        * Formal training programs are often readily available in large companies, meaning there are more opportunities to develop and grow. 
        * A larger company means a larger pool of talent, and big companies typically attract the best of the best. This means that you’ll have the opportunity to learn from people who are experts in their field, which is great for your professional and personal development.
        * diverse community  
* what kind of skills you want to learn?
    * COMMUNICATION SKILLS
    * my tecnologies
* have you done any internship
    * software testing
#### innovatic
* why netherlands?
* familer degree of language
* when do you expected to graduate

#### momo medical
* tell me a interesting project.

#### imc 准备
1. Is the total number of distinct unsigned 32-bit integers different from the total number of signed 32-bit integers?
yes, they are different. for the signed integers, it used one bit to refers to the integer whether it is positive or not which leaves with one bit short, for unsigned numbers, you have all digits availible for that numbers. The diffence is best seen in the number range.
2. Can an O(1) algorithm get faster?
it depends, Now to me if some algorithm has O(1) time complexity the only way for another equivalent algorithm to be faster is to have a smaller constant coefficient in O(1) estimate (like one algorithm takes at most 250 primitive operations and another takes at most 5 primitive operations and is therefore faster although both have O(1) complexity).
3. Is a task on 2 threads always faster than a task running on one thread?
it depends. Whether or not a multithreaded program runs faster depends on the task and largely if it can be broken down into independent parts so that each core can work on the task at the same time. and that time,a task on 2 threads always faster.  If you can’t parallelize the task or if the machine doesn’t have multiple cores, then2 threads will likely not help regarding speed.
4. How would you explain the difference between a stack and queue to a non-technical person? ( More than one minute was given to prepare and 2 minutes to answer for this one)
they are generally data stuctures which is used to store, access and manipute data. they are different in ways they accss data. Stack is LIFO (Last in First out) Queue is FIFO (First in first out)
here I can take a example Queue of people gathered where people are joining the line from last but getting served from first or in a clear view First in, first out.
Stack tends be helpful where for example the last person to enter the line will be served first for some reason.
5. Do similar hash keys have similar hashcodes
yes, if they use the same hash function.
9. 非技术人员最喜欢的项目(my thesis project)
from my point view, here I would like to describe my thesis project. this project is in collobration with national library in the netherlands. Refers to why we do this project, nowadys there are 240 million low-literacy people in the netherlands. it is difficult for them to understand some policies written in difficult words. And you know, there are so many books and documents in the national library, if these materials can not be understood by human, this means nothins. we know there is one way to solve this problem. we can simplify the text manually.However, it will cost too much effort. Here, my project is going to simplify the text by using artificial intelligience tecnologies.
8. why you want to work in imc
There are several reasons why I want to work in IMC(participate this kind of program). First, IMC is an international company grown with the dutch roots, and it is a big company. So, I can learn more from this kind of company. Besides, I’m excited about this job opportunity, as it would allow me to learn more about how to involve advanced tecnology within the trading industry and make connections with other talet women. Finally, I really like the company's culture, I like innovation and really enjoy putting my new idea into practise as well as doing project make words better.
10. difficult project
That’s a great question! I’ve definitely encountered a bunch of challenging but interesting problems at my current study time and one that stood out is this task where I had to solve of problem of high concrurrency of a electic shopping platform.
So to start out the process before I write a single line of code, I first spent a lot of time trying to search information about how to slove it and the thought process behind the solution; after search, I find a lock may be a good solution.
there are two ways to useing the lock, the first is to use the key implemented by zookeeper, and the other way is redis. Here I choose redis to solve the problem.
Because I am the completely new begineer for redis, So it tooks me some time to study redis, finally I SOLVED THE PROBLEM while my system sarcifice some response speed.
11. what kind of person do you desrcibe yourself are?


<!-- and hopefully this will be with your company." -->
15. now that you've had a chance to learn more about us, wha

#### booking准备
1. introduce my self
my name is Siwei, I was born and grow up in China, and I did my bachelor in south west jiaotong university where I major in computer science. After the four year study in china, I felt like I would like to learn more about computer science.
So, I decided to go to the netherlands and study at Tu delft. here, I Continue studying computer science and my specific track is artificial intelligience. after getting deeper understanding of ai, I felt like i prefered the practical side rather than the research side. So, i would like to become a software developer in the future. Thats, all about me.
3. how do you feel about test?
oh really, To be honest, I felt good when I did test. these three questions are not very difficult. However, it is little bit time counsuming for question 3, I spent so much time understanding the requirements for the question 3 and it is  difficult for me to debug by using my own Integrated Development Environment. because i have to type all the information manually and the hotel review is really a long sentence.
4. how you find this booking job
Oh I find it from booking's career website, because when i decided to find the job, I felt like booking would be one of the best choices for me. So, i went to your website and I found this job descirbtions really attracts me.
5. why booking?
First, i use booking to book the hotel, I Know your product is good so i want to join the team which builds the good product. and i like travelling very much, it would be great to work in a industry you love
Second, I found your company is a diverse and inclusion community. your company is try to achieve gender parity. I love your idea and I would like to work with people who has different background.
one of the most reason is that all I want is that to make a software application which can benefits the world or make the world better than before.  So i like booking's mission that is to make it easier for everyone to experience the world. 
7. why this job(why you this software development suits for you) in progress
Oh, to be honest, your company culture appeals me and I like the training program you have provided. There are mentors,bootscamp, which can provide me a formal process to learn and develop. and i can have the chance to exposure across a number of teams within the engineering business unit. 
8. tell me about a project
from my point view, here I would like to describe my thesis project. this project is in collobration with national library in the netherlands. Refers to why we do this project, nowadys there are 240 million low-literacy people in the netherlands. and there are also people who are second language readers, who has reading comprehension problems, and chirdren.  it is difficult for them to understand complex sentence or article. there is survey showed that some cov19 policies published by dutch goverment written in complex words is difficult for these people to understand. And you know, there are so many books and documents in the national library, if these materials can not be understood by human, this means nothins. In the past, KB has thought to solve this problem by simplifying the text manually. However, it will cost too much effort. Here, my project is going to solve this problem by using artificial intelligience tecnologies. even there are existing tecnologys to simplify the text, these tecnologies are still not good. Models are like to make mistakes when they simplify the sentence. what i am doing now is to find why model goes wrong and try to find a way to improve the model.
9. what tecnology stack do you use?
I konw java and python well, and I also has some experience in c++. and for the framework, I have used java springboot, python flask and python django. Besides, for the data base, I have some experience in mysql redis and mongodb. 
10. Citizenship
I am a chinese and i hold a study permit here.
12. questions
* if I can pass this round of interview, what is the next step?
*  What are you looking for in a candidate?
#### asml
1. why you want to work in asml?
2. what is difference bewtween java spring and python flask?
3. an example
4. future career
5. fast pace
6. what kind of personality?
#### samotivs
1. why python flask
2. how to store javascript
3. jinja template or javascript to store information
4. I expect to graduate in June or July
5. 前端反应太慢咋办
6. experience in mysql？
I have a basic understanding of both relational database and non reletational database. For relational database, i have used mysql in several projects:like the movie recommendation system and the electricity system and the social platform. For Nosql, i have used redis and mongodb. 
8. What does a technical interview look like？
补充一些例子
#### philips
1. why this graduate program?
> * There are several reasons I want to participate in this program. First of all, as a software developer, what I want to do is to provide excellent applications which can make the world better. and this is exaxcly what philips did. Philips builds products which has dramatic impact on the health and wellbeing of people around the word. I like your productes and like things your company do.
> * Besides, the formal training program means there are more opportunities to develop and grow. and i can have the chance to exposure across diffrent teams which is great for my professional and personal development.
> * For my own ambition, I would like to grow and improve myself in my future career and I like the chanlleging task and I hope there are more opportunities for me to learn and chanllge myself. And I found philis provides these opourtunities for me to learn and group.
> *  The last reason is that I am looking for a diverse, international workplace culture. it would be great to work with people form diffrent cultures and with different perspectives. Therefore, Philips is the right choice for me. 
3. tell me about a stuation where you felt out of your comfort zone and what you do to overcome this
As you can probably tell, I don't have a nevertherland background, I'm from China. So i come here alone for my master degree in Tu Delft . It's really a long distance from my motherland and everything is just so different and With the affects of Covid-19, life here is completely out of comfort zone for me at beginning. Although I have learned english for 12years but its still chanllenging for me to get used to use it in daily life. And I need to take care of myself for all aspects of my life, since I have no relatives or friends here. I really thought about give up and just go back home sometime. But just for a few minutes, then I cheer myself up to face these difficulties.  I participate in english group in my university every week to imprve my oral english. It turns out that, as long as you have a goal and are willing to put in the effort, what you want will be achieved piece by piece. From the english group, I not only improve my english, but also got the chance to be friends with native dutch students. They share a lot about the cultures, activities and basically everything in Dutch. After this small step, I made more friends from my neighbor's party and also some team events then I get used to life here， So, I gradually fell in love with this country and wanted to stay and live here. So, as you can see, I'm now trying to find a job after graduation.
5. Tell me about a life event or anything related that you are most proud off and why
The most proud of event is that I gained 30 credits in one quarter at tu delft and I get score of 8 for all courses at that quater. usually students only take 15 credits at most for one quarter. It was really a busy quarter and at that quarter I was new to the netherlands so I was busy adjusting to the new life here. and I would like to tell you why I take many courses.  First, there are two interesting courses, It is very hard to give up one of two. So, I take both. The other reason is that I am not sure which direction I want to go deeper for computer science, So Understanding more can make me know how to decide.

I am proud of that time period is not because it was busy, it was challenging but fruitful in the end, but also it's because, this time period provides me a chance to manage time efficiently and proved that good time management can help us achive goals and obejectives better.Also, after passing this hard time, I believe that we should never up things even if these things sounds impossible. 

#### 3.21-3.28要做的事情
1. 回溯刷完
2. union find search
3. 几种图的高级算法
4. 滑动窗口
5. 看一遍中文的复习资料
6. 补充http 操作系统
7. 更新一下简历！
8. 十大排序
## 计算器解题思路
使用两个栈，stack0 用于存储操作数，stack1 用于存储操作符
从左往右扫描，遇到操作数入栈 stack0
遇到操作符时，如果当前优先级低于或等于栈顶操作符优先级，则从 stack0 弹出两个元素，从 stack1 弹出一个操作符，进行计算，将结果并压入 stack0，继续与栈顶操作符的比较优先级。
如果遇到操作符高于栈顶操作符优先级，则直接入栈 stack1
遇到左括号，直接入栈 stack1。
遇到右括号，则从 stack0 弹出两个元素，从 stack1 弹出一个操作符进行计算，并将结果加入到 stack0 中，重复这步直到遇到左括号 最后弹出左括号


# 我要进行的操作
jp-InputArea jp-Cell-inputArea
jp-OutputArea-child style="display:none;"
jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs 

Maximum number of pages
including or excluding Appendices
APA
IEEE


front matter
body
back matter

finish key sentence.

topic sentence
supporting sentence
conclusin sentence

First sencond next finally

There are two different aspects between european univeristy and American university.

People building their homes according to their living enviroment.

* Foreign travel: People prefer to travel abroad rather than travel in their own country.
* studying a foreign language The difficulty level of studying a foreign language changes according to your age.
* space exploration: there are many advantages for space exploration
* 
* 