├── .gitignore ├── other ├── README.md ├── group.jpg ├── group.png ├── 10072416.jpg ├── 15684156.jpg ├── 18458140.jpg ├── 21679154.png ├── 22954582.jpg ├── 7719370.png ├── 8018776.jpg ├── 计算机网络脑图.png ├── LogoMakr_0zpEzN.png ├── Group.md └── leetcode 总结.md ├── pics ├── 10.gif ├── 11.gif ├── 7.gif ├── 9.gif ├── PPjwP.png ├── flow.png ├── n2U3N.png ├── tGPV0.png ├── pcrypt.gif ├── ppt_img.gif ├── scrypt.gif ├── urlnuri.jpg ├── 0635cbe8.png ├── 2018040302.jpg ├── BSD_disk.png ├── Iterator-1.jpg ├── JNIFigure1.gif ├── JVM-Stack.png ├── Semaphore.png ├── cookiedata.png ├── image005.jpg ├── image007.jpg ├── image008.jpg ├── image009.jpg ├── ProcessState.png ├── _u4E0B_u8F7D.png ├── master-slave.png ├── url_diagram.png ├── 111521118015898.gif ├── 111521118445538.gif ├── 111521118483039.gif ├── 111521118640738.gif ├── 111521119203347.gif ├── 111521119368714.gif ├── 1492928105791_3.png ├── 1492928416812_4.png ├── 1492929000361_5.png ├── 1492929444818_6.png ├── 1492929553651_7.png ├── 1492930243286_8.png ├── 2017-06-11-ca.png ├── 600px-Sharedmem.jpg ├── CountdownLatch.png ├── CyclicBarrier.png ├── How-HTTPS-Works.png ├── mutualssl_small.png ├── ssl-offloading.jpg ├── 20150928140509757.png ├── java-collections.png ├── java-collections1.png ├── linux-filesystem.png ├── monitor-lock-rule.png ├── thread-join-rule.png ├── thread-start-rule.png ├── DP-Decorator-java.io.png ├── HTTP1_x_Connections.png ├── HowLinkedListWorks.png ├── master-slave-proxy.png ├── network-of-networks.gif ├── single-thread-rule.png ├── JVM-runtime-data-area.jpg ├── class_loader_hierarchy.png ├── inode_with_signatures.jpg ├── volatile-variable-rule.png ├── 2018-05-29-15275543393037.jpg ├── 7779232-1e8ed39548081a1f.png ├── 7779232-96822582feb08651.png ├── JNI-Java-Native-Interface.jpg ├── MultiNode-SpringSession.jpg ├── MultiNode-StickySessions.jpg ├── HTTP_RequestMessageExample.png ├── HTTP_ResponseMessageExample.png ├── 2_14_microkernelArchitecture.jpg ├── MultiNode-SessionReplication.jpg ├── docker-filesystems-busyboxrw.png ├── 76a49594323247f21c9b3a69945445ee.png ├── GUID_Partition_Table_Scheme.svg.png ├── LOun2W9134NxVugmbJPp15d4LalxC4O.png ├── NP4z3i8m38Ntd28NQ4_0KCJ2q044Oez.png ├── SoWkIImgAStDuU8goIp9ILK8IatCoQn.png ├── SoWkIImgAStDuU8goIp9ILLmB2xEJyv.png ├── SoWkIImgAStDuU8goIp9ILLmJ4ylIar.png ├── SoWkIImgAStDuU8goIp9ILLmJyrBBKh.png ├── SoWkIImgAStDuU8goIp9ILLmpiyjo2_.png ├── SoWkIImgAStDuUBAp2j9BKfBJ4vLy0G.png ├── SoWkIImgAStDuUBAp2j9BKfBJ4vLy4q.png ├── VP4n3i8m34Ntd28NQ4_0KCJ2q044Oez.png ├── ZnJvbT1jc2RuJnVybD15VkdkdVYyUXZ.jpg ├── ClienteServidorSockets1521731145260.jpg ├── 014fbc4d-d873-4a12-b160-867ddaed9807.jpg ├── 0157d362-98dd-4e51-ac26-00ecb76beb3e.png ├── 026d3cb4-67f7-4a83-884d-8032f57ec446.png ├── 02986f62-c641-44a8-a55f-983581490e0c.png ├── 037c3a0b-332d-434d-a374-f343ef72c8e1.jpg ├── 03f47940-3843-4b51-9e42-5dcaff44858b.jpg ├── 042cf928-3c8e-4815-ae9c-f2780202c68f.png ├── 04f41228-375d-4b7d-bfef-738c5a7c8f07.jpg ├── 051e436c-0e46-4c59-8f67-52d89d656182.png ├── 05907ab4-42c5-4b5e-9388-6617f6c97bea.jpg ├── 061c29ce-e2ed-425a-911e-56fbba1efce3.jpg ├── 061c88c1-572f-424f-b580-9cbce903a3fe.png ├── 06976908-98ab-46e9-a632-f0c2760ec46c.png ├── 075e1977-7846-4928-96c8-bb5b0268693c.jpg ├── 07717718-1230-4347-aa18-2041c315e670.jpg ├── 07903a31-0fb3-45fc-86f5-26f0b28fa4e7.png ├── 08427d38-8df1-49a1-8990-e0ce5ee36ca2.png ├── 08f32fd3-f736-4a67-81ca-295b2a7972f2.jpg ├── 09b52bcb-88ba-4e36-8244-b375f16ad116.jpg ├── 09e6e8d4-4d83-4949-b908-6d6b4c2fd064.png ├── 0a9f4125-b6ab-4e94-a807-fd7070ae726a.png ├── 0aaf4630-d2a2-4783-b3f7-a2b6a7dfc01b.jpg ├── 0b587744-c0a8-46f2-8d72-e8f070d67b4b.jpg ├── 0c55e11c-d3ce-4cd8-b139-028aea6f40e3.png ├── 0df5d84c-e7ca-4e3a-a688-bb8e68894467.png ├── 0e34263d-7287-4ffe-a716-37c53d1a2526.png ├── 0ea37ee2-c224-4c79-b895-e131c6805c40.png ├── 0ee0f61b-c782-441e-bf34-665650198ae0.jpg ├── 0f373947-c68f-45b4-a59e-086154745ac5.png ├── 0f754c1d-b5cb-48cd-90e0-4a86034290a1.png ├── 107a6a2b-f15b-4cad-bced-b7fb95258c9c.png ├── 10bdf7bf-0daa-4a26-b927-f142b3f8e72b.png ├── 10f5e35b-1c71-4717-9e80-47f259702642.jpg ├── 11236498-1417-46ce-a1b0-e10054256955.png ├── 1164a71f-413d-494a-9cc8-679fb6a2613d.jpg ├── 1202b2d6-9469-4251-bd47-ca6034fb6116.png ├── 123bdf81-1ef5-48a9-a08c-2db97057b4d2.png ├── 137c593d-0a9e-47b8-a9e6-b71f540b82dd.png ├── 13b0940e-d1d7-4b17-af4f-b70cb0a75e08.png ├── 14cfe8d4-e31b-49e0-ac6a-6f4f7aa06ab6.png ├── 15313ed8-a520-4799-a300-2b6b36be314f.jpg ├── 1556770b-8c01-4681-af10-46f1df69202c.jpg ├── 1582217a-ed46-4cac-811e-90d13a65163b.png ├── 15b45dc6-27aa-4519-9194-f4acfa2b077f.jpg ├── 168e893c-e4a0-4ba4-b81f-9d993483abd0.jpg ├── 17976404-95f5-480e-9cb4-250e6aa1d55f.png ├── 1818e141-8700-4026-99f7-900a545875f5.png ├── 185b9c49-4c13-4241-a848-fbff85c03a64.png ├── 1a231f2a-5c2f-4231-8e0f-915aa5894347.jpg ├── 1a2f2998-d0da-41c8-8222-1fd95083a66b.png ├── 1a851e90-0d5c-4d4f-ac54-34c20ecfb903.jpg ├── 1a9977e4-2f5c-49a6-aec9-f3027c9f46a7.png ├── 1ab49e39-012b-4383-8284-26570987e3c4.jpg ├── 1b7f180e-7fee-4eaf-8ebb-164b68ae2b29.png ├── 1be8b4b0-cc7a-44d7-9c77-85be37b76f7d.png ├── 1bea398f-17a7-4f67-a90b-9e2d243eaa9a.png ├── 1bfa3118-f3cd-4480-a950-cf6d646015db.png ├── 1c4e8185-8153-46b6-bd5a-288b15feeae6.png ├── 1ca52246-c443-48ae-b1f8-1cafc09ec75c.png ├── 1ee5f0a5-b8df-43b9-95ab-c516c54ec797.jpg ├── 1f039a45-6b91-4f31-a2c2-6c63eb8bdb56.png ├── 1f080e53-4758-406c-bb5f-dbedf89b63ce.jpg ├── 1f4a7f10-52b2-4bd7-a67d-a9581d66dc62.jpg ├── 1fc969e4-0e7c-441b-b53c-01950d2f2be5.png ├── 2017511e-22f0-4d74-873d-1261b71cf5a4.png ├── 207c1801-2335-4b1b-b65c-126a0ba966cb.png ├── 21041ec2-babb-483f-bf47-8b8148eec162.png ├── 211c60d4-75ca-4acd-8a4f-171458ed58b4.jpg ├── 220790c6-4377-4a2e-8686-58398afc8a18.png ├── 22de0538-7c6e-4365-bd3b-8ce3c5900216.png ├── 22fda4ae-4dd5-489d-ab10-9ebfdad22ae0.jpg ├── 23ba890e-e11c-45e2-a20c-64d217f83430.png ├── 245fd2fb-209c-4ad5-bc5e-eb5664966a0e.jpg ├── 249f3bb1-feee-4805-a259-a72699d638ca.jpg ├── 25d6d3d4-4726-47b1-a9cb-3316d1ff5dd5.png ├── 265a355d-aead-48aa-b455-f33b62fe729f.png ├── 2719067e-b299-4639-9065-bed6729dbf0b.png ├── 271ce08f-c124-475f-b490-be44fedc6d2e.png ├── 2766d04f-7dad-42e4-99d1-60682c9d5c61.jpg ├── 276c31df-3b28-4ac2-b006-1e80fc86a64f.jpg ├── 278fe431-af88-4a95-a895-9c3b80117de3.jpg ├── 27cd6f0c-f581-45da-b8c9-fed026830560.png ├── 27ff9548-edb6-4465-92c8-7e6386e0b185.png ├── 280f7728-594f-4811-a03a-fa8d32c013da.png ├── 2858f8ad-aedb-45a5-a706-e98c96d690fa.jpg ├── 2861e923-4862-4526-881c-15529279d49c.png ├── 292b4a35-4507-4256-84ff-c218f108ee31.jpg ├── 293d2af9-de1d-403e-bed0-85d029383528.png ├── 2991c772-fb1c-4051-a9c7-932b68e76bd7.jpg ├── 2a842a14-e4ab-4f37-83fa-f82c206fe426.png ├── 2a8e1442-2381-4439-a83f-0312c8678b1f.png ├── 2ac50b81-d92a-4401-b9ec-f2113ecc3076.png ├── 2ad244f5-939c-49fa-9385-69bc688677ab.jpg ├── 2bcc58ad-bf7f-485c-89b5-e7cafc211ce2.jpg ├── 2bf2fd8f-5ade-48ba-a2b3-74195ac77c4b.png ├── 2c4556e4-0751-4377-ab08-e7b89d697ca7.png ├── 2c8a7a87-1bf1-4d66-9ba9-225a1add0a51.png ├── 2d09a847-b854-439c-9198-b29c65810944.png ├── 2e6c72f5-3b8e-4e32-b87b-9491322628fe.png ├── 30210b86-472d-4574-abb6-b74898cc17a4.jpg ├── 3086c248-b552-499e-b101-9cffe5c2773e.png ├── 31d99967-1171-448e-8531-bccf5c14cffe.jpg ├── 323ffd6c-8b54-4f3e-b361-555a6c8bf218.png ├── 32b8374a-e822-4720-af0b-c0f485095ea2.jpg ├── 33ac2b23-cb85-4e99-bc41-b7b7199fad1c.png ├── 348bc2db-582e-4aca-9f88-38c40e9a0e69.png ├── 35650b4b-efa1-49ba-9680-19837027cfc9.png ├── 3646544a-cb57-451d-9e03-d3c4f5e4434a.png ├── 37a72755-4890-4b42-9eab-b0084e0c54d9.png ├── 37e79a32-95a9-4503-bdb1-159527e628b8.png ├── 386cd64f-7a9d-40e6-8c55-22b90ee2d258.png ├── 390c913b-5f31-444f-bbdb-2b88b688e7ce.jpg ├── 3939369b-3a4a-48a0-b9eb-3efae26dd400.png ├── 395a9e83-b1a1-4a1d-b170-d081e7bb5bab.png ├── 396be981-3f2c-4fd9-8101-dbf9c841504b.jpg ├── 39ccb299-ee99-4dd1-b8b4-2f9ec9495cb4.png ├── 3b0d1aa8-d0e0-46c2-8fd1-736bf08a11aa.jpg ├── 3b49dd67-2c40-4b81-8ad2-7bbb1fe2fcbd.png ├── 3ca58a41-8794-49c1-992e-de5d579a50d1.png ├── 3cd630ea-017c-488d-ad1d-732b4efeddf5.png ├── 3d5b828e-5c4d-48d8-a440-281e4a8e1c92.png ├── 3f5bba4b-7813-4aea-b578-970c7e3f6bf3.jpg ├── 3fb5b255-b791-45b6-8754-325c8741855a.png ├── 3fdfc89d-719e-4d93-b518-29fa612b3b18.png ├── 3ff4f00a-2321-48fd-95f4-ce6001332151.png ├── 41026c79-dfc1-40f7-85ae-062910fd272b.png ├── 41392d76-dd1d-4712-85d9-e8bb46b04a2d.png ├── 423f2a40-bee1-488e-b460-8e76c48ee560.png ├── 426df589-6f97-4622-b74d-4a81fcb1da8e.png ├── 43f2cafa-3568-4a89-a895-4725666b94a6.png ├── 44e4a7ab-215c-41a1-8e34-f55f6c09e517.jpg ├── 44edefb7-4b58-4519-b8ee-4aca01697b78.jpg ├── 450px-HTTP_persistent_connection.svg.png ├── 4583e24f-424b-4d50-8a14-2c38a1827d4a.png ├── 45e0e0bf-386d-4280-a341-a0b9496c7674.png ├── 4628274c-25b6-4053-97cf-d1239b44c43d.png ├── 46cec213-3048-4a80-aded-fdd577542801.jpg ├── 46f66e88-e65a-4ad0-a060-3c63fe22947c.png ├── 47358f87-bc4c-496f-9a90-8d696de94cee.png ├── 47d98583-8bb0-45cc-812d-47eefa0a4a40.jpg ├── 485fdf34-ccf8-4185-97c6-17374ee719a0.png ├── 4885d0bc-1441-460f-bd75-a2088aa7f2d4.png ├── 48a934ff-a29b-434c-8e1d-8c8ec20cb91d.png ├── 48f8f98e-8dfd-450d-8b5b-df4688f0d377.jpg ├── 49495c95-52e5-4c9a-b27b-92cf235ff5ec.png ├── 49d6de7b-0d0d-425c-9e49-a1559dc23b10.png ├── 4bb7ed45-ec14-4d31-9da4-94024d9d3b05.png ├── 4cf711a8-7ab2-4152-b85c-d5c226733807.png ├── 4d741402-344d-4b7c-be01-e57184bcad0e.png ├── 4d930e22-f493-49ae-8dff-ea21cd6895dc.png ├── 4dc08713-f6fe-424c-a24c-ad5a993a941d.png ├── 4e2485e4-34bd-4967-9f02-0c093b797aaa.png ├── 4e760981-a0c5-4dbf-9fbf-ce963e0629fb.png ├── 4f48e806-f90b-4c09-a55f-ac0cd641c047.png ├── 4fc032e0-ac6f-4b42-9182-ee104a25e7a1.png ├── 4ff355cf-9a7f-4468-af43-e5b02038facc.jpg ├── 50831a6f-2777-46ea-a571-29f23c85cc21.jpg ├── 50d38e84-238f-4081-8876-14ef6d7938b5.jpg ├── 5158bc2f-83a6-4351-817e-c9b07f955d76.png ├── 518f16f2-a9f7-499a-98e1-f1dbb37b5a9a.png ├── 51e2ed95-65b8-4ae9-8af3-65602d452a25.jpg ├── 51fb761d-8ce0-4472-92ff-2f227ac7888a.png ├── 5292faa6-0141-4638-bf0f-bb95b081dcba.jpg ├── 52e1af6f-3a7a-4bee-aa8f-fcb5dacebe40.jpg ├── 5341d726-ffde-4d2a-a000-46597bcc9c5a.png ├── 5359cbf5-5a79-4874-9b17-f23c53c2cb80.jpg ├── 536c6dfd-305a-4b95-b12c-28ca5e8aa043.png ├── 53cd9ade-b0a6-4399-b4de-7f1fbd06cdfb.png ├── 540631a4-6018-40a5-aed7-081e2eeeaeea.png ├── 54cb3f21-485b-4159-8bf5-dcde1c4d4c36.png ├── 54f1e052-0596-4b5e-833c-e80d75bf3f9b.png ├── 55dc4e84-573d-4c13-a765-52ed1dd251f9.png ├── 562f2844-d77c-40e0-887a-28a7128abd42.png ├── 58e57a21-6b6b-40b6-af85-956dd4e0f55a.jpg ├── 5930aeb8-847d-4e9f-a168-9334d7dec744.png ├── 5942debd-fc00-477a-b390-7c5692cc8070.jpg ├── 5999e5de-7c16-4b52-b3aa-6dc7b58c7894.png ├── 5aa82b89-f266-44da-887d-18f31f01d8ef.png ├── 5aac64d3-2c7b-4f32-9e9a-1df2186f588b.png ├── 5acf7550-86c5-4c5b-b912-8ce70ef9c34e.png ├── 5b910141-08b6-442d-a4bc-a1608458c636.png ├── 5c638d59-d4ae-4ba4-ad44-80bdc30f38dd.jpg ├── 5d4a5181-65fb-4bf2-a9c6-899cab534b44.png ├── 5e8d3c04-d93b-48a7-875e-41ababed00e0.jpg ├── 5e9b10f3-9504-4483-9667-d4770adebf9f.png ├── 5ed71283-a070-4b21-85ae-f2cbfd6ba6e1.jpg ├── 5f5ef0b6-98ea-497c-a007-f6c55288eab1.png ├── 5f96e565-0693-47df-80f1-29e4271057b7.png ├── 600e9c75-5033-4dad-ae2b-930957db638e.png ├── 6019b2db-bc3e-4408-b6d8-96025f4481d6.png ├── 61942711-45a0-4e11-bbc9-434e31436f33.png ├── 62e0dd4f-44c3-43ee-bb6e-fedb9e068519.png ├── 62e77997-6957-4b68-8d12-bfd609bb2c68.jpg ├── 63c2909f-0c5f-496f-9fe5-ee9176b31aba.jpg ├── 63cd5b50-d6d8-4df6-8912-ef4a1dd5ba13.jpg ├── 6539b9a4-2b24-4d10-8c94-2eb5aba1e296.png ├── 654acfed-a6a5-4fc7-8f40-3fdcae57bae8.jpg ├── 658fc5e7-79c0-4247-9445-d69bf194c539.png ├── 66192382-558b-4b05-a35d-ac4a2b1a9811.jpg ├── 66402828-fb2b-418f-83f6-82153491bcfe.jpg ├── 6729baa0-57d7-4817-b3aa-518cbccf824c.jpg ├── 67bf5487-c45d-49b6-b9c0-a058d8c68902.png ├── 685a692f-8f76-4cac-baac-b68e2df9a30f.jpg ├── 68778c1b-15ab-4826-99c0-3b4fd38cb9e9.png ├── 688dacfe-1057-412f-b3a1-86abb5b0f914.png ├── 68b110b9-76c6-4ee2-b541-4145e65adb3e.jpg ├── 691f11eb-31a7-46be-9de1-61f433c4b3c7.png ├── 699b4f96-d63f-46ea-a581-2b3d95eceb6a.jpg ├── 69f16984-a66f-4288-82e4-79b4aa43e835.jpg ├── 6c0f4afb-20ab-49fd-837d-8144f4e38bfd.png ├── 6f4abf41-3728-4a6b-9b94-85eed7ca8163.png ├── 71363383-2d06-4c63-8b72-c01c2186707d.png ├── 71f61bc3-582d-4c27-8bdd-dc7fb135bf8f.png ├── 7299afd2-9114-44e6-9d5e-4025d0b2a541.png ├── 72f0ff69-138d-4e54-b7ac-ebe025d978dc.png ├── 72fe492e-f1cb-4cfc-92f8-412fb3ae6fec.png ├── 73b73189-9e95-47e5-91d0-9378b8462e15.png ├── 766aedd0-1b00-4065-aa2b-7d31138df84f.png ├── 76a25fc8-a579-4d7c-974b-7640b57fbf39.jpg ├── 76b48b4c-8999-4967-893b-832602e73285.png ├── 76dc7769-1aac-4888-9bea-064f1caa8e77.jpg ├── 77f81379-3987-4036-8d7c-93a4dcf7b05d.jpg ├── 79076335-cfae-4fe6-97b9-62e8eebbf2b9.png ├── 794239e3-4baf-4aad-92df-f02f59b2a6fe.png ├── 79b12431-6d9d-4a7d-985b-1b79bc5bf5fb.png ├── 7a29acce-f243-4914-9f00-f2988c528412.jpg ├── 7a3c6a30-c735-4edb-8115-337288a4f0f2.jpg ├── 7ab8ca28-2a41-4adf-9502-cc0a21e63b51.jpg ├── 7b038838-c75b-4538-ae84-6299386704e5.jpg ├── 7b281b1e-0595-402b-ae35-8c91084c33c1.png ├── 7b3efa99-d306-4982-8cfb-e7153c33aab4.png ├── 7b48448f-cbe3-4287-9041-f56566b9d0b4.png ├── 7b68b142-9489-44f6-87b0-4cb5c6431e63.jpg ├── 7bd202a7-93d4-4f3a-a878-af68ae25539a.png ├── 7be0abf9-687c-4451-becd-626b0be7ec22.jpg ├── 7c54de21-e2ff-402e-bc42-4037de1c1592.png ├── 7c98e1b6-c446-4cde-8513-5c11b9f52aea.jpg ├── 7e873b60-44dc-4911-b080-defd5b8f0b49.png ├── 7ec9d619-fa60-4a2b-95aa-bf1a62aad408.jpg ├── 7f38a583-2f2e-4738-97af-510e6fb403a7.png ├── 7f642a65-b167-4c8f-b382-8322c6322b2c.jpg ├── 7fffa4b8-b36d-471f-ad0c-a88ee763bb76.png ├── 8006a450-6c2f-498c-a928-c927f758b1d0.png ├── 80804f52-8815-4096-b506-48eef3eed5c6.png ├── 81538cd5-1bcf-4e31-86e5-e198df1e013b.jpg ├── 8229e8e7-a183-4d29-94e6-e8d8537c6ce5.png ├── 823cdab7-3779-4e3a-a951-dc2d154e0ee6.jpg ├── 82cfda3b-b53b-4c89-9fdb-26dd2db0cd02.jpg ├── 83185315-793a-453a-a927-5e8d92b5c0ef.jpg ├── 836a4eaf-4798-4e48-b52a-a3dab9435ace.png ├── 8433fbb2-c35c-45ef-831d-e3ca42aebd51.png ├── 85583359-1b45-45f2-9811-4f7bb9a64db7.jpg ├── 8587132a-021d-4f1f-a8ec-5a9daa7157a7.png ├── 85c05fb1-5546-4c50-9221-21f231cdc8c5.jpg ├── 864bfa7d-1149-420c-a752-f9b3d4e782ec.png ├── 8668a3e1-c9c7-4fcb-98b2-a96a5d841579.png ├── 867e93eb-3161-4f39-b2d2-c0cd3788e194.png ├── 86e6a91d-a285-447a-9345-c5484b8d0c47.png ├── 88ff46b3-028a-4dbb-a572-1f062b8b96d3.png ├── 897503d0-59e3-4752-903d-529fbdb72fee.jpg ├── 8a4c6ad4-a816-47d1-b93f-7ca4f78ab67a.png ├── 8adb2591-d3f1-4632-84cb-823fb9c5eb09.jpg ├── 8ae4550b-f0cb-4e4d-9e2b-c550538bf230.png ├── 8af348d0-4d72-4f76-b56c-0a440ed4673d.png ├── 8b335d94-c1ca-42e1-ad48-bb179d28a4f1.jpg ├── 8b798007-e0fb-420c-b981-ead215692417.jpg ├── 8c0b3ae1-1087-46f4-8637-8d46b4ae659c.png ├── 8c662999-c16c-481c-9f40-1fdba5bc9167.png ├── 8cc671f0-7134-44b1-a7b5-6d24fe55e1c1.jpg ├── 8dfb4cc9-26da-45e7-b820-4576fa1cbb0e.png ├── 8f0cc500-5994-4c7a-91a9-62885d658662.png ├── 8f3b9519-d705-48fe-87ad-2e4052fc81d2.png ├── 8f64e9c5-7682-4feb-9312-dea09514e160.jpg ├── 8f6f9dc9-9ecd-47c8-b50e-2814f0219056.png ├── 8fe838e3-ef77-4f63-bf45-417b6bc5c6bb.png ├── 902b83ab-8054-4bd2-898f-9a4a0fe52830.jpg ├── 902ef59f-7bcb-45a1-a80a-2f7afaa03629.jpg ├── 910f613f-514f-4534-87dd-9b4699d59d31.png ├── 9110c1a0-8a54-4145-a814-2477d0128114.png ├── 91ef04e4-923a-4277-99c0-6be4ce81e5ac.jpg ├── 920c034c-c212-4f79-9ddb-84e4bb6cd088.png ├── 924914c0-660c-4e4a-bbc0-1df1146e7516.jpg ├── 926c7438-c5e1-4b94-840a-dcb24ff1dafe.png ├── 92ad9bae-7d02-43ba-8115-a9d6f530ca28.png ├── 94589319-975f-490b-8bae-90b3a4953559.png ├── 952afa9a-458b-44ce-bba9-463e60162945.png ├── 952e06bd-5a65-4cab-82e4-dd1536462f38.png ├── 955af054-8872-4569-82e7-2e10b66bc38e.png ├── 96b63e13-e2d8-4ddb-9aa1-a38959ca96e5.jpg ├── 992faced-afcf-414d-b801-9c16d6570fec.jpg ├── 9b829410-86c4-40aa-ba8d-9e8e26c0eeb8.jpg ├── 9b838aee-0996-44a5-9b0f-3d1e3e2f5100.png ├── 9bbddeeb-e939-41f0-8e8e-2b1a0aa7e0a7.png ├── 9cd0ae20-4fb5-4017-a000-f7d3a0eb3529.png ├── 9d0a637c-6a8f-4f5a-99b9-fdcfa26793ff.png ├── 9d549816-60b7-4899-9877-23b01503ab13.png ├── 9e80f75a-b12b-4344-80c8-1f9ccc2d5246.jpg ├── 9ea86eb5-000a-4281-b948-7b567bd6f1d8.png ├── a01d1516-8168-461a-a24b-620b9cfc40f4.png ├── a0df8edc-581b-4977-95c2-d7025795b899.png ├── a1198642-9159-4d88-8aec-c3b04e7a2563.jpg ├── a2d13178-f1ef-4811-a240-1fe95b55b1eb.png ├── a314bb79-5b18-4e63-a976-3448bffa6f1b.png ├── a3253deb-8d21-40a1-aae4-7d178e4aa319.jpg ├── a3da4342-078b-43e2-b748-7e71bec50dc4.png ├── a3f34241-bb80-4879-8ec9-dff2d81b514e.jpg ├── a40661e4-1a71-46d2-a158-ff36f7fc3331.png ├── a4248c4b-6c1d-4fb8-a557-86da92d3a294.jpg ├── a4b162e5-db2a-4a27-b213-1fe481c5a06a.png ├── a4c17d43-fa5e-4935-b74e-147e7f7e782c.png ├── a57a6fc8-c5e9-456c-80ff-a5139dda4b6e.png ├── a58e294a-615d-4ea0-9fbf-064a6daec4b2.png ├── a6026bb4-3daf-439f-b1ec-a5a24e19d2fb.jpg ├── a6ac2b08-3861-4e85-baa8-382287bfee9f.png ├── a6c20f60-5eba-427d-9413-352ada4b40fe.png ├── a74b70ac-323a-4b31-b4d5-90569b8a944b.png ├── a9077f06-7584-4f2b-8c20-3a8e46928820.jpg ├── aa29cc88-7256-4399-8c7f-3cf4a6489559.png ├── aa42f9c6-ad7a-48f4-8e8b-f3b6de3feaec.png ├── aa844ff0-cd16-4478-b415-da071b615a17.jpg ├── ab77240d-7338-4547-9183-00215e7220ec.png ├── abb3e0d1-c1bd-45d0-8190-73c74a9f6679.png ├── ac106e7e-489a-4082-abd9-dabebe48394c.jpg ├── ac9b31ec-cef1-4880-a875-fc4571ca10e1.png ├── ace830df-9919-48ca-91b5-60b193f593d2.png ├── ae1b27b8-bc13-42e7-ac12-a2242e125499.png ├── ae3fc93a-44d5-4beb-b05a-874bd9c0a657.png ├── af198da1-2480-4043-b07f-a3b91a88b815.png ├── af4639f9-af54-4400-aaf5-4e261d96ace7.png ├── b0c97118-8f30-4619-9c22-a141f627db39.png ├── b0e8ef47-2f23-4379-8c64-10d5cb44d438.jpg ├── b0f61ac2-a4b6-4042-9cf0-ccf4238c1ff7.png ├── b1df9732-86ce-4d69-9f06-fba1db7b3b5a.jpg ├── b1fa0453-a4b0-4eae-a352-48acca8fff74.png ├── b20a3466-44b4-445e-87c7-dd4fb9ef44b2.png ├── b29f8971-9cb8-480d-b986-0e60c2ece069.png ├── b396d726-b75f-4a32-89a2-03a7b6e19f6f.jpg ├── b418ca51-f005-4510-b7ad-f092eb6aeb24.png ├── b4252c85-6fb0-4995-9a68-a1a5925fbdb1.png ├── b4b29aa9-dd2c-467b-b75f-ca6541cb25b5.jpg ├── b54eeb16-0b0e-484c-be62-306f57c40d77.jpg ├── b5bdcbe2-b958-4aef-9151-6ad963cb28b4.png ├── b8081c84-62c4-4019-b3ee-4bd0e443d647.jpg ├── b84ba6fb-312b-4e69-8c77-fb6eb6fb38d4.png ├── b8dd708d-f372-4b04-b828-1dd99021c244.png ├── b988877c-0f0a-4593-916d-de2081320628.jpg ├── b9a39d2a-618c-468b-86db-2e851f1a0057.jpg ├── b9d79a5a-e7af-499b-b989-f10483e71b8b.jpg ├── baaa681f-7c52-4198-a5ae-303b9386cf47.png ├── bb6a49be-00f2-4f27-a0ce-4ed764bc605c.png ├── bc603930-d74d-4499-a3e7-2d740fc07f33.png ├── bc775758-89ab-4805-9f9c-78b8739cf780.jpg ├── be5c2c61-86d2-4dba-a289-b48ea23219de.jpg ├── be7dca03-12ec-456b-8b54-b1b3161f5531.png ├── beba612e-dc5b-4fc2-869d-0b23408ac90a.png ├── bee1ff1d-c80f-4b3c-b58c-7073a8896ab2.jpg ├── bf0ff9fc-467e-4a3f-8922-115ba2c55bde.png ├── bf16c541-0717-473b-b75d-4115864f4fbf.jpg ├── bf667594-bb4b-4634-bf9b-0596a45415ba.jpg ├── bfbb11e2-d208-4efa-b97b-24cd40467cd8.png ├── c037c901-7eae-4e31-a1e4-9d41329e5c3e.png ├── c0a9fa91-da2e-4892-8c9f-80206a6f7047.png ├── c2117f61-1177-4768-bf33-cf4f950d911c.png ├── c23957e9-a572-44f8-be15-f306c8b92722.jpg ├── c28c6fbc-2bc1-47d9-9b2e-cf3d4034f877.jpg ├── c2cbf5d2-82af-4c78-bd43-495da5adf55f.png ├── c2d343f7-604c-4856-9a3c-c71d6f67fecc.png ├── c2f0c8e2-da66-498c-a38f-e1176abee29e.png ├── c3369072-c740-43b0-b276-202bd1d3960d.jpg ├── c3c1c0e8-3a78-4426-961f-b46dd0879dd8.png ├── c4c14368-519c-4a0e-8331-0a553715e3e7.jpg ├── c5022dd3-be22-4250-b9f6-38ae984a04d7.jpg ├── c5085437-54df-4304-b62d-44b961711ba7.png ├── c5f611f0-fd5c-4158-9003-278141136e6e.jpg ├── c625baa0-dde6-449e-93df-c3a67f2f430f.jpg ├── c79da808-0f28-4a36-bc04-33ccc5b83c13.png ├── c7d4956c-9988-4a10-a704-28fdae7f3d28.png ├── c812c28a-1513-4a82-bfda-ab6a40981aa0.png ├── c81af7d8-3128-4a3c-a9c9-3e0f5b87ab22.jpg ├── c8d18ca9-0b09-441a-9a0c-fb063630d708.png ├── c8dbff58-d981-48be-8c1c-caa6c2738791.jpg ├── c9a1de44-b1c0-4d13-a654-827d4ef8a723.png ├── c9ad2bf4-5580-4018-bce4-1b9a71804d9c.png ├── c9cfcd20-c901-435f-9a07-3e46830c359f.jpg ├── c9cfd600-bc91-4f3a-9f99-b42f88a5bb24.jpg ├── cb0ed469-27ab-471b-a830-648b279103c8.png ├── cbf50eb8-22b4-4528-a2e7-d187143d57f7.png ├── cd5fbcff-3f35-43a6-8ffa-082a93ce0f0e.png ├── cdbe1d12-5ad9-4acb-a717-bbc822c2acf3.png ├── ce039f03-6588-4f0c-b35b-a494de0eac47.png ├── cf4386a1-58c9-4eca-a17f-e12b1e9770eb.png ├── d0afdd23-c9a5-4d1c-9b3d-404bff3bd0d1.png ├── d160ec2e-cfe2-4640-bda7-62f53e58b8c0.png ├── d1f81ac3-9fdb-4371-a49d-ca84917aa89f.jpg ├── d2d34239-e7c1-482b-b33e-3170c5943556.jpg ├── d49466db-fdd3-4d36-8a86-47dc45c07a1e.jpg ├── d4c3a4a1-0846-46ec-9cc3-eaddfca71254.jpg ├── d4eef1e2-5703-4ca4-82ab-8dda93d6b81f.png ├── d52270b4-9097-4667-9f18-f405fc661c99.png ├── d5c16be7-a1c0-4c8d-b6b9-5999cdc6f9b3.png ├── d7f6dec1-02b6-4969-b3ab-e01ee78659b9.png ├── d99dc9e2-197c-4085-813d-7195da1c6762.png ├── db4921d4-184b-48ba-a3cf-1d1141e3ba2d.png ├── db54db2f-82b2-4222-8d63-e49a8a7fc966.png ├── dbb8516d-37ba-4e2c-b26b-eefd7de21b45.png ├── dbc5c9f1-c13c-4d06-86ba-7cc949eb4c8f.jpg ├── dbd60b1f-b700-4da6-a993-62578e892333.jpg ├── dc00f70e-c5c8-4d20-baf1-2d70014a97e3.jpg ├── dd15a984-e977-4644-b127-708cddb8ca99.png ├── dd3b289c-d90e-44a6-a44c-4880517eb1de.png ├── dd782132-d830-4c55-9884-cfac0a541b8e.png ├── dd78a1fe-1ff3-4bcf-a56f-8c003995beb6.jpg ├── dda1608d-26e0-4f10-8327-a459969b150a.png ├── ddb5ff4c-4ada-46aa-9bf1-140bdb5e4676.jpg ├── ddcf2327-8d84-425d-8535-121a94bcb88d.jpg ├── de9b9ea0-1327-4865-93e5-6f805c48bc9e.png ├── e026c24d-00fa-4e7c-97a8-95a98cdc383a.png ├── e0900bb2-220a-43b7-9aa9-1d5cd55ff56e.png ├── e130e5b8-b19a-4f1e-b860-223040525cf6.jpg ├── e143f6da-d114-4ba4-8712-f65299047fa2.png ├── e1eda3d5-5ec8-4708-8e25-1a04c5e11f48.png ├── e2f0d889-2330-424c-8193-198edebecff7.png ├── e3124763-f75e-46c3-ba82-341e6c98d862.jpg ├── e31abb94-9201-4e06-9902-61101b92f475.png ├── e3bf5de4-ab1e-4a9b-896d-4b0ad7e9220a.jpg ├── e3f1657c-80fc-4dfa-9643-bf51abd201c6.png ├── e41405a8-7c05-4f70-8092-e961e28d3112.jpg ├── e6723b94-1a33-4605-b775-f6813352d383.png ├── e6b733ad-606d-4028-b3e8-83c3a73a3797.jpg ├── e6bded8e-41a0-489a-88a6-638e88ab7666.jpg ├── e800b001-7779-495b-8459-d33a7440d7b8.jpg ├── e82e0454-4ece-435e-945f-90bc0d37bf44.png ├── e92d0ebc-7d46-413b-aec1-34a39602f787.png ├── ea2304ce-268b-4238-9486-4d8f8aea8ca4.png ├── ea5f3efe-d5e6-499b-b278-9e898af61257.jpg ├── eb4a7007-d437-4740-865d-672973effe25.png ├── eb859228-c0f2-4bce-910d-d9f76929352b.png ├── ec923dc7-864c-47b0-a411-1f2c48d084de.png ├── ecf8ad5d-5403-48b9-b6e7-f2e20ffe8fca.png ├── ed523051-608f-4c3f-b343-383e2d194470.png ├── ed5522bb-3a60-481c-8654-43e7195a48fe.png ├── ed7b96ac-6428-4bd5-9986-674c54c2a959.png ├── eebdeb57-8efb-4848-9bb6-97512990897c.jpg ├── ef280699-da36-4b38-9735-9b048a3c7fe0.png ├── ef8eab00-1d5e-4d99-a7c2-d6d68ea7fe92.png ├── f0574025-c514-49f5-a591-6d6a71f271f7.jpg ├── f0a31c04-6e26-408c-8395-88f4e2ae928b.jpg ├── f0e35b7a-2948-488a-a5a9-97d3f6b5e2d7.png ├── f1109d04-3c67-48a3-9963-2c475f94e175.jpg ├── f3080f83-6239-459b-8e9c-03b6641f7815.png ├── f3bfe11f-9cba-4ff2-8cc6-629068408a80.jpg ├── f3d3e072-e947-43e9-b999-22385fd569a0.jpg ├── f42443e0-208d-41ea-be44-c7fd97d2e3bf.png ├── f48e2b92-2c2a-48cb-a443-bd313e187a25.jpg ├── f4cdda3e-324c-49b5-8c14-08a3db634b29.png ├── f50a8e52-a683-444c-8e32-63c1890fe84a.jpg ├── f5477abd-c246-4851-89ab-6b1cde2549b1.png ├── f5757d09-88e7-4bbd-8cfb-cecf55604854.png ├── f61b5419-c94a-4df1-8d4d-aed9ae8cc6d5.png ├── f716427a-94f2-4875-9c86-98793cf5dcc3.jpg ├── f76067a5-7d5f-4135-9549-8199c77d8f1c.jpg ├── f7d170a3-e446-4a64-ac2d-cb95028f81a8.png ├── f7ecbb8d-bb8b-4d45-a3b7-f49425d6d83d.jpg ├── f7f7e3e5-7dd4-4173-9999-576b9e2ac0a2.png ├── f8047846-efd4-42be-b6b7-27a7c4998b51.png ├── f87afe72-c2df-4c12-ac03-9b8d581a8af8.jpg ├── f8b16d1e-7363-4544-94d6-4939fdf849dc.png ├── f900f266-a323-42b2-bc43-218fdb8811a8.jpg ├── f94389e9-55b1-4f49-9d37-00ed05900ae0.png ├── f9978fa6-9f49-4a0f-8540-02d269ac448f.png ├── f99ee771-c56f-47fb-9148-c0036695b5fe.jpg ├── f9f2a16b-4843-44d1-9759-c745772e9bcf.jpg ├── f9f9f993-8ece-4da7-b848-af9b438fad76.png ├── fa2273c3-1b5f-48ce-8e8b-441a4116c1c4.jpg ├── fa568fac-ac58-48dd-a9bb-23b3065bf2dc.png ├── faecea49-9974-40db-9821-c8636137df61.jpg ├── fb327611-7e2b-4f2f-9f5b-38592d408f07.png ├── fb44307f-8e98-4ff7-a918-31dacfa564b4.jpg ├── fb546e12-e1fb-4b72-a1fb-8a7f5000dce6.jpg ├── fbe54203-c005-48f0-8883-b05e564a3173.png ├── fc0c6b2d-68c7-4de8-aaaa-97355a4f0472.jpg ├── ff0c019c-6461-467d-a266-0455341fd4f4.png ├── ff396233-1bb1-4e74-8bc2-d7c90146f5dd.png ├── 011f3ef6-d824-4d43-8b2c-36dab8eaaa72-1.png ├── Technology-ComputerNetworking-Internet-ISPs.png └── hashMap_u54C8_u5E0C_u7B97_u6CD5_u4F8B_u56FE.png ├── notes ├── 代码风格规范.md ├── 消息队列.md ├── 系统设计基础.md ├── Docker.md ├── 构建工具.md ├── Git.md ├── 攻击技术.md ├── 集群.md ├── 缓存.md ├── 正则表达式.md └── 代码可读性.md ├── SUMMARY.md └── BOOKLIST.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.txt 3 | -------------------------------------------------------------------------------- /other/README.md: -------------------------------------------------------------------------------- 1 | - 其他人添加的全新内容 2 | - 主页 README 引用的图片 3 | - 微信群描述文件 -------------------------------------------------------------------------------- /pics/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/10.gif -------------------------------------------------------------------------------- /pics/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/11.gif -------------------------------------------------------------------------------- /pics/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7.gif -------------------------------------------------------------------------------- /pics/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/9.gif -------------------------------------------------------------------------------- /pics/PPjwP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/PPjwP.png -------------------------------------------------------------------------------- /pics/flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/flow.png -------------------------------------------------------------------------------- /pics/n2U3N.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/n2U3N.png -------------------------------------------------------------------------------- /pics/tGPV0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/tGPV0.png -------------------------------------------------------------------------------- /other/group.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/group.jpg -------------------------------------------------------------------------------- /other/group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/group.png -------------------------------------------------------------------------------- /pics/pcrypt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/pcrypt.gif -------------------------------------------------------------------------------- /pics/ppt_img.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ppt_img.gif -------------------------------------------------------------------------------- /pics/scrypt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/scrypt.gif -------------------------------------------------------------------------------- /pics/urlnuri.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/urlnuri.jpg -------------------------------------------------------------------------------- /other/10072416.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/10072416.jpg -------------------------------------------------------------------------------- /other/15684156.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/15684156.jpg -------------------------------------------------------------------------------- /other/18458140.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/18458140.jpg -------------------------------------------------------------------------------- /other/21679154.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/21679154.png -------------------------------------------------------------------------------- /other/22954582.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/22954582.jpg -------------------------------------------------------------------------------- /other/7719370.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/7719370.png -------------------------------------------------------------------------------- /other/8018776.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/8018776.jpg -------------------------------------------------------------------------------- /other/计算机网络脑图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/计算机网络脑图.png -------------------------------------------------------------------------------- /pics/0635cbe8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0635cbe8.png -------------------------------------------------------------------------------- /pics/2018040302.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2018040302.jpg -------------------------------------------------------------------------------- /pics/BSD_disk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/BSD_disk.png -------------------------------------------------------------------------------- /pics/Iterator-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/Iterator-1.jpg -------------------------------------------------------------------------------- /pics/JNIFigure1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/JNIFigure1.gif -------------------------------------------------------------------------------- /pics/JVM-Stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/JVM-Stack.png -------------------------------------------------------------------------------- /pics/Semaphore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/Semaphore.png -------------------------------------------------------------------------------- /pics/cookiedata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/cookiedata.png -------------------------------------------------------------------------------- /pics/image005.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/image005.jpg -------------------------------------------------------------------------------- /pics/image007.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/image007.jpg -------------------------------------------------------------------------------- /pics/image008.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/image008.jpg -------------------------------------------------------------------------------- /pics/image009.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/image009.jpg -------------------------------------------------------------------------------- /pics/ProcessState.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ProcessState.png -------------------------------------------------------------------------------- /pics/_u4E0B_u8F7D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/_u4E0B_u8F7D.png -------------------------------------------------------------------------------- /pics/master-slave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/master-slave.png -------------------------------------------------------------------------------- /pics/url_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/url_diagram.png -------------------------------------------------------------------------------- /pics/111521118015898.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/111521118015898.gif -------------------------------------------------------------------------------- /pics/111521118445538.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/111521118445538.gif -------------------------------------------------------------------------------- /pics/111521118483039.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/111521118483039.gif -------------------------------------------------------------------------------- /pics/111521118640738.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/111521118640738.gif -------------------------------------------------------------------------------- /pics/111521119203347.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/111521119203347.gif -------------------------------------------------------------------------------- /pics/111521119368714.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/111521119368714.gif -------------------------------------------------------------------------------- /pics/1492928105791_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1492928105791_3.png -------------------------------------------------------------------------------- /pics/1492928416812_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1492928416812_4.png -------------------------------------------------------------------------------- /pics/1492929000361_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1492929000361_5.png -------------------------------------------------------------------------------- /pics/1492929444818_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1492929444818_6.png -------------------------------------------------------------------------------- /pics/1492929553651_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1492929553651_7.png -------------------------------------------------------------------------------- /pics/1492930243286_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1492930243286_8.png -------------------------------------------------------------------------------- /pics/2017-06-11-ca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2017-06-11-ca.png -------------------------------------------------------------------------------- /pics/600px-Sharedmem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/600px-Sharedmem.jpg -------------------------------------------------------------------------------- /pics/CountdownLatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/CountdownLatch.png -------------------------------------------------------------------------------- /pics/CyclicBarrier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/CyclicBarrier.png -------------------------------------------------------------------------------- /pics/How-HTTPS-Works.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/How-HTTPS-Works.png -------------------------------------------------------------------------------- /pics/mutualssl_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/mutualssl_small.png -------------------------------------------------------------------------------- /pics/ssl-offloading.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ssl-offloading.jpg -------------------------------------------------------------------------------- /other/LogoMakr_0zpEzN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/other/LogoMakr_0zpEzN.png -------------------------------------------------------------------------------- /pics/20150928140509757.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/20150928140509757.png -------------------------------------------------------------------------------- /pics/java-collections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/java-collections.png -------------------------------------------------------------------------------- /pics/java-collections1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/java-collections1.png -------------------------------------------------------------------------------- /pics/linux-filesystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/linux-filesystem.png -------------------------------------------------------------------------------- /pics/monitor-lock-rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/monitor-lock-rule.png -------------------------------------------------------------------------------- /pics/thread-join-rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/thread-join-rule.png -------------------------------------------------------------------------------- /pics/thread-start-rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/thread-start-rule.png -------------------------------------------------------------------------------- /pics/DP-Decorator-java.io.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/DP-Decorator-java.io.png -------------------------------------------------------------------------------- /pics/HTTP1_x_Connections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/HTTP1_x_Connections.png -------------------------------------------------------------------------------- /pics/HowLinkedListWorks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/HowLinkedListWorks.png -------------------------------------------------------------------------------- /pics/master-slave-proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/master-slave-proxy.png -------------------------------------------------------------------------------- /pics/network-of-networks.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/network-of-networks.gif -------------------------------------------------------------------------------- /pics/single-thread-rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/single-thread-rule.png -------------------------------------------------------------------------------- /pics/JVM-runtime-data-area.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/JVM-runtime-data-area.jpg -------------------------------------------------------------------------------- /pics/class_loader_hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/class_loader_hierarchy.png -------------------------------------------------------------------------------- /pics/inode_with_signatures.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/inode_with_signatures.jpg -------------------------------------------------------------------------------- /pics/volatile-variable-rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/volatile-variable-rule.png -------------------------------------------------------------------------------- /pics/2018-05-29-15275543393037.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2018-05-29-15275543393037.jpg -------------------------------------------------------------------------------- /pics/7779232-1e8ed39548081a1f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7779232-1e8ed39548081a1f.png -------------------------------------------------------------------------------- /pics/7779232-96822582feb08651.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7779232-96822582feb08651.png -------------------------------------------------------------------------------- /pics/JNI-Java-Native-Interface.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/JNI-Java-Native-Interface.jpg -------------------------------------------------------------------------------- /pics/MultiNode-SpringSession.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/MultiNode-SpringSession.jpg -------------------------------------------------------------------------------- /pics/MultiNode-StickySessions.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/MultiNode-StickySessions.jpg -------------------------------------------------------------------------------- /pics/HTTP_RequestMessageExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/HTTP_RequestMessageExample.png -------------------------------------------------------------------------------- /pics/HTTP_ResponseMessageExample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/HTTP_ResponseMessageExample.png -------------------------------------------------------------------------------- /pics/2_14_microkernelArchitecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2_14_microkernelArchitecture.jpg -------------------------------------------------------------------------------- /pics/MultiNode-SessionReplication.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/MultiNode-SessionReplication.jpg -------------------------------------------------------------------------------- /pics/docker-filesystems-busyboxrw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/docker-filesystems-busyboxrw.png -------------------------------------------------------------------------------- /pics/76a49594323247f21c9b3a69945445ee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/76a49594323247f21c9b3a69945445ee.png -------------------------------------------------------------------------------- /pics/GUID_Partition_Table_Scheme.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/GUID_Partition_Table_Scheme.svg.png -------------------------------------------------------------------------------- /pics/LOun2W9134NxVugmbJPp15d4LalxC4O.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/LOun2W9134NxVugmbJPp15d4LalxC4O.png -------------------------------------------------------------------------------- /pics/NP4z3i8m38Ntd28NQ4_0KCJ2q044Oez.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/NP4z3i8m38Ntd28NQ4_0KCJ2q044Oez.png -------------------------------------------------------------------------------- /pics/SoWkIImgAStDuU8goIp9ILK8IatCoQn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/SoWkIImgAStDuU8goIp9ILK8IatCoQn.png -------------------------------------------------------------------------------- /pics/SoWkIImgAStDuU8goIp9ILLmB2xEJyv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/SoWkIImgAStDuU8goIp9ILLmB2xEJyv.png -------------------------------------------------------------------------------- /pics/SoWkIImgAStDuU8goIp9ILLmJ4ylIar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/SoWkIImgAStDuU8goIp9ILLmJ4ylIar.png -------------------------------------------------------------------------------- /pics/SoWkIImgAStDuU8goIp9ILLmJyrBBKh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/SoWkIImgAStDuU8goIp9ILLmJyrBBKh.png -------------------------------------------------------------------------------- /pics/SoWkIImgAStDuU8goIp9ILLmpiyjo2_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/SoWkIImgAStDuU8goIp9ILLmpiyjo2_.png -------------------------------------------------------------------------------- /pics/SoWkIImgAStDuUBAp2j9BKfBJ4vLy0G.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/SoWkIImgAStDuUBAp2j9BKfBJ4vLy0G.png -------------------------------------------------------------------------------- /pics/SoWkIImgAStDuUBAp2j9BKfBJ4vLy4q.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/SoWkIImgAStDuUBAp2j9BKfBJ4vLy4q.png -------------------------------------------------------------------------------- /pics/VP4n3i8m34Ntd28NQ4_0KCJ2q044Oez.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/VP4n3i8m34Ntd28NQ4_0KCJ2q044Oez.png -------------------------------------------------------------------------------- /pics/ZnJvbT1jc2RuJnVybD15VkdkdVYyUXZ.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ZnJvbT1jc2RuJnVybD15VkdkdVYyUXZ.jpg -------------------------------------------------------------------------------- /pics/ClienteServidorSockets1521731145260.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ClienteServidorSockets1521731145260.jpg -------------------------------------------------------------------------------- /pics/014fbc4d-d873-4a12-b160-867ddaed9807.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/014fbc4d-d873-4a12-b160-867ddaed9807.jpg -------------------------------------------------------------------------------- /pics/0157d362-98dd-4e51-ac26-00ecb76beb3e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0157d362-98dd-4e51-ac26-00ecb76beb3e.png -------------------------------------------------------------------------------- /pics/026d3cb4-67f7-4a83-884d-8032f57ec446.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/026d3cb4-67f7-4a83-884d-8032f57ec446.png -------------------------------------------------------------------------------- /pics/02986f62-c641-44a8-a55f-983581490e0c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/02986f62-c641-44a8-a55f-983581490e0c.png -------------------------------------------------------------------------------- /pics/037c3a0b-332d-434d-a374-f343ef72c8e1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/037c3a0b-332d-434d-a374-f343ef72c8e1.jpg -------------------------------------------------------------------------------- /pics/03f47940-3843-4b51-9e42-5dcaff44858b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/03f47940-3843-4b51-9e42-5dcaff44858b.jpg -------------------------------------------------------------------------------- /pics/042cf928-3c8e-4815-ae9c-f2780202c68f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/042cf928-3c8e-4815-ae9c-f2780202c68f.png -------------------------------------------------------------------------------- /pics/04f41228-375d-4b7d-bfef-738c5a7c8f07.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/04f41228-375d-4b7d-bfef-738c5a7c8f07.jpg -------------------------------------------------------------------------------- /pics/051e436c-0e46-4c59-8f67-52d89d656182.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/051e436c-0e46-4c59-8f67-52d89d656182.png -------------------------------------------------------------------------------- /pics/05907ab4-42c5-4b5e-9388-6617f6c97bea.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/05907ab4-42c5-4b5e-9388-6617f6c97bea.jpg -------------------------------------------------------------------------------- /pics/061c29ce-e2ed-425a-911e-56fbba1efce3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/061c29ce-e2ed-425a-911e-56fbba1efce3.jpg -------------------------------------------------------------------------------- /pics/061c88c1-572f-424f-b580-9cbce903a3fe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/061c88c1-572f-424f-b580-9cbce903a3fe.png -------------------------------------------------------------------------------- /pics/06976908-98ab-46e9-a632-f0c2760ec46c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/06976908-98ab-46e9-a632-f0c2760ec46c.png -------------------------------------------------------------------------------- /pics/075e1977-7846-4928-96c8-bb5b0268693c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/075e1977-7846-4928-96c8-bb5b0268693c.jpg -------------------------------------------------------------------------------- /pics/07717718-1230-4347-aa18-2041c315e670.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/07717718-1230-4347-aa18-2041c315e670.jpg -------------------------------------------------------------------------------- /pics/07903a31-0fb3-45fc-86f5-26f0b28fa4e7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/07903a31-0fb3-45fc-86f5-26f0b28fa4e7.png -------------------------------------------------------------------------------- /pics/08427d38-8df1-49a1-8990-e0ce5ee36ca2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/08427d38-8df1-49a1-8990-e0ce5ee36ca2.png -------------------------------------------------------------------------------- /pics/08f32fd3-f736-4a67-81ca-295b2a7972f2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/08f32fd3-f736-4a67-81ca-295b2a7972f2.jpg -------------------------------------------------------------------------------- /pics/09b52bcb-88ba-4e36-8244-b375f16ad116.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/09b52bcb-88ba-4e36-8244-b375f16ad116.jpg -------------------------------------------------------------------------------- /pics/09e6e8d4-4d83-4949-b908-6d6b4c2fd064.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/09e6e8d4-4d83-4949-b908-6d6b4c2fd064.png -------------------------------------------------------------------------------- /pics/0a9f4125-b6ab-4e94-a807-fd7070ae726a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0a9f4125-b6ab-4e94-a807-fd7070ae726a.png -------------------------------------------------------------------------------- /pics/0aaf4630-d2a2-4783-b3f7-a2b6a7dfc01b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0aaf4630-d2a2-4783-b3f7-a2b6a7dfc01b.jpg -------------------------------------------------------------------------------- /pics/0b587744-c0a8-46f2-8d72-e8f070d67b4b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0b587744-c0a8-46f2-8d72-e8f070d67b4b.jpg -------------------------------------------------------------------------------- /pics/0c55e11c-d3ce-4cd8-b139-028aea6f40e3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0c55e11c-d3ce-4cd8-b139-028aea6f40e3.png -------------------------------------------------------------------------------- /pics/0df5d84c-e7ca-4e3a-a688-bb8e68894467.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0df5d84c-e7ca-4e3a-a688-bb8e68894467.png -------------------------------------------------------------------------------- /pics/0e34263d-7287-4ffe-a716-37c53d1a2526.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0e34263d-7287-4ffe-a716-37c53d1a2526.png -------------------------------------------------------------------------------- /pics/0ea37ee2-c224-4c79-b895-e131c6805c40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0ea37ee2-c224-4c79-b895-e131c6805c40.png -------------------------------------------------------------------------------- /pics/0ee0f61b-c782-441e-bf34-665650198ae0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0ee0f61b-c782-441e-bf34-665650198ae0.jpg -------------------------------------------------------------------------------- /pics/0f373947-c68f-45b4-a59e-086154745ac5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0f373947-c68f-45b4-a59e-086154745ac5.png -------------------------------------------------------------------------------- /pics/0f754c1d-b5cb-48cd-90e0-4a86034290a1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/0f754c1d-b5cb-48cd-90e0-4a86034290a1.png -------------------------------------------------------------------------------- /pics/107a6a2b-f15b-4cad-bced-b7fb95258c9c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/107a6a2b-f15b-4cad-bced-b7fb95258c9c.png -------------------------------------------------------------------------------- /pics/10bdf7bf-0daa-4a26-b927-f142b3f8e72b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/10bdf7bf-0daa-4a26-b927-f142b3f8e72b.png -------------------------------------------------------------------------------- /pics/10f5e35b-1c71-4717-9e80-47f259702642.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/10f5e35b-1c71-4717-9e80-47f259702642.jpg -------------------------------------------------------------------------------- /pics/11236498-1417-46ce-a1b0-e10054256955.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/11236498-1417-46ce-a1b0-e10054256955.png -------------------------------------------------------------------------------- /pics/1164a71f-413d-494a-9cc8-679fb6a2613d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1164a71f-413d-494a-9cc8-679fb6a2613d.jpg -------------------------------------------------------------------------------- /pics/1202b2d6-9469-4251-bd47-ca6034fb6116.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1202b2d6-9469-4251-bd47-ca6034fb6116.png -------------------------------------------------------------------------------- /pics/123bdf81-1ef5-48a9-a08c-2db97057b4d2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/123bdf81-1ef5-48a9-a08c-2db97057b4d2.png -------------------------------------------------------------------------------- /pics/137c593d-0a9e-47b8-a9e6-b71f540b82dd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/137c593d-0a9e-47b8-a9e6-b71f540b82dd.png -------------------------------------------------------------------------------- /pics/13b0940e-d1d7-4b17-af4f-b70cb0a75e08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/13b0940e-d1d7-4b17-af4f-b70cb0a75e08.png -------------------------------------------------------------------------------- /pics/14cfe8d4-e31b-49e0-ac6a-6f4f7aa06ab6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/14cfe8d4-e31b-49e0-ac6a-6f4f7aa06ab6.png -------------------------------------------------------------------------------- /pics/15313ed8-a520-4799-a300-2b6b36be314f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/15313ed8-a520-4799-a300-2b6b36be314f.jpg -------------------------------------------------------------------------------- /pics/1556770b-8c01-4681-af10-46f1df69202c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1556770b-8c01-4681-af10-46f1df69202c.jpg -------------------------------------------------------------------------------- /pics/1582217a-ed46-4cac-811e-90d13a65163b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1582217a-ed46-4cac-811e-90d13a65163b.png -------------------------------------------------------------------------------- /pics/15b45dc6-27aa-4519-9194-f4acfa2b077f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/15b45dc6-27aa-4519-9194-f4acfa2b077f.jpg -------------------------------------------------------------------------------- /pics/168e893c-e4a0-4ba4-b81f-9d993483abd0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/168e893c-e4a0-4ba4-b81f-9d993483abd0.jpg -------------------------------------------------------------------------------- /pics/17976404-95f5-480e-9cb4-250e6aa1d55f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/17976404-95f5-480e-9cb4-250e6aa1d55f.png -------------------------------------------------------------------------------- /pics/1818e141-8700-4026-99f7-900a545875f5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1818e141-8700-4026-99f7-900a545875f5.png -------------------------------------------------------------------------------- /pics/185b9c49-4c13-4241-a848-fbff85c03a64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/185b9c49-4c13-4241-a848-fbff85c03a64.png -------------------------------------------------------------------------------- /pics/1a231f2a-5c2f-4231-8e0f-915aa5894347.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1a231f2a-5c2f-4231-8e0f-915aa5894347.jpg -------------------------------------------------------------------------------- /pics/1a2f2998-d0da-41c8-8222-1fd95083a66b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1a2f2998-d0da-41c8-8222-1fd95083a66b.png -------------------------------------------------------------------------------- /pics/1a851e90-0d5c-4d4f-ac54-34c20ecfb903.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1a851e90-0d5c-4d4f-ac54-34c20ecfb903.jpg -------------------------------------------------------------------------------- /pics/1a9977e4-2f5c-49a6-aec9-f3027c9f46a7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1a9977e4-2f5c-49a6-aec9-f3027c9f46a7.png -------------------------------------------------------------------------------- /pics/1ab49e39-012b-4383-8284-26570987e3c4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1ab49e39-012b-4383-8284-26570987e3c4.jpg -------------------------------------------------------------------------------- /pics/1b7f180e-7fee-4eaf-8ebb-164b68ae2b29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1b7f180e-7fee-4eaf-8ebb-164b68ae2b29.png -------------------------------------------------------------------------------- /pics/1be8b4b0-cc7a-44d7-9c77-85be37b76f7d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1be8b4b0-cc7a-44d7-9c77-85be37b76f7d.png -------------------------------------------------------------------------------- /pics/1bea398f-17a7-4f67-a90b-9e2d243eaa9a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1bea398f-17a7-4f67-a90b-9e2d243eaa9a.png -------------------------------------------------------------------------------- /pics/1bfa3118-f3cd-4480-a950-cf6d646015db.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1bfa3118-f3cd-4480-a950-cf6d646015db.png -------------------------------------------------------------------------------- /pics/1c4e8185-8153-46b6-bd5a-288b15feeae6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1c4e8185-8153-46b6-bd5a-288b15feeae6.png -------------------------------------------------------------------------------- /pics/1ca52246-c443-48ae-b1f8-1cafc09ec75c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1ca52246-c443-48ae-b1f8-1cafc09ec75c.png -------------------------------------------------------------------------------- /pics/1ee5f0a5-b8df-43b9-95ab-c516c54ec797.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1ee5f0a5-b8df-43b9-95ab-c516c54ec797.jpg -------------------------------------------------------------------------------- /pics/1f039a45-6b91-4f31-a2c2-6c63eb8bdb56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1f039a45-6b91-4f31-a2c2-6c63eb8bdb56.png -------------------------------------------------------------------------------- /pics/1f080e53-4758-406c-bb5f-dbedf89b63ce.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1f080e53-4758-406c-bb5f-dbedf89b63ce.jpg -------------------------------------------------------------------------------- /pics/1f4a7f10-52b2-4bd7-a67d-a9581d66dc62.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1f4a7f10-52b2-4bd7-a67d-a9581d66dc62.jpg -------------------------------------------------------------------------------- /pics/1fc969e4-0e7c-441b-b53c-01950d2f2be5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/1fc969e4-0e7c-441b-b53c-01950d2f2be5.png -------------------------------------------------------------------------------- /pics/2017511e-22f0-4d74-873d-1261b71cf5a4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2017511e-22f0-4d74-873d-1261b71cf5a4.png -------------------------------------------------------------------------------- /pics/207c1801-2335-4b1b-b65c-126a0ba966cb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/207c1801-2335-4b1b-b65c-126a0ba966cb.png -------------------------------------------------------------------------------- /pics/21041ec2-babb-483f-bf47-8b8148eec162.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/21041ec2-babb-483f-bf47-8b8148eec162.png -------------------------------------------------------------------------------- /pics/211c60d4-75ca-4acd-8a4f-171458ed58b4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/211c60d4-75ca-4acd-8a4f-171458ed58b4.jpg -------------------------------------------------------------------------------- /pics/220790c6-4377-4a2e-8686-58398afc8a18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/220790c6-4377-4a2e-8686-58398afc8a18.png -------------------------------------------------------------------------------- /pics/22de0538-7c6e-4365-bd3b-8ce3c5900216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/22de0538-7c6e-4365-bd3b-8ce3c5900216.png -------------------------------------------------------------------------------- /pics/22fda4ae-4dd5-489d-ab10-9ebfdad22ae0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/22fda4ae-4dd5-489d-ab10-9ebfdad22ae0.jpg -------------------------------------------------------------------------------- /pics/23ba890e-e11c-45e2-a20c-64d217f83430.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/23ba890e-e11c-45e2-a20c-64d217f83430.png -------------------------------------------------------------------------------- /pics/245fd2fb-209c-4ad5-bc5e-eb5664966a0e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/245fd2fb-209c-4ad5-bc5e-eb5664966a0e.jpg -------------------------------------------------------------------------------- /pics/249f3bb1-feee-4805-a259-a72699d638ca.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/249f3bb1-feee-4805-a259-a72699d638ca.jpg -------------------------------------------------------------------------------- /pics/25d6d3d4-4726-47b1-a9cb-3316d1ff5dd5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/25d6d3d4-4726-47b1-a9cb-3316d1ff5dd5.png -------------------------------------------------------------------------------- /pics/265a355d-aead-48aa-b455-f33b62fe729f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/265a355d-aead-48aa-b455-f33b62fe729f.png -------------------------------------------------------------------------------- /pics/2719067e-b299-4639-9065-bed6729dbf0b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2719067e-b299-4639-9065-bed6729dbf0b.png -------------------------------------------------------------------------------- /pics/271ce08f-c124-475f-b490-be44fedc6d2e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/271ce08f-c124-475f-b490-be44fedc6d2e.png -------------------------------------------------------------------------------- /pics/2766d04f-7dad-42e4-99d1-60682c9d5c61.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2766d04f-7dad-42e4-99d1-60682c9d5c61.jpg -------------------------------------------------------------------------------- /pics/276c31df-3b28-4ac2-b006-1e80fc86a64f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/276c31df-3b28-4ac2-b006-1e80fc86a64f.jpg -------------------------------------------------------------------------------- /pics/278fe431-af88-4a95-a895-9c3b80117de3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/278fe431-af88-4a95-a895-9c3b80117de3.jpg -------------------------------------------------------------------------------- /pics/27cd6f0c-f581-45da-b8c9-fed026830560.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/27cd6f0c-f581-45da-b8c9-fed026830560.png -------------------------------------------------------------------------------- /pics/27ff9548-edb6-4465-92c8-7e6386e0b185.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/27ff9548-edb6-4465-92c8-7e6386e0b185.png -------------------------------------------------------------------------------- /pics/280f7728-594f-4811-a03a-fa8d32c013da.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/280f7728-594f-4811-a03a-fa8d32c013da.png -------------------------------------------------------------------------------- /pics/2858f8ad-aedb-45a5-a706-e98c96d690fa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2858f8ad-aedb-45a5-a706-e98c96d690fa.jpg -------------------------------------------------------------------------------- /pics/2861e923-4862-4526-881c-15529279d49c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2861e923-4862-4526-881c-15529279d49c.png -------------------------------------------------------------------------------- /pics/292b4a35-4507-4256-84ff-c218f108ee31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/292b4a35-4507-4256-84ff-c218f108ee31.jpg -------------------------------------------------------------------------------- /pics/293d2af9-de1d-403e-bed0-85d029383528.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/293d2af9-de1d-403e-bed0-85d029383528.png -------------------------------------------------------------------------------- /pics/2991c772-fb1c-4051-a9c7-932b68e76bd7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2991c772-fb1c-4051-a9c7-932b68e76bd7.jpg -------------------------------------------------------------------------------- /pics/2a842a14-e4ab-4f37-83fa-f82c206fe426.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2a842a14-e4ab-4f37-83fa-f82c206fe426.png -------------------------------------------------------------------------------- /pics/2a8e1442-2381-4439-a83f-0312c8678b1f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2a8e1442-2381-4439-a83f-0312c8678b1f.png -------------------------------------------------------------------------------- /pics/2ac50b81-d92a-4401-b9ec-f2113ecc3076.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2ac50b81-d92a-4401-b9ec-f2113ecc3076.png -------------------------------------------------------------------------------- /pics/2ad244f5-939c-49fa-9385-69bc688677ab.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2ad244f5-939c-49fa-9385-69bc688677ab.jpg -------------------------------------------------------------------------------- /pics/2bcc58ad-bf7f-485c-89b5-e7cafc211ce2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2bcc58ad-bf7f-485c-89b5-e7cafc211ce2.jpg -------------------------------------------------------------------------------- /pics/2bf2fd8f-5ade-48ba-a2b3-74195ac77c4b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2bf2fd8f-5ade-48ba-a2b3-74195ac77c4b.png -------------------------------------------------------------------------------- /pics/2c4556e4-0751-4377-ab08-e7b89d697ca7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2c4556e4-0751-4377-ab08-e7b89d697ca7.png -------------------------------------------------------------------------------- /pics/2c8a7a87-1bf1-4d66-9ba9-225a1add0a51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2c8a7a87-1bf1-4d66-9ba9-225a1add0a51.png -------------------------------------------------------------------------------- /pics/2d09a847-b854-439c-9198-b29c65810944.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2d09a847-b854-439c-9198-b29c65810944.png -------------------------------------------------------------------------------- /pics/2e6c72f5-3b8e-4e32-b87b-9491322628fe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/2e6c72f5-3b8e-4e32-b87b-9491322628fe.png -------------------------------------------------------------------------------- /pics/30210b86-472d-4574-abb6-b74898cc17a4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/30210b86-472d-4574-abb6-b74898cc17a4.jpg -------------------------------------------------------------------------------- /pics/3086c248-b552-499e-b101-9cffe5c2773e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3086c248-b552-499e-b101-9cffe5c2773e.png -------------------------------------------------------------------------------- /pics/31d99967-1171-448e-8531-bccf5c14cffe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/31d99967-1171-448e-8531-bccf5c14cffe.jpg -------------------------------------------------------------------------------- /pics/323ffd6c-8b54-4f3e-b361-555a6c8bf218.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/323ffd6c-8b54-4f3e-b361-555a6c8bf218.png -------------------------------------------------------------------------------- /pics/32b8374a-e822-4720-af0b-c0f485095ea2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/32b8374a-e822-4720-af0b-c0f485095ea2.jpg -------------------------------------------------------------------------------- /pics/33ac2b23-cb85-4e99-bc41-b7b7199fad1c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/33ac2b23-cb85-4e99-bc41-b7b7199fad1c.png -------------------------------------------------------------------------------- /pics/348bc2db-582e-4aca-9f88-38c40e9a0e69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/348bc2db-582e-4aca-9f88-38c40e9a0e69.png -------------------------------------------------------------------------------- /pics/35650b4b-efa1-49ba-9680-19837027cfc9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/35650b4b-efa1-49ba-9680-19837027cfc9.png -------------------------------------------------------------------------------- /pics/3646544a-cb57-451d-9e03-d3c4f5e4434a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3646544a-cb57-451d-9e03-d3c4f5e4434a.png -------------------------------------------------------------------------------- /pics/37a72755-4890-4b42-9eab-b0084e0c54d9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/37a72755-4890-4b42-9eab-b0084e0c54d9.png -------------------------------------------------------------------------------- /pics/37e79a32-95a9-4503-bdb1-159527e628b8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/37e79a32-95a9-4503-bdb1-159527e628b8.png -------------------------------------------------------------------------------- /pics/386cd64f-7a9d-40e6-8c55-22b90ee2d258.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/386cd64f-7a9d-40e6-8c55-22b90ee2d258.png -------------------------------------------------------------------------------- /pics/390c913b-5f31-444f-bbdb-2b88b688e7ce.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/390c913b-5f31-444f-bbdb-2b88b688e7ce.jpg -------------------------------------------------------------------------------- /pics/3939369b-3a4a-48a0-b9eb-3efae26dd400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3939369b-3a4a-48a0-b9eb-3efae26dd400.png -------------------------------------------------------------------------------- /pics/395a9e83-b1a1-4a1d-b170-d081e7bb5bab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/395a9e83-b1a1-4a1d-b170-d081e7bb5bab.png -------------------------------------------------------------------------------- /pics/396be981-3f2c-4fd9-8101-dbf9c841504b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/396be981-3f2c-4fd9-8101-dbf9c841504b.jpg -------------------------------------------------------------------------------- /pics/39ccb299-ee99-4dd1-b8b4-2f9ec9495cb4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/39ccb299-ee99-4dd1-b8b4-2f9ec9495cb4.png -------------------------------------------------------------------------------- /pics/3b0d1aa8-d0e0-46c2-8fd1-736bf08a11aa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3b0d1aa8-d0e0-46c2-8fd1-736bf08a11aa.jpg -------------------------------------------------------------------------------- /pics/3b49dd67-2c40-4b81-8ad2-7bbb1fe2fcbd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3b49dd67-2c40-4b81-8ad2-7bbb1fe2fcbd.png -------------------------------------------------------------------------------- /pics/3ca58a41-8794-49c1-992e-de5d579a50d1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3ca58a41-8794-49c1-992e-de5d579a50d1.png -------------------------------------------------------------------------------- /pics/3cd630ea-017c-488d-ad1d-732b4efeddf5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3cd630ea-017c-488d-ad1d-732b4efeddf5.png -------------------------------------------------------------------------------- /pics/3d5b828e-5c4d-48d8-a440-281e4a8e1c92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3d5b828e-5c4d-48d8-a440-281e4a8e1c92.png -------------------------------------------------------------------------------- /pics/3f5bba4b-7813-4aea-b578-970c7e3f6bf3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3f5bba4b-7813-4aea-b578-970c7e3f6bf3.jpg -------------------------------------------------------------------------------- /pics/3fb5b255-b791-45b6-8754-325c8741855a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3fb5b255-b791-45b6-8754-325c8741855a.png -------------------------------------------------------------------------------- /pics/3fdfc89d-719e-4d93-b518-29fa612b3b18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3fdfc89d-719e-4d93-b518-29fa612b3b18.png -------------------------------------------------------------------------------- /pics/3ff4f00a-2321-48fd-95f4-ce6001332151.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/3ff4f00a-2321-48fd-95f4-ce6001332151.png -------------------------------------------------------------------------------- /pics/41026c79-dfc1-40f7-85ae-062910fd272b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/41026c79-dfc1-40f7-85ae-062910fd272b.png -------------------------------------------------------------------------------- /pics/41392d76-dd1d-4712-85d9-e8bb46b04a2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/41392d76-dd1d-4712-85d9-e8bb46b04a2d.png -------------------------------------------------------------------------------- /pics/423f2a40-bee1-488e-b460-8e76c48ee560.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/423f2a40-bee1-488e-b460-8e76c48ee560.png -------------------------------------------------------------------------------- /pics/426df589-6f97-4622-b74d-4a81fcb1da8e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/426df589-6f97-4622-b74d-4a81fcb1da8e.png -------------------------------------------------------------------------------- /pics/43f2cafa-3568-4a89-a895-4725666b94a6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/43f2cafa-3568-4a89-a895-4725666b94a6.png -------------------------------------------------------------------------------- /pics/44e4a7ab-215c-41a1-8e34-f55f6c09e517.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/44e4a7ab-215c-41a1-8e34-f55f6c09e517.jpg -------------------------------------------------------------------------------- /pics/44edefb7-4b58-4519-b8ee-4aca01697b78.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/44edefb7-4b58-4519-b8ee-4aca01697b78.jpg -------------------------------------------------------------------------------- /pics/450px-HTTP_persistent_connection.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/450px-HTTP_persistent_connection.svg.png -------------------------------------------------------------------------------- /pics/4583e24f-424b-4d50-8a14-2c38a1827d4a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4583e24f-424b-4d50-8a14-2c38a1827d4a.png -------------------------------------------------------------------------------- /pics/45e0e0bf-386d-4280-a341-a0b9496c7674.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/45e0e0bf-386d-4280-a341-a0b9496c7674.png -------------------------------------------------------------------------------- /pics/4628274c-25b6-4053-97cf-d1239b44c43d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4628274c-25b6-4053-97cf-d1239b44c43d.png -------------------------------------------------------------------------------- /pics/46cec213-3048-4a80-aded-fdd577542801.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/46cec213-3048-4a80-aded-fdd577542801.jpg -------------------------------------------------------------------------------- /pics/46f66e88-e65a-4ad0-a060-3c63fe22947c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/46f66e88-e65a-4ad0-a060-3c63fe22947c.png -------------------------------------------------------------------------------- /pics/47358f87-bc4c-496f-9a90-8d696de94cee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/47358f87-bc4c-496f-9a90-8d696de94cee.png -------------------------------------------------------------------------------- /pics/47d98583-8bb0-45cc-812d-47eefa0a4a40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/47d98583-8bb0-45cc-812d-47eefa0a4a40.jpg -------------------------------------------------------------------------------- /pics/485fdf34-ccf8-4185-97c6-17374ee719a0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/485fdf34-ccf8-4185-97c6-17374ee719a0.png -------------------------------------------------------------------------------- /pics/4885d0bc-1441-460f-bd75-a2088aa7f2d4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4885d0bc-1441-460f-bd75-a2088aa7f2d4.png -------------------------------------------------------------------------------- /pics/48a934ff-a29b-434c-8e1d-8c8ec20cb91d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/48a934ff-a29b-434c-8e1d-8c8ec20cb91d.png -------------------------------------------------------------------------------- /pics/48f8f98e-8dfd-450d-8b5b-df4688f0d377.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/48f8f98e-8dfd-450d-8b5b-df4688f0d377.jpg -------------------------------------------------------------------------------- /pics/49495c95-52e5-4c9a-b27b-92cf235ff5ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/49495c95-52e5-4c9a-b27b-92cf235ff5ec.png -------------------------------------------------------------------------------- /pics/49d6de7b-0d0d-425c-9e49-a1559dc23b10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/49d6de7b-0d0d-425c-9e49-a1559dc23b10.png -------------------------------------------------------------------------------- /pics/4bb7ed45-ec14-4d31-9da4-94024d9d3b05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4bb7ed45-ec14-4d31-9da4-94024d9d3b05.png -------------------------------------------------------------------------------- /pics/4cf711a8-7ab2-4152-b85c-d5c226733807.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4cf711a8-7ab2-4152-b85c-d5c226733807.png -------------------------------------------------------------------------------- /pics/4d741402-344d-4b7c-be01-e57184bcad0e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4d741402-344d-4b7c-be01-e57184bcad0e.png -------------------------------------------------------------------------------- /pics/4d930e22-f493-49ae-8dff-ea21cd6895dc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4d930e22-f493-49ae-8dff-ea21cd6895dc.png -------------------------------------------------------------------------------- /pics/4dc08713-f6fe-424c-a24c-ad5a993a941d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4dc08713-f6fe-424c-a24c-ad5a993a941d.png -------------------------------------------------------------------------------- /pics/4e2485e4-34bd-4967-9f02-0c093b797aaa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4e2485e4-34bd-4967-9f02-0c093b797aaa.png -------------------------------------------------------------------------------- /pics/4e760981-a0c5-4dbf-9fbf-ce963e0629fb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4e760981-a0c5-4dbf-9fbf-ce963e0629fb.png -------------------------------------------------------------------------------- /pics/4f48e806-f90b-4c09-a55f-ac0cd641c047.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4f48e806-f90b-4c09-a55f-ac0cd641c047.png -------------------------------------------------------------------------------- /pics/4fc032e0-ac6f-4b42-9182-ee104a25e7a1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4fc032e0-ac6f-4b42-9182-ee104a25e7a1.png -------------------------------------------------------------------------------- /pics/4ff355cf-9a7f-4468-af43-e5b02038facc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/4ff355cf-9a7f-4468-af43-e5b02038facc.jpg -------------------------------------------------------------------------------- /pics/50831a6f-2777-46ea-a571-29f23c85cc21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/50831a6f-2777-46ea-a571-29f23c85cc21.jpg -------------------------------------------------------------------------------- /pics/50d38e84-238f-4081-8876-14ef6d7938b5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/50d38e84-238f-4081-8876-14ef6d7938b5.jpg -------------------------------------------------------------------------------- /pics/5158bc2f-83a6-4351-817e-c9b07f955d76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5158bc2f-83a6-4351-817e-c9b07f955d76.png -------------------------------------------------------------------------------- /pics/518f16f2-a9f7-499a-98e1-f1dbb37b5a9a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/518f16f2-a9f7-499a-98e1-f1dbb37b5a9a.png -------------------------------------------------------------------------------- /pics/51e2ed95-65b8-4ae9-8af3-65602d452a25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/51e2ed95-65b8-4ae9-8af3-65602d452a25.jpg -------------------------------------------------------------------------------- /pics/51fb761d-8ce0-4472-92ff-2f227ac7888a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/51fb761d-8ce0-4472-92ff-2f227ac7888a.png -------------------------------------------------------------------------------- /pics/5292faa6-0141-4638-bf0f-bb95b081dcba.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5292faa6-0141-4638-bf0f-bb95b081dcba.jpg -------------------------------------------------------------------------------- /pics/52e1af6f-3a7a-4bee-aa8f-fcb5dacebe40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/52e1af6f-3a7a-4bee-aa8f-fcb5dacebe40.jpg -------------------------------------------------------------------------------- /pics/5341d726-ffde-4d2a-a000-46597bcc9c5a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5341d726-ffde-4d2a-a000-46597bcc9c5a.png -------------------------------------------------------------------------------- /pics/5359cbf5-5a79-4874-9b17-f23c53c2cb80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5359cbf5-5a79-4874-9b17-f23c53c2cb80.jpg -------------------------------------------------------------------------------- /pics/536c6dfd-305a-4b95-b12c-28ca5e8aa043.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/536c6dfd-305a-4b95-b12c-28ca5e8aa043.png -------------------------------------------------------------------------------- /pics/53cd9ade-b0a6-4399-b4de-7f1fbd06cdfb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/53cd9ade-b0a6-4399-b4de-7f1fbd06cdfb.png -------------------------------------------------------------------------------- /pics/540631a4-6018-40a5-aed7-081e2eeeaeea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/540631a4-6018-40a5-aed7-081e2eeeaeea.png -------------------------------------------------------------------------------- /pics/54cb3f21-485b-4159-8bf5-dcde1c4d4c36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/54cb3f21-485b-4159-8bf5-dcde1c4d4c36.png -------------------------------------------------------------------------------- /pics/54f1e052-0596-4b5e-833c-e80d75bf3f9b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/54f1e052-0596-4b5e-833c-e80d75bf3f9b.png -------------------------------------------------------------------------------- /pics/55dc4e84-573d-4c13-a765-52ed1dd251f9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/55dc4e84-573d-4c13-a765-52ed1dd251f9.png -------------------------------------------------------------------------------- /pics/562f2844-d77c-40e0-887a-28a7128abd42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/562f2844-d77c-40e0-887a-28a7128abd42.png -------------------------------------------------------------------------------- /pics/58e57a21-6b6b-40b6-af85-956dd4e0f55a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/58e57a21-6b6b-40b6-af85-956dd4e0f55a.jpg -------------------------------------------------------------------------------- /pics/5930aeb8-847d-4e9f-a168-9334d7dec744.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5930aeb8-847d-4e9f-a168-9334d7dec744.png -------------------------------------------------------------------------------- /pics/5942debd-fc00-477a-b390-7c5692cc8070.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5942debd-fc00-477a-b390-7c5692cc8070.jpg -------------------------------------------------------------------------------- /pics/5999e5de-7c16-4b52-b3aa-6dc7b58c7894.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5999e5de-7c16-4b52-b3aa-6dc7b58c7894.png -------------------------------------------------------------------------------- /pics/5aa82b89-f266-44da-887d-18f31f01d8ef.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5aa82b89-f266-44da-887d-18f31f01d8ef.png -------------------------------------------------------------------------------- /pics/5aac64d3-2c7b-4f32-9e9a-1df2186f588b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5aac64d3-2c7b-4f32-9e9a-1df2186f588b.png -------------------------------------------------------------------------------- /pics/5acf7550-86c5-4c5b-b912-8ce70ef9c34e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5acf7550-86c5-4c5b-b912-8ce70ef9c34e.png -------------------------------------------------------------------------------- /pics/5b910141-08b6-442d-a4bc-a1608458c636.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5b910141-08b6-442d-a4bc-a1608458c636.png -------------------------------------------------------------------------------- /pics/5c638d59-d4ae-4ba4-ad44-80bdc30f38dd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5c638d59-d4ae-4ba4-ad44-80bdc30f38dd.jpg -------------------------------------------------------------------------------- /pics/5d4a5181-65fb-4bf2-a9c6-899cab534b44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5d4a5181-65fb-4bf2-a9c6-899cab534b44.png -------------------------------------------------------------------------------- /pics/5e8d3c04-d93b-48a7-875e-41ababed00e0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5e8d3c04-d93b-48a7-875e-41ababed00e0.jpg -------------------------------------------------------------------------------- /pics/5e9b10f3-9504-4483-9667-d4770adebf9f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5e9b10f3-9504-4483-9667-d4770adebf9f.png -------------------------------------------------------------------------------- /pics/5ed71283-a070-4b21-85ae-f2cbfd6ba6e1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5ed71283-a070-4b21-85ae-f2cbfd6ba6e1.jpg -------------------------------------------------------------------------------- /pics/5f5ef0b6-98ea-497c-a007-f6c55288eab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5f5ef0b6-98ea-497c-a007-f6c55288eab1.png -------------------------------------------------------------------------------- /pics/5f96e565-0693-47df-80f1-29e4271057b7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/5f96e565-0693-47df-80f1-29e4271057b7.png -------------------------------------------------------------------------------- /pics/600e9c75-5033-4dad-ae2b-930957db638e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/600e9c75-5033-4dad-ae2b-930957db638e.png -------------------------------------------------------------------------------- /pics/6019b2db-bc3e-4408-b6d8-96025f4481d6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/6019b2db-bc3e-4408-b6d8-96025f4481d6.png -------------------------------------------------------------------------------- /pics/61942711-45a0-4e11-bbc9-434e31436f33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/61942711-45a0-4e11-bbc9-434e31436f33.png -------------------------------------------------------------------------------- /pics/62e0dd4f-44c3-43ee-bb6e-fedb9e068519.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/62e0dd4f-44c3-43ee-bb6e-fedb9e068519.png -------------------------------------------------------------------------------- /pics/62e77997-6957-4b68-8d12-bfd609bb2c68.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/62e77997-6957-4b68-8d12-bfd609bb2c68.jpg -------------------------------------------------------------------------------- /pics/63c2909f-0c5f-496f-9fe5-ee9176b31aba.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/63c2909f-0c5f-496f-9fe5-ee9176b31aba.jpg -------------------------------------------------------------------------------- /pics/63cd5b50-d6d8-4df6-8912-ef4a1dd5ba13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/63cd5b50-d6d8-4df6-8912-ef4a1dd5ba13.jpg -------------------------------------------------------------------------------- /pics/6539b9a4-2b24-4d10-8c94-2eb5aba1e296.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/6539b9a4-2b24-4d10-8c94-2eb5aba1e296.png -------------------------------------------------------------------------------- /pics/654acfed-a6a5-4fc7-8f40-3fdcae57bae8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/654acfed-a6a5-4fc7-8f40-3fdcae57bae8.jpg -------------------------------------------------------------------------------- /pics/658fc5e7-79c0-4247-9445-d69bf194c539.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/658fc5e7-79c0-4247-9445-d69bf194c539.png -------------------------------------------------------------------------------- /pics/66192382-558b-4b05-a35d-ac4a2b1a9811.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/66192382-558b-4b05-a35d-ac4a2b1a9811.jpg -------------------------------------------------------------------------------- /pics/66402828-fb2b-418f-83f6-82153491bcfe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/66402828-fb2b-418f-83f6-82153491bcfe.jpg -------------------------------------------------------------------------------- /pics/6729baa0-57d7-4817-b3aa-518cbccf824c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/6729baa0-57d7-4817-b3aa-518cbccf824c.jpg -------------------------------------------------------------------------------- /pics/67bf5487-c45d-49b6-b9c0-a058d8c68902.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/67bf5487-c45d-49b6-b9c0-a058d8c68902.png -------------------------------------------------------------------------------- /pics/685a692f-8f76-4cac-baac-b68e2df9a30f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/685a692f-8f76-4cac-baac-b68e2df9a30f.jpg -------------------------------------------------------------------------------- /pics/68778c1b-15ab-4826-99c0-3b4fd38cb9e9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/68778c1b-15ab-4826-99c0-3b4fd38cb9e9.png -------------------------------------------------------------------------------- /pics/688dacfe-1057-412f-b3a1-86abb5b0f914.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/688dacfe-1057-412f-b3a1-86abb5b0f914.png -------------------------------------------------------------------------------- /pics/68b110b9-76c6-4ee2-b541-4145e65adb3e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/68b110b9-76c6-4ee2-b541-4145e65adb3e.jpg -------------------------------------------------------------------------------- /pics/691f11eb-31a7-46be-9de1-61f433c4b3c7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/691f11eb-31a7-46be-9de1-61f433c4b3c7.png -------------------------------------------------------------------------------- /pics/699b4f96-d63f-46ea-a581-2b3d95eceb6a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/699b4f96-d63f-46ea-a581-2b3d95eceb6a.jpg -------------------------------------------------------------------------------- /pics/69f16984-a66f-4288-82e4-79b4aa43e835.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/69f16984-a66f-4288-82e4-79b4aa43e835.jpg -------------------------------------------------------------------------------- /pics/6c0f4afb-20ab-49fd-837d-8144f4e38bfd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/6c0f4afb-20ab-49fd-837d-8144f4e38bfd.png -------------------------------------------------------------------------------- /pics/6f4abf41-3728-4a6b-9b94-85eed7ca8163.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/6f4abf41-3728-4a6b-9b94-85eed7ca8163.png -------------------------------------------------------------------------------- /pics/71363383-2d06-4c63-8b72-c01c2186707d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/71363383-2d06-4c63-8b72-c01c2186707d.png -------------------------------------------------------------------------------- /pics/71f61bc3-582d-4c27-8bdd-dc7fb135bf8f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/71f61bc3-582d-4c27-8bdd-dc7fb135bf8f.png -------------------------------------------------------------------------------- /pics/7299afd2-9114-44e6-9d5e-4025d0b2a541.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7299afd2-9114-44e6-9d5e-4025d0b2a541.png -------------------------------------------------------------------------------- /pics/72f0ff69-138d-4e54-b7ac-ebe025d978dc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/72f0ff69-138d-4e54-b7ac-ebe025d978dc.png -------------------------------------------------------------------------------- /pics/72fe492e-f1cb-4cfc-92f8-412fb3ae6fec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/72fe492e-f1cb-4cfc-92f8-412fb3ae6fec.png -------------------------------------------------------------------------------- /pics/73b73189-9e95-47e5-91d0-9378b8462e15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/73b73189-9e95-47e5-91d0-9378b8462e15.png -------------------------------------------------------------------------------- /pics/766aedd0-1b00-4065-aa2b-7d31138df84f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/766aedd0-1b00-4065-aa2b-7d31138df84f.png -------------------------------------------------------------------------------- /pics/76a25fc8-a579-4d7c-974b-7640b57fbf39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/76a25fc8-a579-4d7c-974b-7640b57fbf39.jpg -------------------------------------------------------------------------------- /pics/76b48b4c-8999-4967-893b-832602e73285.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/76b48b4c-8999-4967-893b-832602e73285.png -------------------------------------------------------------------------------- /pics/76dc7769-1aac-4888-9bea-064f1caa8e77.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/76dc7769-1aac-4888-9bea-064f1caa8e77.jpg -------------------------------------------------------------------------------- /pics/77f81379-3987-4036-8d7c-93a4dcf7b05d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/77f81379-3987-4036-8d7c-93a4dcf7b05d.jpg -------------------------------------------------------------------------------- /pics/79076335-cfae-4fe6-97b9-62e8eebbf2b9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/79076335-cfae-4fe6-97b9-62e8eebbf2b9.png -------------------------------------------------------------------------------- /pics/794239e3-4baf-4aad-92df-f02f59b2a6fe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/794239e3-4baf-4aad-92df-f02f59b2a6fe.png -------------------------------------------------------------------------------- /pics/79b12431-6d9d-4a7d-985b-1b79bc5bf5fb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/79b12431-6d9d-4a7d-985b-1b79bc5bf5fb.png -------------------------------------------------------------------------------- /pics/7a29acce-f243-4914-9f00-f2988c528412.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7a29acce-f243-4914-9f00-f2988c528412.jpg -------------------------------------------------------------------------------- /pics/7a3c6a30-c735-4edb-8115-337288a4f0f2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7a3c6a30-c735-4edb-8115-337288a4f0f2.jpg -------------------------------------------------------------------------------- /pics/7ab8ca28-2a41-4adf-9502-cc0a21e63b51.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7ab8ca28-2a41-4adf-9502-cc0a21e63b51.jpg -------------------------------------------------------------------------------- /pics/7b038838-c75b-4538-ae84-6299386704e5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7b038838-c75b-4538-ae84-6299386704e5.jpg -------------------------------------------------------------------------------- /pics/7b281b1e-0595-402b-ae35-8c91084c33c1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7b281b1e-0595-402b-ae35-8c91084c33c1.png -------------------------------------------------------------------------------- /pics/7b3efa99-d306-4982-8cfb-e7153c33aab4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7b3efa99-d306-4982-8cfb-e7153c33aab4.png -------------------------------------------------------------------------------- /pics/7b48448f-cbe3-4287-9041-f56566b9d0b4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7b48448f-cbe3-4287-9041-f56566b9d0b4.png -------------------------------------------------------------------------------- /pics/7b68b142-9489-44f6-87b0-4cb5c6431e63.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7b68b142-9489-44f6-87b0-4cb5c6431e63.jpg -------------------------------------------------------------------------------- /pics/7bd202a7-93d4-4f3a-a878-af68ae25539a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7bd202a7-93d4-4f3a-a878-af68ae25539a.png -------------------------------------------------------------------------------- /pics/7be0abf9-687c-4451-becd-626b0be7ec22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7be0abf9-687c-4451-becd-626b0be7ec22.jpg -------------------------------------------------------------------------------- /pics/7c54de21-e2ff-402e-bc42-4037de1c1592.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7c54de21-e2ff-402e-bc42-4037de1c1592.png -------------------------------------------------------------------------------- /pics/7c98e1b6-c446-4cde-8513-5c11b9f52aea.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7c98e1b6-c446-4cde-8513-5c11b9f52aea.jpg -------------------------------------------------------------------------------- /pics/7e873b60-44dc-4911-b080-defd5b8f0b49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7e873b60-44dc-4911-b080-defd5b8f0b49.png -------------------------------------------------------------------------------- /pics/7ec9d619-fa60-4a2b-95aa-bf1a62aad408.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7ec9d619-fa60-4a2b-95aa-bf1a62aad408.jpg -------------------------------------------------------------------------------- /pics/7f38a583-2f2e-4738-97af-510e6fb403a7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7f38a583-2f2e-4738-97af-510e6fb403a7.png -------------------------------------------------------------------------------- /pics/7f642a65-b167-4c8f-b382-8322c6322b2c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7f642a65-b167-4c8f-b382-8322c6322b2c.jpg -------------------------------------------------------------------------------- /pics/7fffa4b8-b36d-471f-ad0c-a88ee763bb76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/7fffa4b8-b36d-471f-ad0c-a88ee763bb76.png -------------------------------------------------------------------------------- /pics/8006a450-6c2f-498c-a928-c927f758b1d0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8006a450-6c2f-498c-a928-c927f758b1d0.png -------------------------------------------------------------------------------- /pics/80804f52-8815-4096-b506-48eef3eed5c6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/80804f52-8815-4096-b506-48eef3eed5c6.png -------------------------------------------------------------------------------- /pics/81538cd5-1bcf-4e31-86e5-e198df1e013b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/81538cd5-1bcf-4e31-86e5-e198df1e013b.jpg -------------------------------------------------------------------------------- /pics/8229e8e7-a183-4d29-94e6-e8d8537c6ce5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8229e8e7-a183-4d29-94e6-e8d8537c6ce5.png -------------------------------------------------------------------------------- /pics/823cdab7-3779-4e3a-a951-dc2d154e0ee6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/823cdab7-3779-4e3a-a951-dc2d154e0ee6.jpg -------------------------------------------------------------------------------- /pics/82cfda3b-b53b-4c89-9fdb-26dd2db0cd02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/82cfda3b-b53b-4c89-9fdb-26dd2db0cd02.jpg -------------------------------------------------------------------------------- /pics/83185315-793a-453a-a927-5e8d92b5c0ef.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/83185315-793a-453a-a927-5e8d92b5c0ef.jpg -------------------------------------------------------------------------------- /pics/836a4eaf-4798-4e48-b52a-a3dab9435ace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/836a4eaf-4798-4e48-b52a-a3dab9435ace.png -------------------------------------------------------------------------------- /pics/8433fbb2-c35c-45ef-831d-e3ca42aebd51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8433fbb2-c35c-45ef-831d-e3ca42aebd51.png -------------------------------------------------------------------------------- /pics/85583359-1b45-45f2-9811-4f7bb9a64db7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/85583359-1b45-45f2-9811-4f7bb9a64db7.jpg -------------------------------------------------------------------------------- /pics/8587132a-021d-4f1f-a8ec-5a9daa7157a7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8587132a-021d-4f1f-a8ec-5a9daa7157a7.png -------------------------------------------------------------------------------- /pics/85c05fb1-5546-4c50-9221-21f231cdc8c5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/85c05fb1-5546-4c50-9221-21f231cdc8c5.jpg -------------------------------------------------------------------------------- /pics/864bfa7d-1149-420c-a752-f9b3d4e782ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/864bfa7d-1149-420c-a752-f9b3d4e782ec.png -------------------------------------------------------------------------------- /pics/8668a3e1-c9c7-4fcb-98b2-a96a5d841579.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8668a3e1-c9c7-4fcb-98b2-a96a5d841579.png -------------------------------------------------------------------------------- /pics/867e93eb-3161-4f39-b2d2-c0cd3788e194.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/867e93eb-3161-4f39-b2d2-c0cd3788e194.png -------------------------------------------------------------------------------- /pics/86e6a91d-a285-447a-9345-c5484b8d0c47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/86e6a91d-a285-447a-9345-c5484b8d0c47.png -------------------------------------------------------------------------------- /pics/88ff46b3-028a-4dbb-a572-1f062b8b96d3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/88ff46b3-028a-4dbb-a572-1f062b8b96d3.png -------------------------------------------------------------------------------- /pics/897503d0-59e3-4752-903d-529fbdb72fee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/897503d0-59e3-4752-903d-529fbdb72fee.jpg -------------------------------------------------------------------------------- /pics/8a4c6ad4-a816-47d1-b93f-7ca4f78ab67a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8a4c6ad4-a816-47d1-b93f-7ca4f78ab67a.png -------------------------------------------------------------------------------- /pics/8adb2591-d3f1-4632-84cb-823fb9c5eb09.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8adb2591-d3f1-4632-84cb-823fb9c5eb09.jpg -------------------------------------------------------------------------------- /pics/8ae4550b-f0cb-4e4d-9e2b-c550538bf230.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8ae4550b-f0cb-4e4d-9e2b-c550538bf230.png -------------------------------------------------------------------------------- /pics/8af348d0-4d72-4f76-b56c-0a440ed4673d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8af348d0-4d72-4f76-b56c-0a440ed4673d.png -------------------------------------------------------------------------------- /pics/8b335d94-c1ca-42e1-ad48-bb179d28a4f1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8b335d94-c1ca-42e1-ad48-bb179d28a4f1.jpg -------------------------------------------------------------------------------- /pics/8b798007-e0fb-420c-b981-ead215692417.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8b798007-e0fb-420c-b981-ead215692417.jpg -------------------------------------------------------------------------------- /pics/8c0b3ae1-1087-46f4-8637-8d46b4ae659c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8c0b3ae1-1087-46f4-8637-8d46b4ae659c.png -------------------------------------------------------------------------------- /pics/8c662999-c16c-481c-9f40-1fdba5bc9167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8c662999-c16c-481c-9f40-1fdba5bc9167.png -------------------------------------------------------------------------------- /pics/8cc671f0-7134-44b1-a7b5-6d24fe55e1c1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8cc671f0-7134-44b1-a7b5-6d24fe55e1c1.jpg -------------------------------------------------------------------------------- /pics/8dfb4cc9-26da-45e7-b820-4576fa1cbb0e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8dfb4cc9-26da-45e7-b820-4576fa1cbb0e.png -------------------------------------------------------------------------------- /pics/8f0cc500-5994-4c7a-91a9-62885d658662.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8f0cc500-5994-4c7a-91a9-62885d658662.png -------------------------------------------------------------------------------- /pics/8f3b9519-d705-48fe-87ad-2e4052fc81d2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8f3b9519-d705-48fe-87ad-2e4052fc81d2.png -------------------------------------------------------------------------------- /pics/8f64e9c5-7682-4feb-9312-dea09514e160.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8f64e9c5-7682-4feb-9312-dea09514e160.jpg -------------------------------------------------------------------------------- /pics/8f6f9dc9-9ecd-47c8-b50e-2814f0219056.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8f6f9dc9-9ecd-47c8-b50e-2814f0219056.png -------------------------------------------------------------------------------- /pics/8fe838e3-ef77-4f63-bf45-417b6bc5c6bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/8fe838e3-ef77-4f63-bf45-417b6bc5c6bb.png -------------------------------------------------------------------------------- /pics/902b83ab-8054-4bd2-898f-9a4a0fe52830.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/902b83ab-8054-4bd2-898f-9a4a0fe52830.jpg -------------------------------------------------------------------------------- /pics/902ef59f-7bcb-45a1-a80a-2f7afaa03629.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/902ef59f-7bcb-45a1-a80a-2f7afaa03629.jpg -------------------------------------------------------------------------------- /pics/910f613f-514f-4534-87dd-9b4699d59d31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/910f613f-514f-4534-87dd-9b4699d59d31.png -------------------------------------------------------------------------------- /pics/9110c1a0-8a54-4145-a814-2477d0128114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/9110c1a0-8a54-4145-a814-2477d0128114.png -------------------------------------------------------------------------------- /pics/91ef04e4-923a-4277-99c0-6be4ce81e5ac.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/91ef04e4-923a-4277-99c0-6be4ce81e5ac.jpg -------------------------------------------------------------------------------- /pics/920c034c-c212-4f79-9ddb-84e4bb6cd088.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/920c034c-c212-4f79-9ddb-84e4bb6cd088.png -------------------------------------------------------------------------------- /pics/924914c0-660c-4e4a-bbc0-1df1146e7516.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/924914c0-660c-4e4a-bbc0-1df1146e7516.jpg -------------------------------------------------------------------------------- /pics/926c7438-c5e1-4b94-840a-dcb24ff1dafe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/926c7438-c5e1-4b94-840a-dcb24ff1dafe.png -------------------------------------------------------------------------------- /pics/92ad9bae-7d02-43ba-8115-a9d6f530ca28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/92ad9bae-7d02-43ba-8115-a9d6f530ca28.png -------------------------------------------------------------------------------- /pics/94589319-975f-490b-8bae-90b3a4953559.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/94589319-975f-490b-8bae-90b3a4953559.png -------------------------------------------------------------------------------- /pics/952afa9a-458b-44ce-bba9-463e60162945.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/952afa9a-458b-44ce-bba9-463e60162945.png -------------------------------------------------------------------------------- /pics/952e06bd-5a65-4cab-82e4-dd1536462f38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/952e06bd-5a65-4cab-82e4-dd1536462f38.png -------------------------------------------------------------------------------- /pics/955af054-8872-4569-82e7-2e10b66bc38e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/955af054-8872-4569-82e7-2e10b66bc38e.png -------------------------------------------------------------------------------- /pics/96b63e13-e2d8-4ddb-9aa1-a38959ca96e5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/96b63e13-e2d8-4ddb-9aa1-a38959ca96e5.jpg -------------------------------------------------------------------------------- /pics/992faced-afcf-414d-b801-9c16d6570fec.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/992faced-afcf-414d-b801-9c16d6570fec.jpg -------------------------------------------------------------------------------- /pics/9b829410-86c4-40aa-ba8d-9e8e26c0eeb8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/9b829410-86c4-40aa-ba8d-9e8e26c0eeb8.jpg -------------------------------------------------------------------------------- /pics/9b838aee-0996-44a5-9b0f-3d1e3e2f5100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/9b838aee-0996-44a5-9b0f-3d1e3e2f5100.png -------------------------------------------------------------------------------- /pics/9bbddeeb-e939-41f0-8e8e-2b1a0aa7e0a7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/9bbddeeb-e939-41f0-8e8e-2b1a0aa7e0a7.png -------------------------------------------------------------------------------- /pics/9cd0ae20-4fb5-4017-a000-f7d3a0eb3529.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/9cd0ae20-4fb5-4017-a000-f7d3a0eb3529.png -------------------------------------------------------------------------------- /pics/9d0a637c-6a8f-4f5a-99b9-fdcfa26793ff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/9d0a637c-6a8f-4f5a-99b9-fdcfa26793ff.png -------------------------------------------------------------------------------- /pics/9d549816-60b7-4899-9877-23b01503ab13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/9d549816-60b7-4899-9877-23b01503ab13.png -------------------------------------------------------------------------------- /pics/9e80f75a-b12b-4344-80c8-1f9ccc2d5246.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/9e80f75a-b12b-4344-80c8-1f9ccc2d5246.jpg -------------------------------------------------------------------------------- /pics/9ea86eb5-000a-4281-b948-7b567bd6f1d8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/9ea86eb5-000a-4281-b948-7b567bd6f1d8.png -------------------------------------------------------------------------------- /pics/a01d1516-8168-461a-a24b-620b9cfc40f4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a01d1516-8168-461a-a24b-620b9cfc40f4.png -------------------------------------------------------------------------------- /pics/a0df8edc-581b-4977-95c2-d7025795b899.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a0df8edc-581b-4977-95c2-d7025795b899.png -------------------------------------------------------------------------------- /pics/a1198642-9159-4d88-8aec-c3b04e7a2563.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a1198642-9159-4d88-8aec-c3b04e7a2563.jpg -------------------------------------------------------------------------------- /pics/a2d13178-f1ef-4811-a240-1fe95b55b1eb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a2d13178-f1ef-4811-a240-1fe95b55b1eb.png -------------------------------------------------------------------------------- /pics/a314bb79-5b18-4e63-a976-3448bffa6f1b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a314bb79-5b18-4e63-a976-3448bffa6f1b.png -------------------------------------------------------------------------------- /pics/a3253deb-8d21-40a1-aae4-7d178e4aa319.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a3253deb-8d21-40a1-aae4-7d178e4aa319.jpg -------------------------------------------------------------------------------- /pics/a3da4342-078b-43e2-b748-7e71bec50dc4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a3da4342-078b-43e2-b748-7e71bec50dc4.png -------------------------------------------------------------------------------- /pics/a3f34241-bb80-4879-8ec9-dff2d81b514e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a3f34241-bb80-4879-8ec9-dff2d81b514e.jpg -------------------------------------------------------------------------------- /pics/a40661e4-1a71-46d2-a158-ff36f7fc3331.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a40661e4-1a71-46d2-a158-ff36f7fc3331.png -------------------------------------------------------------------------------- /pics/a4248c4b-6c1d-4fb8-a557-86da92d3a294.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a4248c4b-6c1d-4fb8-a557-86da92d3a294.jpg -------------------------------------------------------------------------------- /pics/a4b162e5-db2a-4a27-b213-1fe481c5a06a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a4b162e5-db2a-4a27-b213-1fe481c5a06a.png -------------------------------------------------------------------------------- /pics/a4c17d43-fa5e-4935-b74e-147e7f7e782c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a4c17d43-fa5e-4935-b74e-147e7f7e782c.png -------------------------------------------------------------------------------- /pics/a57a6fc8-c5e9-456c-80ff-a5139dda4b6e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a57a6fc8-c5e9-456c-80ff-a5139dda4b6e.png -------------------------------------------------------------------------------- /pics/a58e294a-615d-4ea0-9fbf-064a6daec4b2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a58e294a-615d-4ea0-9fbf-064a6daec4b2.png -------------------------------------------------------------------------------- /pics/a6026bb4-3daf-439f-b1ec-a5a24e19d2fb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a6026bb4-3daf-439f-b1ec-a5a24e19d2fb.jpg -------------------------------------------------------------------------------- /pics/a6ac2b08-3861-4e85-baa8-382287bfee9f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a6ac2b08-3861-4e85-baa8-382287bfee9f.png -------------------------------------------------------------------------------- /pics/a6c20f60-5eba-427d-9413-352ada4b40fe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a6c20f60-5eba-427d-9413-352ada4b40fe.png -------------------------------------------------------------------------------- /pics/a74b70ac-323a-4b31-b4d5-90569b8a944b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a74b70ac-323a-4b31-b4d5-90569b8a944b.png -------------------------------------------------------------------------------- /pics/a9077f06-7584-4f2b-8c20-3a8e46928820.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/a9077f06-7584-4f2b-8c20-3a8e46928820.jpg -------------------------------------------------------------------------------- /pics/aa29cc88-7256-4399-8c7f-3cf4a6489559.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/aa29cc88-7256-4399-8c7f-3cf4a6489559.png -------------------------------------------------------------------------------- /pics/aa42f9c6-ad7a-48f4-8e8b-f3b6de3feaec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/aa42f9c6-ad7a-48f4-8e8b-f3b6de3feaec.png -------------------------------------------------------------------------------- /pics/aa844ff0-cd16-4478-b415-da071b615a17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/aa844ff0-cd16-4478-b415-da071b615a17.jpg -------------------------------------------------------------------------------- /pics/ab77240d-7338-4547-9183-00215e7220ec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ab77240d-7338-4547-9183-00215e7220ec.png -------------------------------------------------------------------------------- /pics/abb3e0d1-c1bd-45d0-8190-73c74a9f6679.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/abb3e0d1-c1bd-45d0-8190-73c74a9f6679.png -------------------------------------------------------------------------------- /pics/ac106e7e-489a-4082-abd9-dabebe48394c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ac106e7e-489a-4082-abd9-dabebe48394c.jpg -------------------------------------------------------------------------------- /pics/ac9b31ec-cef1-4880-a875-fc4571ca10e1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ac9b31ec-cef1-4880-a875-fc4571ca10e1.png -------------------------------------------------------------------------------- /pics/ace830df-9919-48ca-91b5-60b193f593d2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ace830df-9919-48ca-91b5-60b193f593d2.png -------------------------------------------------------------------------------- /pics/ae1b27b8-bc13-42e7-ac12-a2242e125499.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ae1b27b8-bc13-42e7-ac12-a2242e125499.png -------------------------------------------------------------------------------- /pics/ae3fc93a-44d5-4beb-b05a-874bd9c0a657.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ae3fc93a-44d5-4beb-b05a-874bd9c0a657.png -------------------------------------------------------------------------------- /pics/af198da1-2480-4043-b07f-a3b91a88b815.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/af198da1-2480-4043-b07f-a3b91a88b815.png -------------------------------------------------------------------------------- /pics/af4639f9-af54-4400-aaf5-4e261d96ace7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/af4639f9-af54-4400-aaf5-4e261d96ace7.png -------------------------------------------------------------------------------- /pics/b0c97118-8f30-4619-9c22-a141f627db39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b0c97118-8f30-4619-9c22-a141f627db39.png -------------------------------------------------------------------------------- /pics/b0e8ef47-2f23-4379-8c64-10d5cb44d438.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b0e8ef47-2f23-4379-8c64-10d5cb44d438.jpg -------------------------------------------------------------------------------- /pics/b0f61ac2-a4b6-4042-9cf0-ccf4238c1ff7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b0f61ac2-a4b6-4042-9cf0-ccf4238c1ff7.png -------------------------------------------------------------------------------- /pics/b1df9732-86ce-4d69-9f06-fba1db7b3b5a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b1df9732-86ce-4d69-9f06-fba1db7b3b5a.jpg -------------------------------------------------------------------------------- /pics/b1fa0453-a4b0-4eae-a352-48acca8fff74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b1fa0453-a4b0-4eae-a352-48acca8fff74.png -------------------------------------------------------------------------------- /pics/b20a3466-44b4-445e-87c7-dd4fb9ef44b2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b20a3466-44b4-445e-87c7-dd4fb9ef44b2.png -------------------------------------------------------------------------------- /pics/b29f8971-9cb8-480d-b986-0e60c2ece069.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b29f8971-9cb8-480d-b986-0e60c2ece069.png -------------------------------------------------------------------------------- /pics/b396d726-b75f-4a32-89a2-03a7b6e19f6f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b396d726-b75f-4a32-89a2-03a7b6e19f6f.jpg -------------------------------------------------------------------------------- /pics/b418ca51-f005-4510-b7ad-f092eb6aeb24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b418ca51-f005-4510-b7ad-f092eb6aeb24.png -------------------------------------------------------------------------------- /pics/b4252c85-6fb0-4995-9a68-a1a5925fbdb1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b4252c85-6fb0-4995-9a68-a1a5925fbdb1.png -------------------------------------------------------------------------------- /pics/b4b29aa9-dd2c-467b-b75f-ca6541cb25b5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b4b29aa9-dd2c-467b-b75f-ca6541cb25b5.jpg -------------------------------------------------------------------------------- /pics/b54eeb16-0b0e-484c-be62-306f57c40d77.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b54eeb16-0b0e-484c-be62-306f57c40d77.jpg -------------------------------------------------------------------------------- /pics/b5bdcbe2-b958-4aef-9151-6ad963cb28b4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b5bdcbe2-b958-4aef-9151-6ad963cb28b4.png -------------------------------------------------------------------------------- /pics/b8081c84-62c4-4019-b3ee-4bd0e443d647.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b8081c84-62c4-4019-b3ee-4bd0e443d647.jpg -------------------------------------------------------------------------------- /pics/b84ba6fb-312b-4e69-8c77-fb6eb6fb38d4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b84ba6fb-312b-4e69-8c77-fb6eb6fb38d4.png -------------------------------------------------------------------------------- /pics/b8dd708d-f372-4b04-b828-1dd99021c244.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b8dd708d-f372-4b04-b828-1dd99021c244.png -------------------------------------------------------------------------------- /pics/b988877c-0f0a-4593-916d-de2081320628.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b988877c-0f0a-4593-916d-de2081320628.jpg -------------------------------------------------------------------------------- /pics/b9a39d2a-618c-468b-86db-2e851f1a0057.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b9a39d2a-618c-468b-86db-2e851f1a0057.jpg -------------------------------------------------------------------------------- /pics/b9d79a5a-e7af-499b-b989-f10483e71b8b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/b9d79a5a-e7af-499b-b989-f10483e71b8b.jpg -------------------------------------------------------------------------------- /pics/baaa681f-7c52-4198-a5ae-303b9386cf47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/baaa681f-7c52-4198-a5ae-303b9386cf47.png -------------------------------------------------------------------------------- /pics/bb6a49be-00f2-4f27-a0ce-4ed764bc605c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/bb6a49be-00f2-4f27-a0ce-4ed764bc605c.png -------------------------------------------------------------------------------- /pics/bc603930-d74d-4499-a3e7-2d740fc07f33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/bc603930-d74d-4499-a3e7-2d740fc07f33.png -------------------------------------------------------------------------------- /pics/bc775758-89ab-4805-9f9c-78b8739cf780.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/bc775758-89ab-4805-9f9c-78b8739cf780.jpg -------------------------------------------------------------------------------- /pics/be5c2c61-86d2-4dba-a289-b48ea23219de.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/be5c2c61-86d2-4dba-a289-b48ea23219de.jpg -------------------------------------------------------------------------------- /pics/be7dca03-12ec-456b-8b54-b1b3161f5531.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/be7dca03-12ec-456b-8b54-b1b3161f5531.png -------------------------------------------------------------------------------- /pics/beba612e-dc5b-4fc2-869d-0b23408ac90a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/beba612e-dc5b-4fc2-869d-0b23408ac90a.png -------------------------------------------------------------------------------- /pics/bee1ff1d-c80f-4b3c-b58c-7073a8896ab2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/bee1ff1d-c80f-4b3c-b58c-7073a8896ab2.jpg -------------------------------------------------------------------------------- /pics/bf0ff9fc-467e-4a3f-8922-115ba2c55bde.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/bf0ff9fc-467e-4a3f-8922-115ba2c55bde.png -------------------------------------------------------------------------------- /pics/bf16c541-0717-473b-b75d-4115864f4fbf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/bf16c541-0717-473b-b75d-4115864f4fbf.jpg -------------------------------------------------------------------------------- /pics/bf667594-bb4b-4634-bf9b-0596a45415ba.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/bf667594-bb4b-4634-bf9b-0596a45415ba.jpg -------------------------------------------------------------------------------- /pics/bfbb11e2-d208-4efa-b97b-24cd40467cd8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/bfbb11e2-d208-4efa-b97b-24cd40467cd8.png -------------------------------------------------------------------------------- /pics/c037c901-7eae-4e31-a1e4-9d41329e5c3e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c037c901-7eae-4e31-a1e4-9d41329e5c3e.png -------------------------------------------------------------------------------- /pics/c0a9fa91-da2e-4892-8c9f-80206a6f7047.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c0a9fa91-da2e-4892-8c9f-80206a6f7047.png -------------------------------------------------------------------------------- /pics/c2117f61-1177-4768-bf33-cf4f950d911c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c2117f61-1177-4768-bf33-cf4f950d911c.png -------------------------------------------------------------------------------- /pics/c23957e9-a572-44f8-be15-f306c8b92722.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c23957e9-a572-44f8-be15-f306c8b92722.jpg -------------------------------------------------------------------------------- /pics/c28c6fbc-2bc1-47d9-9b2e-cf3d4034f877.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c28c6fbc-2bc1-47d9-9b2e-cf3d4034f877.jpg -------------------------------------------------------------------------------- /pics/c2cbf5d2-82af-4c78-bd43-495da5adf55f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c2cbf5d2-82af-4c78-bd43-495da5adf55f.png -------------------------------------------------------------------------------- /pics/c2d343f7-604c-4856-9a3c-c71d6f67fecc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c2d343f7-604c-4856-9a3c-c71d6f67fecc.png -------------------------------------------------------------------------------- /pics/c2f0c8e2-da66-498c-a38f-e1176abee29e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c2f0c8e2-da66-498c-a38f-e1176abee29e.png -------------------------------------------------------------------------------- /pics/c3369072-c740-43b0-b276-202bd1d3960d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c3369072-c740-43b0-b276-202bd1d3960d.jpg -------------------------------------------------------------------------------- /pics/c3c1c0e8-3a78-4426-961f-b46dd0879dd8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c3c1c0e8-3a78-4426-961f-b46dd0879dd8.png -------------------------------------------------------------------------------- /pics/c4c14368-519c-4a0e-8331-0a553715e3e7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c4c14368-519c-4a0e-8331-0a553715e3e7.jpg -------------------------------------------------------------------------------- /pics/c5022dd3-be22-4250-b9f6-38ae984a04d7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c5022dd3-be22-4250-b9f6-38ae984a04d7.jpg -------------------------------------------------------------------------------- /pics/c5085437-54df-4304-b62d-44b961711ba7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c5085437-54df-4304-b62d-44b961711ba7.png -------------------------------------------------------------------------------- /pics/c5f611f0-fd5c-4158-9003-278141136e6e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c5f611f0-fd5c-4158-9003-278141136e6e.jpg -------------------------------------------------------------------------------- /pics/c625baa0-dde6-449e-93df-c3a67f2f430f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c625baa0-dde6-449e-93df-c3a67f2f430f.jpg -------------------------------------------------------------------------------- /pics/c79da808-0f28-4a36-bc04-33ccc5b83c13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c79da808-0f28-4a36-bc04-33ccc5b83c13.png -------------------------------------------------------------------------------- /pics/c7d4956c-9988-4a10-a704-28fdae7f3d28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c7d4956c-9988-4a10-a704-28fdae7f3d28.png -------------------------------------------------------------------------------- /pics/c812c28a-1513-4a82-bfda-ab6a40981aa0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c812c28a-1513-4a82-bfda-ab6a40981aa0.png -------------------------------------------------------------------------------- /pics/c81af7d8-3128-4a3c-a9c9-3e0f5b87ab22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c81af7d8-3128-4a3c-a9c9-3e0f5b87ab22.jpg -------------------------------------------------------------------------------- /pics/c8d18ca9-0b09-441a-9a0c-fb063630d708.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c8d18ca9-0b09-441a-9a0c-fb063630d708.png -------------------------------------------------------------------------------- /pics/c8dbff58-d981-48be-8c1c-caa6c2738791.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c8dbff58-d981-48be-8c1c-caa6c2738791.jpg -------------------------------------------------------------------------------- /pics/c9a1de44-b1c0-4d13-a654-827d4ef8a723.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c9a1de44-b1c0-4d13-a654-827d4ef8a723.png -------------------------------------------------------------------------------- /pics/c9ad2bf4-5580-4018-bce4-1b9a71804d9c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c9ad2bf4-5580-4018-bce4-1b9a71804d9c.png -------------------------------------------------------------------------------- /pics/c9cfcd20-c901-435f-9a07-3e46830c359f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c9cfcd20-c901-435f-9a07-3e46830c359f.jpg -------------------------------------------------------------------------------- /pics/c9cfd600-bc91-4f3a-9f99-b42f88a5bb24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/c9cfd600-bc91-4f3a-9f99-b42f88a5bb24.jpg -------------------------------------------------------------------------------- /pics/cb0ed469-27ab-471b-a830-648b279103c8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/cb0ed469-27ab-471b-a830-648b279103c8.png -------------------------------------------------------------------------------- /pics/cbf50eb8-22b4-4528-a2e7-d187143d57f7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/cbf50eb8-22b4-4528-a2e7-d187143d57f7.png -------------------------------------------------------------------------------- /pics/cd5fbcff-3f35-43a6-8ffa-082a93ce0f0e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/cd5fbcff-3f35-43a6-8ffa-082a93ce0f0e.png -------------------------------------------------------------------------------- /pics/cdbe1d12-5ad9-4acb-a717-bbc822c2acf3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/cdbe1d12-5ad9-4acb-a717-bbc822c2acf3.png -------------------------------------------------------------------------------- /pics/ce039f03-6588-4f0c-b35b-a494de0eac47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ce039f03-6588-4f0c-b35b-a494de0eac47.png -------------------------------------------------------------------------------- /pics/cf4386a1-58c9-4eca-a17f-e12b1e9770eb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/cf4386a1-58c9-4eca-a17f-e12b1e9770eb.png -------------------------------------------------------------------------------- /pics/d0afdd23-c9a5-4d1c-9b3d-404bff3bd0d1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d0afdd23-c9a5-4d1c-9b3d-404bff3bd0d1.png -------------------------------------------------------------------------------- /pics/d160ec2e-cfe2-4640-bda7-62f53e58b8c0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d160ec2e-cfe2-4640-bda7-62f53e58b8c0.png -------------------------------------------------------------------------------- /pics/d1f81ac3-9fdb-4371-a49d-ca84917aa89f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d1f81ac3-9fdb-4371-a49d-ca84917aa89f.jpg -------------------------------------------------------------------------------- /pics/d2d34239-e7c1-482b-b33e-3170c5943556.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d2d34239-e7c1-482b-b33e-3170c5943556.jpg -------------------------------------------------------------------------------- /pics/d49466db-fdd3-4d36-8a86-47dc45c07a1e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d49466db-fdd3-4d36-8a86-47dc45c07a1e.jpg -------------------------------------------------------------------------------- /pics/d4c3a4a1-0846-46ec-9cc3-eaddfca71254.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d4c3a4a1-0846-46ec-9cc3-eaddfca71254.jpg -------------------------------------------------------------------------------- /pics/d4eef1e2-5703-4ca4-82ab-8dda93d6b81f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d4eef1e2-5703-4ca4-82ab-8dda93d6b81f.png -------------------------------------------------------------------------------- /pics/d52270b4-9097-4667-9f18-f405fc661c99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d52270b4-9097-4667-9f18-f405fc661c99.png -------------------------------------------------------------------------------- /pics/d5c16be7-a1c0-4c8d-b6b9-5999cdc6f9b3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d5c16be7-a1c0-4c8d-b6b9-5999cdc6f9b3.png -------------------------------------------------------------------------------- /pics/d7f6dec1-02b6-4969-b3ab-e01ee78659b9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d7f6dec1-02b6-4969-b3ab-e01ee78659b9.png -------------------------------------------------------------------------------- /pics/d99dc9e2-197c-4085-813d-7195da1c6762.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/d99dc9e2-197c-4085-813d-7195da1c6762.png -------------------------------------------------------------------------------- /pics/db4921d4-184b-48ba-a3cf-1d1141e3ba2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/db4921d4-184b-48ba-a3cf-1d1141e3ba2d.png -------------------------------------------------------------------------------- /pics/db54db2f-82b2-4222-8d63-e49a8a7fc966.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/db54db2f-82b2-4222-8d63-e49a8a7fc966.png -------------------------------------------------------------------------------- /pics/dbb8516d-37ba-4e2c-b26b-eefd7de21b45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/dbb8516d-37ba-4e2c-b26b-eefd7de21b45.png -------------------------------------------------------------------------------- /pics/dbc5c9f1-c13c-4d06-86ba-7cc949eb4c8f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/dbc5c9f1-c13c-4d06-86ba-7cc949eb4c8f.jpg -------------------------------------------------------------------------------- /pics/dbd60b1f-b700-4da6-a993-62578e892333.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/dbd60b1f-b700-4da6-a993-62578e892333.jpg -------------------------------------------------------------------------------- /pics/dc00f70e-c5c8-4d20-baf1-2d70014a97e3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/dc00f70e-c5c8-4d20-baf1-2d70014a97e3.jpg -------------------------------------------------------------------------------- /pics/dd15a984-e977-4644-b127-708cddb8ca99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/dd15a984-e977-4644-b127-708cddb8ca99.png -------------------------------------------------------------------------------- /pics/dd3b289c-d90e-44a6-a44c-4880517eb1de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/dd3b289c-d90e-44a6-a44c-4880517eb1de.png -------------------------------------------------------------------------------- /pics/dd782132-d830-4c55-9884-cfac0a541b8e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/dd782132-d830-4c55-9884-cfac0a541b8e.png -------------------------------------------------------------------------------- /pics/dd78a1fe-1ff3-4bcf-a56f-8c003995beb6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/dd78a1fe-1ff3-4bcf-a56f-8c003995beb6.jpg -------------------------------------------------------------------------------- /pics/dda1608d-26e0-4f10-8327-a459969b150a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/dda1608d-26e0-4f10-8327-a459969b150a.png -------------------------------------------------------------------------------- /pics/ddb5ff4c-4ada-46aa-9bf1-140bdb5e4676.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ddb5ff4c-4ada-46aa-9bf1-140bdb5e4676.jpg -------------------------------------------------------------------------------- /pics/ddcf2327-8d84-425d-8535-121a94bcb88d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ddcf2327-8d84-425d-8535-121a94bcb88d.jpg -------------------------------------------------------------------------------- /pics/de9b9ea0-1327-4865-93e5-6f805c48bc9e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/de9b9ea0-1327-4865-93e5-6f805c48bc9e.png -------------------------------------------------------------------------------- /pics/e026c24d-00fa-4e7c-97a8-95a98cdc383a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e026c24d-00fa-4e7c-97a8-95a98cdc383a.png -------------------------------------------------------------------------------- /pics/e0900bb2-220a-43b7-9aa9-1d5cd55ff56e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e0900bb2-220a-43b7-9aa9-1d5cd55ff56e.png -------------------------------------------------------------------------------- /pics/e130e5b8-b19a-4f1e-b860-223040525cf6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e130e5b8-b19a-4f1e-b860-223040525cf6.jpg -------------------------------------------------------------------------------- /pics/e143f6da-d114-4ba4-8712-f65299047fa2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e143f6da-d114-4ba4-8712-f65299047fa2.png -------------------------------------------------------------------------------- /pics/e1eda3d5-5ec8-4708-8e25-1a04c5e11f48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e1eda3d5-5ec8-4708-8e25-1a04c5e11f48.png -------------------------------------------------------------------------------- /pics/e2f0d889-2330-424c-8193-198edebecff7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e2f0d889-2330-424c-8193-198edebecff7.png -------------------------------------------------------------------------------- /pics/e3124763-f75e-46c3-ba82-341e6c98d862.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e3124763-f75e-46c3-ba82-341e6c98d862.jpg -------------------------------------------------------------------------------- /pics/e31abb94-9201-4e06-9902-61101b92f475.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e31abb94-9201-4e06-9902-61101b92f475.png -------------------------------------------------------------------------------- /pics/e3bf5de4-ab1e-4a9b-896d-4b0ad7e9220a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e3bf5de4-ab1e-4a9b-896d-4b0ad7e9220a.jpg -------------------------------------------------------------------------------- /pics/e3f1657c-80fc-4dfa-9643-bf51abd201c6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e3f1657c-80fc-4dfa-9643-bf51abd201c6.png -------------------------------------------------------------------------------- /pics/e41405a8-7c05-4f70-8092-e961e28d3112.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e41405a8-7c05-4f70-8092-e961e28d3112.jpg -------------------------------------------------------------------------------- /pics/e6723b94-1a33-4605-b775-f6813352d383.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e6723b94-1a33-4605-b775-f6813352d383.png -------------------------------------------------------------------------------- /pics/e6b733ad-606d-4028-b3e8-83c3a73a3797.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e6b733ad-606d-4028-b3e8-83c3a73a3797.jpg -------------------------------------------------------------------------------- /pics/e6bded8e-41a0-489a-88a6-638e88ab7666.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e6bded8e-41a0-489a-88a6-638e88ab7666.jpg -------------------------------------------------------------------------------- /pics/e800b001-7779-495b-8459-d33a7440d7b8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e800b001-7779-495b-8459-d33a7440d7b8.jpg -------------------------------------------------------------------------------- /pics/e82e0454-4ece-435e-945f-90bc0d37bf44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e82e0454-4ece-435e-945f-90bc0d37bf44.png -------------------------------------------------------------------------------- /pics/e92d0ebc-7d46-413b-aec1-34a39602f787.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/e92d0ebc-7d46-413b-aec1-34a39602f787.png -------------------------------------------------------------------------------- /pics/ea2304ce-268b-4238-9486-4d8f8aea8ca4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ea2304ce-268b-4238-9486-4d8f8aea8ca4.png -------------------------------------------------------------------------------- /pics/ea5f3efe-d5e6-499b-b278-9e898af61257.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ea5f3efe-d5e6-499b-b278-9e898af61257.jpg -------------------------------------------------------------------------------- /pics/eb4a7007-d437-4740-865d-672973effe25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/eb4a7007-d437-4740-865d-672973effe25.png -------------------------------------------------------------------------------- /pics/eb859228-c0f2-4bce-910d-d9f76929352b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/eb859228-c0f2-4bce-910d-d9f76929352b.png -------------------------------------------------------------------------------- /pics/ec923dc7-864c-47b0-a411-1f2c48d084de.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ec923dc7-864c-47b0-a411-1f2c48d084de.png -------------------------------------------------------------------------------- /pics/ecf8ad5d-5403-48b9-b6e7-f2e20ffe8fca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ecf8ad5d-5403-48b9-b6e7-f2e20ffe8fca.png -------------------------------------------------------------------------------- /pics/ed523051-608f-4c3f-b343-383e2d194470.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ed523051-608f-4c3f-b343-383e2d194470.png -------------------------------------------------------------------------------- /pics/ed5522bb-3a60-481c-8654-43e7195a48fe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ed5522bb-3a60-481c-8654-43e7195a48fe.png -------------------------------------------------------------------------------- /pics/ed7b96ac-6428-4bd5-9986-674c54c2a959.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ed7b96ac-6428-4bd5-9986-674c54c2a959.png -------------------------------------------------------------------------------- /pics/eebdeb57-8efb-4848-9bb6-97512990897c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/eebdeb57-8efb-4848-9bb6-97512990897c.jpg -------------------------------------------------------------------------------- /pics/ef280699-da36-4b38-9735-9b048a3c7fe0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ef280699-da36-4b38-9735-9b048a3c7fe0.png -------------------------------------------------------------------------------- /pics/ef8eab00-1d5e-4d99-a7c2-d6d68ea7fe92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ef8eab00-1d5e-4d99-a7c2-d6d68ea7fe92.png -------------------------------------------------------------------------------- /pics/f0574025-c514-49f5-a591-6d6a71f271f7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f0574025-c514-49f5-a591-6d6a71f271f7.jpg -------------------------------------------------------------------------------- /pics/f0a31c04-6e26-408c-8395-88f4e2ae928b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f0a31c04-6e26-408c-8395-88f4e2ae928b.jpg -------------------------------------------------------------------------------- /pics/f0e35b7a-2948-488a-a5a9-97d3f6b5e2d7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f0e35b7a-2948-488a-a5a9-97d3f6b5e2d7.png -------------------------------------------------------------------------------- /pics/f1109d04-3c67-48a3-9963-2c475f94e175.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f1109d04-3c67-48a3-9963-2c475f94e175.jpg -------------------------------------------------------------------------------- /pics/f3080f83-6239-459b-8e9c-03b6641f7815.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f3080f83-6239-459b-8e9c-03b6641f7815.png -------------------------------------------------------------------------------- /pics/f3bfe11f-9cba-4ff2-8cc6-629068408a80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f3bfe11f-9cba-4ff2-8cc6-629068408a80.jpg -------------------------------------------------------------------------------- /pics/f3d3e072-e947-43e9-b999-22385fd569a0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f3d3e072-e947-43e9-b999-22385fd569a0.jpg -------------------------------------------------------------------------------- /pics/f42443e0-208d-41ea-be44-c7fd97d2e3bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f42443e0-208d-41ea-be44-c7fd97d2e3bf.png -------------------------------------------------------------------------------- /pics/f48e2b92-2c2a-48cb-a443-bd313e187a25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f48e2b92-2c2a-48cb-a443-bd313e187a25.jpg -------------------------------------------------------------------------------- /pics/f4cdda3e-324c-49b5-8c14-08a3db634b29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f4cdda3e-324c-49b5-8c14-08a3db634b29.png -------------------------------------------------------------------------------- /pics/f50a8e52-a683-444c-8e32-63c1890fe84a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f50a8e52-a683-444c-8e32-63c1890fe84a.jpg -------------------------------------------------------------------------------- /pics/f5477abd-c246-4851-89ab-6b1cde2549b1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f5477abd-c246-4851-89ab-6b1cde2549b1.png -------------------------------------------------------------------------------- /pics/f5757d09-88e7-4bbd-8cfb-cecf55604854.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f5757d09-88e7-4bbd-8cfb-cecf55604854.png -------------------------------------------------------------------------------- /pics/f61b5419-c94a-4df1-8d4d-aed9ae8cc6d5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f61b5419-c94a-4df1-8d4d-aed9ae8cc6d5.png -------------------------------------------------------------------------------- /pics/f716427a-94f2-4875-9c86-98793cf5dcc3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f716427a-94f2-4875-9c86-98793cf5dcc3.jpg -------------------------------------------------------------------------------- /pics/f76067a5-7d5f-4135-9549-8199c77d8f1c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f76067a5-7d5f-4135-9549-8199c77d8f1c.jpg -------------------------------------------------------------------------------- /pics/f7d170a3-e446-4a64-ac2d-cb95028f81a8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f7d170a3-e446-4a64-ac2d-cb95028f81a8.png -------------------------------------------------------------------------------- /pics/f7ecbb8d-bb8b-4d45-a3b7-f49425d6d83d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f7ecbb8d-bb8b-4d45-a3b7-f49425d6d83d.jpg -------------------------------------------------------------------------------- /pics/f7f7e3e5-7dd4-4173-9999-576b9e2ac0a2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f7f7e3e5-7dd4-4173-9999-576b9e2ac0a2.png -------------------------------------------------------------------------------- /pics/f8047846-efd4-42be-b6b7-27a7c4998b51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f8047846-efd4-42be-b6b7-27a7c4998b51.png -------------------------------------------------------------------------------- /pics/f87afe72-c2df-4c12-ac03-9b8d581a8af8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f87afe72-c2df-4c12-ac03-9b8d581a8af8.jpg -------------------------------------------------------------------------------- /pics/f8b16d1e-7363-4544-94d6-4939fdf849dc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f8b16d1e-7363-4544-94d6-4939fdf849dc.png -------------------------------------------------------------------------------- /pics/f900f266-a323-42b2-bc43-218fdb8811a8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f900f266-a323-42b2-bc43-218fdb8811a8.jpg -------------------------------------------------------------------------------- /pics/f94389e9-55b1-4f49-9d37-00ed05900ae0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f94389e9-55b1-4f49-9d37-00ed05900ae0.png -------------------------------------------------------------------------------- /pics/f9978fa6-9f49-4a0f-8540-02d269ac448f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f9978fa6-9f49-4a0f-8540-02d269ac448f.png -------------------------------------------------------------------------------- /pics/f99ee771-c56f-47fb-9148-c0036695b5fe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f99ee771-c56f-47fb-9148-c0036695b5fe.jpg -------------------------------------------------------------------------------- /pics/f9f2a16b-4843-44d1-9759-c745772e9bcf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f9f2a16b-4843-44d1-9759-c745772e9bcf.jpg -------------------------------------------------------------------------------- /pics/f9f9f993-8ece-4da7-b848-af9b438fad76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/f9f9f993-8ece-4da7-b848-af9b438fad76.png -------------------------------------------------------------------------------- /pics/fa2273c3-1b5f-48ce-8e8b-441a4116c1c4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/fa2273c3-1b5f-48ce-8e8b-441a4116c1c4.jpg -------------------------------------------------------------------------------- /pics/fa568fac-ac58-48dd-a9bb-23b3065bf2dc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/fa568fac-ac58-48dd-a9bb-23b3065bf2dc.png -------------------------------------------------------------------------------- /pics/faecea49-9974-40db-9821-c8636137df61.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/faecea49-9974-40db-9821-c8636137df61.jpg -------------------------------------------------------------------------------- /pics/fb327611-7e2b-4f2f-9f5b-38592d408f07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/fb327611-7e2b-4f2f-9f5b-38592d408f07.png -------------------------------------------------------------------------------- /pics/fb44307f-8e98-4ff7-a918-31dacfa564b4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/fb44307f-8e98-4ff7-a918-31dacfa564b4.jpg -------------------------------------------------------------------------------- /pics/fb546e12-e1fb-4b72-a1fb-8a7f5000dce6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/fb546e12-e1fb-4b72-a1fb-8a7f5000dce6.jpg -------------------------------------------------------------------------------- /pics/fbe54203-c005-48f0-8883-b05e564a3173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/fbe54203-c005-48f0-8883-b05e564a3173.png -------------------------------------------------------------------------------- /pics/fc0c6b2d-68c7-4de8-aaaa-97355a4f0472.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/fc0c6b2d-68c7-4de8-aaaa-97355a4f0472.jpg -------------------------------------------------------------------------------- /pics/ff0c019c-6461-467d-a266-0455341fd4f4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ff0c019c-6461-467d-a266-0455341fd4f4.png -------------------------------------------------------------------------------- /pics/ff396233-1bb1-4e74-8bc2-d7c90146f5dd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/ff396233-1bb1-4e74-8bc2-d7c90146f5dd.png -------------------------------------------------------------------------------- /pics/011f3ef6-d824-4d43-8b2c-36dab8eaaa72-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/011f3ef6-d824-4d43-8b2c-36dab8eaaa72-1.png -------------------------------------------------------------------------------- /pics/Technology-ComputerNetworking-Internet-ISPs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/Technology-ComputerNetworking-Internet-ISPs.png -------------------------------------------------------------------------------- /pics/hashMap_u54C8_u5E0C_u7B97_u6CD5_u4F8B_u56FE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wutongke/CS-Notes/master/pics/hashMap_u54C8_u5E0C_u7B97_u6CD5_u4F8B_u56FE.png -------------------------------------------------------------------------------- /notes/代码风格规范.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | - [Twitter Java Style Guide](https://github.com/twitter/commons/blob/master/src/java/com/twitter/common/styleguide.md) 6 | - [Google Java Style Guide](http://google.github.io/styleguide/javaguide.html) 7 | -------------------------------------------------------------------------------- /other/Group.md: -------------------------------------------------------------------------------- 1 | 创建交流群的主要目的是为了给大家提供一个交流平台,方便大家在学习的过程中互相讨论。 2 | 3 | 这个交流群不是一个笔者的问题回答群,我更希望大家能够愿意积极回答,我相信提问和回答的过程都可以提高大家对知识的掌握程度。 4 | 5 | 因为笔者白天要上班,因此不能及时进行回复,大部分时间会处于潜水状态。 6 | 7 | 至于交流群和 Issue 有什么区别,主要是两方面:一是交流群实时性高一些,二是交流群会更活跃一些。 8 | 9 | 另外,Issue 主要是用来发布一些项目中的错误和一些改进建议,当然也可以发布一些可以讨论的问题。 10 | 11 | 交流群可以讨论的内容比较广,例如在阅读本项目过程中不理解的地方可以在交流群中寻求别人的帮助、新技术的讨论、招聘信息、学习和工作的感受等等。 12 | 13 | 交流群不讨论政治,不讨论有争议性的话题,不发表仇视言论,不传播谣言,不发布广告(招聘信息之类的可以)。 14 | 15 |

16 | -------------------------------------------------------------------------------- /other/leetcode 总结.md: -------------------------------------------------------------------------------- 1 | # LeetCode 面试必备 2 | - 💪 就是干!如果你觉得有帮助请点个star,谢谢! 3 | 4 | > **欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远** 5 | 6 | ## LeetCode 习题集合 7 | 8 | * [LeetCode 解题集合](https://github.com/apachecn/LeetCode/tree/master/docs/Leetcode_Solutions) 9 | 10 | 11 | ## 模版要求 12 | 13 | > 提交PR基本要求(满足任意一种即可) 14 | 15 | * 1. 不一样的思路 16 | * 2. 优化时间复杂度和空间复杂度,或者解决题目的Follow up 17 | * 3. 有意义的简化代码 18 | * 4. 未提交过的题目 19 | 20 | > **案例模版** 21 | 22 | [模版:007. Reverse Integer 反转整数](https://github.com/apachecn/LeetCode/tree/master/docs/Leetcode_Solutions/007._Reverse_Integer.md) 23 | 24 | 25 | ## 项目贡献者 26 | 27 | > 项目发起人 28 | 29 | * [@Lisanaaa](https://github.com/Lisanaaa) 30 | * [@片刻](https://github.com/jiangzhonglian) 31 | 32 | > 贡献者(欢迎大家来追加) 33 | 34 | * [@Lisanaaa](https://github.com/Lisanaaa) 35 | * [@片刻](https://github.com/jiangzhonglian) 36 | * [@小瑶](https://github.com/chenyyx) 37 | 38 | -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | This file used to generate gitbook catalogue. 2 | 3 | # Summary 4 | 5 | * 算法 6 | * [剑指 Offer 题解](/notes/剑指 offer 题解.md) 7 | * [Leetcode 题解](/notes/Leetcode 题解.md) 8 | * [算法](/notes/算法.md) 9 | * 操作系统 10 | * [计算机操作系统](/notes/计算机操作系统.md) 11 | * [Linux](/notes/Linux.md) 12 | * 网络 13 | * [计算机网络](/notes/计算机网络.md) 14 | * [HTTP](/notes/HTTP.md) 15 | * [Socket](/notes/Socket.md) 16 | * 面向对象 17 | * [设计模式](/notes/设计模式.md) 18 | * [面向对象思想](/notes/面向对象思想.md) 19 | * 数据库 20 | * [数据库系统原理](/notes/数据库系统原理.md) 21 | * [SQL](/notes/SQL.md) 22 | * [Leetcode-Database 题解](/notes/Leetcode-Database 题解.md) 23 | * [MySQL](/notes/MySQL.md) 24 | * [Redis](/notes/Redis.md) 25 | * Java 26 | * [Java 基础](/notes/Java 基础.md) 27 | * [Java 虚拟机](/notes/Java 虚拟机.md) 28 | * [Java 并发](/notes/Java 并发.md) 29 | * [Java 容器](/notes/Java 容器.md) 30 | * [Java I/O](/notes/Java I/O.md) 31 | * [Android](/notes/Android.md) 32 | * 分布式 33 | * [一致性](/notes/一致性.md) 34 | * [分布式问题分析](/notes/分布式问题分析.md) 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /notes/消息队列.md: -------------------------------------------------------------------------------- 1 | 2 | * [一、消息模型](#一消息模型) 3 | * [点对点](#点对点) 4 | * [发布/订阅](#发布订阅) 5 | * [二、使用场景](#二使用场景) 6 | * [异步处理](#异步处理) 7 | * [流量削锋](#流量削锋) 8 | * [应用解耦](#应用解耦) 9 | * [三、可靠性](#三可靠性) 10 | * [发送端的可靠性](#发送端的可靠性) 11 | * [接收端的可靠性](#接收端的可靠性) 12 | * [参考资料](#参考资料) 13 | 14 | 15 | 16 | # 一、消息模型 17 | 18 | ## 点对点 19 | 20 | 消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。 21 | 22 |

23 | 24 | ## 发布/订阅 25 | 26 | 消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。 27 | 28 |

29 | 30 | 发布与订阅模式和观察者模式有以下不同: 31 | 32 | - 观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,发布者与订阅者不知道对方的存在,它们之间通过频道进行通信。 33 | - 观察者模式是同步的,当事件触发时,主题会调用观察者的方法,然后等待方法返回;而发布与订阅模式是异步的,发布者向频道发送一个消息之后,就不需要关心订阅者何时去订阅这个消息,可以立即返回。 34 | 35 |

36 | 37 | # 二、使用场景 38 | 39 | ## 异步处理 40 | 41 | 发送者将消息发送给消息队列之后,不需要同步等待消息接收者处理完毕,而是立即返回进行其它操作。消息接收者从消息队列中订阅消息之后异步处理。 42 | 43 | 例如在注册流程中通常需要发送验证邮件来确保注册用户的身份合法,可以使用消息队列使发送验证邮件的操作异步处理,用户在填写完注册信息之后就可以完成注册,而将发送验证邮件这一消息发送到消息队列中。 44 | 45 | 只有在业务流程允许异步处理的情况下才能这么做,例如上面的注册流程中,如果要求用户对验证邮件进行点击之后才能完成注册的话,就不能再使用消息队列。 46 | 47 | ## 流量削锋 48 | 49 | 在高并发的场景下,如果短时间有大量的请求到达会压垮服务器。 50 | 51 | 可以将请求发送到消息队列中,服务器按照其处理能力从消息队列中订阅消息进行处理。 52 | 53 | ## 应用解耦 54 | 55 | 如果模块之间不直接进行调用,模块之间耦合度就会很低,那么修改一个模块或者新增一个模块对其它模块的影响会很小,从而实现可扩展性。 56 | 57 | 通过使用消息队列,一个模块只需要向消息队列中发送消息,其它模块可以选择性地从消息队列中订阅消息从而完成调用。 58 | 59 | # 三、可靠性 60 | 61 | ## 发送端的可靠性 62 | 63 | 发送端完成操作后一定能将消息成功发送到消息队列中。 64 | 65 | 实现方法: 66 | 67 | - 在本地数据库建一张消息表,将消息数据与业务数据保存在同一数据库实例里,这样就可以利用本地数据库的事务机制。事务提交成功后,将消息表中的消息转移到消息队列中,若转移消息成功则删除消息表中的数据,否则继续重传。 68 | 69 | ## 接收端的可靠性 70 | 71 | 接收端能够从消息队列成功消费一次消息。 72 | 73 | 实现方法: 74 | 75 | - 保证接收端处理消息的业务逻辑具有幂等性:只要具有幂等性,那么消费多少次消息,最后处理的结果都是一样的。 76 | - 保证消息具有唯一编号,并使用一张日志表来记录已经消费的消息编号。 77 | 78 | # 参考资料 79 | 80 | - [Observer vs Pub-Sub](http://developers-club.com/posts/270339/) 81 | - [消息队列中点对点与发布订阅区别](https://blog.csdn.net/lizhitao/article/details/47723105) 82 | -------------------------------------------------------------------------------- /notes/系统设计基础.md: -------------------------------------------------------------------------------- 1 | 2 | * [一、性能](#一性能) 3 | * [二、伸缩性](#二伸缩性) 4 | * [三、扩展性](#三扩展性) 5 | * [四、可用性](#四可用性) 6 | * [五、安全性](#五安全性) 7 | 8 | 9 | 10 | # 一、性能 11 | 12 | ## 性能指标 13 | 14 | ### 1. 响应时间 15 | 16 | 指从某个请求从发出到接收到响应消耗的时间。 17 | 18 | 在对响应时间进行测试时,通常采用重复请求方式,然后计算平均响应时间。 19 | 20 | ### 2. 吞吐量 21 | 22 | 指系统在单位时间内可以处理的请求数量,通常使用每秒的请求数来衡量。 23 | 24 | ### 3. 并发用户数 25 | 26 | 指系统能同时处理的并发用户请求数量。 27 | 28 | 在没有并发存在的系统中,请求被顺序执行,此时响应时间为吞吐量的倒数。例如系统支持的吞吐量为 100 req/s,那么平均响应时间应该为 0.01s。 29 | 30 | 目前的大型系统都支持多线程来处理并发请求,多线程能够提高吞吐量以及缩短响应时间,主要有两个原因: 31 | 32 | - 多 CPU 33 | - IO 等待时间 34 | 35 | 使用 IO 多路复用等方式,系统在等待一个 IO 操作完成的这段时间内不需要被阻塞,可以去处理其它请求。通过将这个等待时间利用起来,使得 CPU 利用率大大提高。 36 | 37 | 并发用户数不是越高越好,因为如果并发用户数太高,系统来不及处理这么多的请求,会使得过多的请求需要等待,那么响应时间就会大大提高。 38 | 39 | ## 性能优化 40 | 41 | ### 1. 集群 42 | 43 | 将多台服务器组成集群,使用负载均衡将请求转发到集群中,避免单一服务器的负载压力过大导致性能降低。 44 | 45 | ### 2. 缓存 46 | 47 | 缓存能够提高性能的原因如下: 48 | 49 | - 缓存数据通常位于内存等介质中,这种介质对于读操作特别快; 50 | - 缓存数据可以位于靠近用户的地理位置上; 51 | - 可以将计算结果进行缓存,从而避免重复计算。 52 | 53 | ### 3. 异步 54 | 55 | 某些流程可以将操作转换为消息,将消息发送到消息队列之后立即返回,之后这个操作会被异步处理。 56 | 57 | # 二、伸缩性 58 | 59 | 指不断向集群中添加服务器来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。 60 | 61 | ## 伸缩性与性能 62 | 63 | 如果系统存在性能问题,那么单个用户的请求总是很慢的; 64 | 65 | 如果系统存在伸缩性问题,那么单个用户的请求可能会很快,但是在并发数很高的情况下系统会很慢。 66 | 67 | ## 实现伸缩性 68 | 69 | 应用服务器只要不具有状态,那么就可以很容易地通过负载均衡器向集群中添加新的服务器。 70 | 71 | 关系型数据库的伸缩性通过 Sharding 来实现,将数据按一定的规则分布到不同的节点上,从而解决单台存储服务器的存储空间限制。 72 | 73 | 对于非关系型数据库,它们天生就是为海量数据而诞生,对伸缩性的支持特别好。 74 | 75 | # 三、扩展性 76 | 77 | 指的是添加新功能时对现有系统的其它应用无影响,这就要求不同应用具备低耦合的特点。 78 | 79 | 实现可扩展主要有两种方式: 80 | 81 | - 使用消息队列进行解耦,应用之间通过消息传递进行通信; 82 | - 使用分布式服务将业务和可复用的服务分离开来,业务使用分布式服务框架调用可复用的服务。新增的产品可以通过调用可复用的服务来实现业务逻辑,对其它产品没有影响。 83 | 84 | # 四、可用性 85 | 86 | ## 冗余 87 | 88 | 保证高可用的主要手段是使用冗余,当某个服务器故障时就请求其它服务器。 89 | 90 | 应用服务器的冗余比较容易实现,只要保证应用服务器不具有状态,那么某个应用服务器故障时,负载均衡器将该应用服务器原先的用户请求转发到另一个应用服务器上,不会对用户有任何影响。 91 | 92 | 存储服务器的冗余需要使用主从复制来实现,当主服务器故障时,需要提升从服务器为主服务器,这个过程称为切换。 93 | 94 | ## 监控 95 | 96 | 对 CPU、内存、磁盘、网络等系统负载信息进行监控,当某个数据达到一定阈值时通知运维人员,从而在系统发生故障之前及时发现问题。 97 | 98 | ## 服务降级 99 | 100 | 服务降级是系统为了应对大量的请求,主动关闭部分功能,从而保证核心功能可用。 101 | 102 | # 五、安全性 103 | 104 | 要求系统的应对各种攻击手段时能够有可靠的应对措施。 105 | -------------------------------------------------------------------------------- /notes/Docker.md: -------------------------------------------------------------------------------- 1 | 2 | * [一、解决的问题](#一解决的问题) 3 | * [二、与虚拟机的比较](#二与虚拟机的比较) 4 | * [三、优势](#三优势) 5 | * [四、使用场景](#四使用场景) 6 | * [五、镜像与容器](#五镜像与容器) 7 | 8 | 9 | 10 |

11 | 12 | # 一、解决的问题 13 | 14 | 由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环境配置操作。 15 | 16 | Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程。使用 Docker 可以不修改应用程序代码,不需要开发人员学习特定环境下的技术,就能够将现有的应用程序部署在其他机器中。 17 | 18 | 参考资料: 19 | 20 | - [DOCKER 101: INTRODUCTION TO DOCKER WEBINAR RECAP](https://blog.docker.com/2017/08/docker-101-introduction-docker-webinar-recap/) 21 | - [Docker 入门教程](http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html) 22 | 23 | # 二、与虚拟机的比较 24 | 25 | 虚拟机也是一种虚拟化技术,它与 Docker 最大的区别在于它是通过模拟硬件,并在硬件上安装操作系统来实现。 26 | 27 |

28 | 29 |

30 | 31 | ## 启动速度 32 | 33 | 启动虚拟机需要启动虚拟机的操作系统,再启动应用,这个过程非常慢; 34 | 35 | 而启动 Docker 相当于启动宿主操作系统上的一个进程。 36 | 37 | ## 占用资源 38 | 39 | 虚拟机是一个完整的操作系统,需要占用大量的磁盘、内存和 CPU,一台机器只能开启几十个的虚拟机。 40 | 41 | 而 Docker 只是一个进程,只需要将应用以及相关的组件打包,在运行时占用很少的资源,一台机器可以开启成千上万个 Docker。 42 | 43 | 参考资料: 44 | 45 | - [Docker container vs Virtual machine](http://www.bogotobogo.com/DevOps/Docker/Docker_Container_vs_Virtual_Machine.php) 46 | 47 | # 三、优势 48 | 49 | 除了启动速度快以及占用资源少之外,Docker 具有以下优势: 50 | 51 | ## 更容易迁移 52 | 53 | Docker 可以提供一致性的运行环境,可以在不同的机器上进行迁移,而不用担心环境变化导致无法运行。 54 | 55 | ## 更容易维护 56 | 57 | Docker 使用分层技术和镜像,使得应用可以更容易复用重复部分。复用程度越高,维护工作也越容易。 58 | 59 | ## 更容易扩展 60 | 61 | 可以使用基础镜像进一步扩展得到新的镜像,并且官方和开源社区提供了大量的镜像,通过扩展这些镜像可以非常容易得到我们想要的镜像。 62 | 63 | 参考资料: 64 | 65 | - [为什么要使用 Docker?](https://yeasy.gitbooks.io/docker_practice/introduction/why.html) 66 | 67 | # 四、使用场景 68 | 69 | ## 持续集成 70 | 71 | 持续集成指的是频繁地将代码集成到主干上,这样能够更快地发现错误。 72 | 73 | Docker 具有轻量级以及隔离性的特点,在将代码集成到一个 Docker 中不会对其它 Docker 产生影响。 74 | 75 | ## 提供可伸缩的云服务 76 | 77 | 根据应用的负载情况,可以很容易地增加或者减少 Docker。 78 | 79 | ## 搭建微服务架构 80 | 81 | Docker 轻量级的特点使得它很适合用于部署、维护、组合微服务。 82 | 83 | 参考资料: 84 | 85 | - [What is Docker](https://www.docker.com/what-docker) 86 | - [持续集成是什么?](http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html) 87 | 88 | # 五、镜像与容器 89 | 90 | 镜像是一种静态的结构,可以看成面向对象里面的类,而容器是镜像的一个实例。 91 | 92 | 镜像包含着容器运行时所需要的代码以及其它组件,它是一种分层结构,每一层都是只读的(read-only layers)。构建镜像时,会一层一层构建,前一层是后一层的基础。镜像的这种分层存储结构很适合镜像的复用以及定制。 93 | 94 | 构建容器时,通过在镜像的基础上添加一个可写层(writable layer),用来保存着容器运行过程中的修改。 95 | 96 |

97 | 98 | 参考资料: 99 | 100 | - [How to Create Docker Container using Dockerfile](https://linoxide.com/linux-how-to/dockerfile-create-docker-container/) 101 | - [理解 Docker(2):Docker 镜像](http://www.cnblogs.com/sammyliu/p/5877964.html) 102 | 103 | 104 | -------------------------------------------------------------------------------- /BOOKLIST.md: -------------------------------------------------------------------------------- 1 | # 数据结构与算法 2 | 3 | - [算法](https://book.douban.com/subject/19952400/) 4 | - [数据结构与算法分析](https://book.douban.com/subject/3351237/) 5 | - [编程珠玑](https://book.douban.com/subject/3227098/) 6 | - [剑指 Offer](https://book.douban.com/subject/25910559/) 7 | 8 | # 操作系统 9 | 10 | - [现代操作系统](https://book.douban.com/subject/3852290/) 11 | - [深入理解计算机系统](https://book.douban.com/subject/26912767/) 12 | - [鸟哥的 Linux 私房菜](https://book.douban.com/subject/4889838/) 13 | - [Unix 环境高级编程](https://book.douban.com/subject/25900403/) 14 | - [Unix/Linux 编程实践教程](https://book.douban.com/subject/1219329/) 15 | - [Operating Systems: Three Easy Pieces (OSTEP)](http://pages.cs.wisc.edu/~remzi/OSTEP/) 16 | 17 | # 计算机网络 18 | 19 | - [计算机网络](https://book.douban.com/subject/2970300/) 20 | - [计算机网络 自顶向下方法](https://book.douban.com/subject/1391207/) 21 | - [图解 HTTP](https://book.douban.com/subject/25863515/) 22 | - [TCP/IP 详解 卷 1:协议](https://book.douban.com/subject/1088054/) 23 | - [UNIX 网络编程](https://book.douban.com/subject/1500149/) 24 | - [Linux 多线程服务端编程](https://book.douban.com/subject/20471211/) 25 | 26 | # 面向对象 27 | 28 | - [Head First 设计模式](https://book.douban.com/subject/2243615/) 29 | - [设计模式 可复用面向对象软件的基础](https://book.douban.com/subject/1052241/) 30 | - [敏捷软件开发 原则、模式与实践](https://book.douban.com/subject/1140457/) 31 | 32 | # 数据库 33 | 34 | - [数据库系统概念](https://book.douban.com/subject/10548379/) 35 | - [MySQL 必知必会](https://book.douban.com/subject/3354490/) 36 | - [高性能 MySQL](https://book.douban.com/subject/23008813/) 37 | - [Redis 设计与实现](https://book.douban.com/subject/25900156/) 38 | - [Redis 实战](https://book.douban.com/subject/26612779/) 39 | 40 | # Java 41 | 42 | - [Java 编程思想](https://book.douban.com/subject/2130190/) 43 | - [Effective java 中文版](https://book.douban.com/subject/3360807/) 44 | - [深入理解 Java 虚拟机](https://book.douban.com/subject/24722612/) 45 | - [Java 并发编程实战](https://book.douban.com/subject/10484692/) 46 | - [精通 Spring 4.x](https://book.douban.com/subject/26952826/) 47 | - [Spring 揭秘](https://book.douban.com/subject/3897837/) 48 | 49 | # C++ 50 | 51 | - [C++ Primer](https://book.douban.com/subject/25708312/) 52 | - [Effective C++](https://book.douban.com/subject/1842426/) 53 | - [C++ 编程规范](https://book.douban.com/subject/1480481/) 54 | - [STL 源码剖析](https://book.douban.com/subject/1110934/) 55 | - [深度探索 C++ 对象模型](https://book.douban.com/subject/1091086/) 56 | 57 | # 系统设计 58 | 59 | - [大规模分布式存储系统](https://book.douban.com/subject/25723658/) 60 | - [从 Paxos 到 Zookeeper](https://book.douban.com/subject/26292004/) 61 | - [大型网站系统与 Java 中间件开发实践](https://book.douban.com/subject/25867042/) 62 | - [淘宝技术这十年](https://book.douban.com/subject/24335672/) 63 | - [深入理解 Nginx](https://book.douban.com/subject/22793675/) 64 | 65 | # 开发工具 66 | 67 | - [Pro Git](https://git-scm.com/book/zh/v2) 68 | - [正则表达式必知必会](https://book.douban.com/subject/2269648/) 69 | 70 | # 编码实践 71 | 72 | - [重构](https://book.douban.com/subject/4262627/) 73 | - [代码大全](https://book.douban.com/subject/1477390/) 74 | - [人月神话](https://book.douban.com/subject/1102259/) 75 | - [程序员的职业素养](https://book.douban.com/subject/11614538/) 76 | - [编写可读代码的艺术](https://book.douban.com/subject/10797189/) 77 | 78 | # 其它 79 | 80 | - [JavaScript 语言精粹](https://book.douban.com/subject/3590768/) 81 | - [利用 Python 进行数据分析](https://book.douban.com/subject/25779298/) 82 | - [概率论与数理统计](https://book.douban.com/subject/2201479/) 83 | -------------------------------------------------------------------------------- /notes/构建工具.md: -------------------------------------------------------------------------------- 1 | 2 | * [一、什么是构建工具](#一什么是构建工具) 3 | * [二、Java 主流构建工具](#二java-主流构建工具) 4 | * [三、Maven](#三maven) 5 | 6 | 7 | 8 | # 一、什么是构建工具 9 | 10 | 构建工具是用于构建项目的自动化工具,主要包含以下工作: 11 | 12 | ## 依赖管理 13 | 14 | 不再需要手动导入 Jar 依赖包,并且可以自动处理依赖关系,也就是说某个依赖如果依赖于其它依赖,构建工具可以帮助我们自动处理这种依赖管理。 15 | 16 | ## 运行单元测试 17 | 18 | 不再需要在项目代码中添加测试代码,从而避免了污染项目代码。 19 | 20 | ## 将源代码转化为可执行文件 21 | 22 | 包含预处理、编译、汇编、链接等步骤。 23 | 24 | ## 将可执行文件进行打包 25 | 26 | 不再需要使用 IDE 将应用程序打包成 Jar 包。 27 | 28 | ## 发布到生产服务器上 29 | 30 | 不再需要通过 FTP 将 Jar 包上传到服务器上。 31 | 32 | 参考资料: 33 | 34 | - [What is a build tool?](https://stackoverflow.com/questions/7249871/what-is-a-build-tool) 35 | 36 | # 二、Java 主流构建工具 37 | 38 | 主要包括 Ant、Maven 和 Gradle。 39 | 40 |

41 | 42 | Gradle 和 Maven 的区别是,它使用 Groovy 这种特定领域语言(DSL)来管理构建脚本,而不再使用 XML 这种标记性语言。因为项目如果庞大的话,XML 很容易就变得臃肿。 43 | 44 | 例如要在项目中引入 Junit,Maven 的代码如下: 45 | 46 | ```xml 47 | 48 | 50 | 4.0.0 51 | 52 | jizg.study.maven.hello 53 | hello-first 54 | 0.0.1-SNAPSHOT 55 | 56 | 57 | 58 | junit 59 | junit 60 | 4.10 61 | test 62 | 63 | 64 | 65 | ``` 66 | 67 | 而 Gradle 只需要几行代码: 68 | 69 | ```java 70 | dependencies { 71 | testCompile "junit:junit:4.10" 72 | } 73 | ``` 74 | 75 | 参考资料: 76 | 77 | - [Java Build Tools Comparisons: Ant vs Maven vs Gradle](https://programmingmitra.blogspot.com/2016/05/java-build-tools-comparisons-ant-vs.html) 78 | - [maven 2 gradle](http://sagioto.github.io/maven2gradle/) 79 | - [新一代构建工具 gradle](https://www.imooc.com/learn/833) 80 | 81 | # 三、Maven 82 | 83 | ## 概述 84 | 85 | 提供了项目对象模型(POM)文件来管理项目的构建。 86 | 87 | ## 仓库 88 | 89 | 仓库的搜索顺序为:本地仓库、中央仓库、远程仓库。 90 | 91 | - 本地仓库用来存储项目的依赖库; 92 | - 中央仓库是下载依赖库的默认位置; 93 | - 远程仓库,因为并非所有的库存储在中央仓库,或者中央仓库访问速度很慢,远程仓库是中央仓库的补充。 94 | 95 | ## POM 96 | 97 | POM 代表项目对象模型,它是一个 XML 文件,保存在项目根目录的 pom.xml 文件中。 98 | 99 | ```xml 100 | 101 | junit 102 | junit 103 | 4.12 104 | test 105 | 106 | ``` 107 | 108 | [groupId, artifactId, version, packaging, classfier] 称为一个项目的坐标,其中 groupId、artifactId、version 必须定义,packaging 可选(默认为 Jar),classfier 不能直接定义的,需要结合插件使用。 109 | 110 | - groupId:项目组 Id,必须全球唯一; 111 | - artifactId:项目 Id,即项目名; 112 | - version:项目版本; 113 | - packaging:项目打包方式。 114 | 115 | ## 依赖原则 116 | 117 | ### 依赖路径最短优先原则 118 | 119 | ```html 120 | A -> B -> C -> X(1.0) 121 | A -> D -> X(2.0) 122 | ``` 123 | 由于 X(2.0) 路径最短,所以使用 X(2.0)。 124 | 125 | ### 声明顺序优先原则 126 | 127 | ```html 128 | A -> B -> X(1.0) 129 | A -> C -> X(2.0) 130 | ``` 131 | 132 | 在 POM 中最先声明的优先,上面的两个依赖如果先声明 B,那么最后使用 X(1.0)。 133 | 134 | ### 覆写优先原则 135 | 136 | 子 POM 内声明的依赖优先于父 POM 中声明的依赖。 137 | 138 | ## 解决依赖冲突 139 | 140 | 找到 Maven 加载的 Jar 包版本,使用 `mvn dependency:tree` 查看依赖树,根据依赖原则来调整依赖在 POM 文件的声明顺序。 141 | 142 | 参考资料: 143 | 144 | - [POM Reference](http://maven.apache.org/pom.html#Dependency_Version_Requirement_Specification) 145 | 146 | 147 | 148 | -------------------------------------------------------------------------------- /notes/Git.md: -------------------------------------------------------------------------------- 1 | 2 | * [学习资料](#学习资料) 3 | * [集中式与分布式](#集中式与分布式) 4 | * [Git 的中心服务器](#git-的中心服务器) 5 | * [Git 工作流](#git-工作流) 6 | * [分支实现](#分支实现) 7 | * [冲突](#冲突) 8 | * [Fast forward](#fast-forward) 9 | * [分支管理策略](#分支管理策略) 10 | * [储藏(Stashing)](#储藏stashing) 11 | * [SSH 传输设置](#ssh-传输设置) 12 | * [.gitignore 文件](#gitignore-文件) 13 | * [Git 命令一览](#git-命令一览) 14 | 15 | 16 | 17 | # 学习资料 18 | 19 | - [Git - 简明指南](http://rogerdudler.github.io/git-guide/index.zh.html) 20 | - [图解 Git](http://marklodato.github.io/visual-git-guide/index-zh-cn.html) 21 | - [廖雪峰 : Git 教程](https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000) 22 | - [Learn Git Branching](https://learngitbranching.js.org/) 23 | 24 | # 集中式与分布式 25 | 26 | Git 属于分布式版本控制系统,而 SVN 属于集中式。 27 | 28 | 集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。 29 | 30 | 集中式版本控制有安全性问题,当中心服务器挂了所有人都没办法工作了。 31 | 32 | 集中式版本控制需要连网才能工作,如果网速过慢,那么提交一个文件的会慢的无法让人忍受。而分布式版本控制不需要连网就能工作。 33 | 34 | 分布式版本控制新建分支、合并分支操作速度非常快,而集中式版本控制新建一个分支相当于复制一份完整代码。 35 | 36 | # Git 的中心服务器 37 | 38 | Git 的中心服务器用来交换每个用户的修改。没有中心服务器也能工作,但是中心服务器能够 24 小时保持开机状态,这样就能更方便的交换修改。Github 就是一种 Git 中心服务器。 39 | 40 | # Git 工作流 41 | 42 |

43 | 44 | 新建一个仓库之后,当前目录就成为了工作区,工作区下有一个隐藏目录 .git,它属于 Git 的版本库。 45 | 46 | Git 版本库有一个称为 stage 的暂存区,还有自动创建的 master 分支以及指向分支的 HEAD 指针。 47 | 48 |

49 | 50 | - git add files 把文件的修改添加到暂存区 51 | - git commit 把暂存区的修改提交到当前分支,提交之后暂存区就被清空了 52 | - git reset -- files 使用当前分支上的修改覆盖暂缓区,用来撤销最后一次 git add files 53 | - git checkout -- files 使用暂存区的修改覆盖工作目录,用来撤销本地修改 54 | 55 |

56 | 57 | 可以跳过暂存区域直接从分支中取出修改或者直接提交修改到分支中 58 | 59 | - git commit -a 直接把所有文件的修改添加到暂缓区然后执行提交 60 | - git checkout HEAD -- files 取出最后一次修改,可以用来进行回滚操作 61 | 62 | # 分支实现 63 | 64 | Git 把每次提交都连成一条时间线。分支使用指针来实现,例如 master 分支指针指向时间线的最后一个节点,也就是最后一次提交。HEAD 指针指向的是当前分支。 65 | 66 |

67 | 68 | 新建分支是新建一个指针指向时间线的最后一个节点,并让 HEAD 指针指向新分支表示新分支成为当前分支。 69 | 70 |

71 | 72 | 每次提交只会让当前分支向前移动,而其它分支不会移动。 73 | 74 |

75 | 76 | 合并分支也只需要改变指针即可。 77 | 78 |

79 | 80 | # 冲突 81 | 82 | 当两个分支都对同一个文件的同一行进行了修改,在分支合并时就会产生冲突。 83 | 84 |

85 | 86 | Git 会使用 <<<<<<< ,======= ,>>>>>>> 标记出不同分支的内容,只需要把不同分支中冲突部分修改成一样就能解决冲突。 87 | 88 | ``` 89 | <<<<<<< HEAD 90 | Creating a new branch is quick & simple. 91 | ======= 92 | Creating a new branch is quick AND simple. 93 | >>>>>>> feature1 94 | ``` 95 | 96 | # Fast forward 97 | 98 | "快进式合并"(fast-farward merge),会直接将 master 分支指向合并的分支,这种模式下进行分支合并会丢失分支信息,也就不能在分支历史上看出分支信息。 99 | 100 | 可以在合并时加上 --no-ff 参数来禁用 Fast forward 模式,并且加上 -m 参数让合并时产生一个新的 commit。 101 | 102 | ``` 103 | $ git merge --no-ff -m "merge with no-ff" dev 104 | ``` 105 | 106 |

107 | 108 | # 分支管理策略 109 | 110 | master 分支应该是非常稳定的,只用来发布新版本; 111 | 112 | 日常开发在开发分支 dev 上进行。 113 | 114 |

115 | 116 | # 储藏(Stashing) 117 | 118 | 在一个分支上操作之后,如果还没有将修改提交到分支上,此时进行切换分支,那么另一个分支上也能看到新的修改。这是因为所有分支都共用一个工作区的缘故。 119 | 120 | 可以使用 git stash 将当前分支的修改储藏起来,此时当前工作区的所有修改都会被存到栈上,也就是说当前工作区是干净的,没有任何未提交的修改。此时就可以安全的切换到其它分支上了。 121 | 122 | ``` 123 | $ git stash 124 | Saved working directory and index state \ "WIP on master: 049d078 added the index file" 125 | HEAD is now at 049d078 added the index file (To restore them type "git stash apply") 126 | ``` 127 | 128 | 该功能可以用于 bug 分支的实现。如果当前正在 dev 分支上进行开发,但是此时 master 上有个 bug 需要修复,但是 dev 分支上的开发还未完成,不想立即提交。在新建 bug 分支并切换到 bug 分支之前就需要使用 git stash 将 dev 分支的未提交修改储藏起来。 129 | 130 | # SSH 传输设置 131 | 132 | Git 仓库和 Github 中心仓库之间的传输是通过 SSH 加密。 133 | 134 | 如果工作区下没有 .ssh 目录,或者该目录下没有 id_rsa 和 id_rsa.pub 这两个文件,可以通过以下命令来创建 SSH Key: 135 | 136 | ``` 137 | $ ssh-keygen -t rsa -C "youremail@example.com" 138 | ``` 139 | 140 | 然后把公钥 id_rsa.pub 的内容复制到 Github "Account settings" 的 SSH Keys 中。 141 | 142 | # .gitignore 文件 143 | 144 | 忽略以下文件: 145 | 146 | - 操作系统自动生成的文件,比如缩略图; 147 | - 编译生成的中间文件,比如 Java 编译产生的 .class 文件; 148 | - 自己的敏感信息,比如存放口令的配置文件。 149 | 150 | 不需要全部自己编写,可以到 [https://github.com/github/gitignore](https://github.com/github/gitignore) 中进行查询。 151 | 152 | # Git 命令一览 153 | 154 |

155 | 156 | 比较详细的地址:http://www.cheat-sheets.org/saved-copy/git-cheat-sheet.pdf 157 | 158 | 159 | -------------------------------------------------------------------------------- /notes/攻击技术.md: -------------------------------------------------------------------------------- 1 | 2 | * [一、跨站脚本攻击](#一跨站脚本攻击) 3 | * [二、跨站请求伪造](#二跨站请求伪造) 4 | * [三、SQL 注入攻击](#三sql-注入攻击) 5 | * [四、拒绝服务攻击](#四拒绝服务攻击) 6 | * [参考资料](#参考资料) 7 | 8 | 9 | 10 | # 一、跨站脚本攻击 11 | 12 | ## 概念 13 | 14 | 跨站脚本攻击(Cross-Site Scripting, XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTML 和 JavaScript。 15 | 16 | 例如有一个论坛网站,攻击者可以在上面发布以下内容: 17 | 18 | ```html 19 | 20 | ``` 21 | 22 | 之后该内容可能会被渲染成以下形式: 23 | 24 | ```html 25 |

26 | ``` 27 | 28 | 另一个用户浏览了含有这个内容的页面将会跳转到 domain.com 并携带了当前作用域的 Cookie。如果这个论坛网站通过 Cookie 管理用户登录状态,那么攻击者就可以通过这个 Cookie 登录被攻击者的账号了。 29 | 30 | ## 危害 31 | 32 | - 窃取用户的 Cookie 33 | - 伪造虚假的输入表单骗取个人信息 34 | - 显示伪造的文章或者图片 35 | 36 | ## 防范手段 37 | 38 | ### 1. 设置 Cookie 为 HttpOnly 39 | 40 | 设置了 HttpOnly 的 Cookie 可以防止 JavaScript 脚本调用,就无法通过 document.cookie 获取用户 Cookie 信息。 41 | 42 | ### 2. 过滤特殊字符 43 | 44 | 例如将 `<` 转义为 `<`,将 `>` 转义为 `>`,从而避免 HTML 和 Jascript 代码的运行。 45 | 46 | ## 富文本编辑器 47 | 48 | 富文本编辑器允许用户输入 HTML 代码,就不能简单地将 `<` 等字符进行过滤了,极大地提高了 XSS 攻击的可能性。 49 | 50 | 富文本编辑器通常采用 XSS filter 来防范 XSS 攻击,通过定义一些标签白名单或者黑名单,从而不允许有攻击性的 HTML 代码的输入。 51 | 52 | 以下例子中,form 和 script 等标签都被转义,而 h 和 p 等标签将会保留。 53 | 54 | > [XSS 过滤在线测试](http://jsxss.com/zh/try.html) 55 | 56 | ```html 57 |

XSS Demo

58 | 59 |

60 | Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist. 61 |

62 | 63 |
64 | 65 | 66 |
67 | 68 |
hello
69 | 70 |

71 | http 72 |

73 | 74 |

Features:

75 | 79 | 80 | 83 | ``` 84 | 85 | ```html 86 |

XSS Demo

87 | 88 |

89 | Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist. 90 |

91 | 92 | <form> 93 | <input type="text" name="q" value="test"> 94 | <button id="submit">Submit</button> 95 | </form> 96 | 97 |
hello
98 | 99 |

100 | http 101 |

102 | 103 |

Features:

104 | 108 | 109 | <script type="text/javascript"> 110 | alert(/xss/); 111 | </script> 112 | ``` 113 | 114 | # 二、跨站请求伪造 115 | 116 | ## 概念 117 | 118 | 跨站请求伪造(Cross-site request forgery,CSRF),是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。 119 | 120 | XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户浏览器的信任。 121 | 122 | 假如一家银行用以执行转账操作的 URL 地址如下: 123 | 124 | ``` 125 | http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName。 126 | ``` 127 | 128 | 那么,一个恶意攻击者可以在另一个网站上放置如下代码: 129 | 130 | ``` 131 | 。 132 | ``` 133 | 134 | 如果有账户名为 Alice 的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失 1000 美元。 135 | 136 | 这种恶意的网址可以有很多种形式,藏身于网页中的许多地方。此外,攻击者也不需要控制放置恶意网址的网站。例如他可以将这种地址藏在论坛,博客等任何用户生成内容的网站中。这意味着如果服务器端没有合适的防御措施的话,用户即使访问熟悉的可信网站也有受攻击的危险。 137 | 138 | 透过例子能够看出,攻击者并不能通过 CSRF 攻击来直接获取用户的账户控制权,也不能直接窃取用户的任何信息。他们能做到的,是欺骗用户浏览器,让其以用户的名义执行操作。 139 | 140 | ## 防范手段 141 | 142 | ### 1. 检查 Referer 首部字段 143 | 144 | Referer 首部字段位于 HTTP 报文中,用于标识请求来源的地址。检查这个首部字段并要求请求来源的地址在同一个域名下,可以极大的防止 CSRF 攻击。 145 | 146 | 这种办法简单易行,工作量低,仅需要在关键访问处增加一步校验。但这种办法也有其局限性,因其完全依赖浏览器发送正确的 Referer 字段。虽然 HTTP 协议对此字段的内容有明确的规定,但并无法保证来访的浏览器的具体实现,亦无法保证浏览器没有安全漏洞影响到此字段。并且也存在攻击者攻击某些浏览器,篡改其 Referer 字段的可能。 147 | 148 | ### 2. 添加校验 Token 149 | 150 | 在访问敏感数据请求时,要求用户浏览器提供不保存在 Cookie 中,并且攻击者无法伪造的数据作为校验。例如服务器生成随机数并附加在表单中,并要求客户端传回这个随机数。 151 | 152 | ### 3. 输入验证码 153 | 154 | 因为 CSRF 攻击是在用户无意识的情况下发生的,所以要求用户输入验证码可以让用户知道自己正在做的操作。 155 | 156 | # 三、SQL 注入攻击 157 | 158 | ## 概念 159 | 160 | 服务器上的数据库运行非法的 SQL 语句,主要通过拼接来完成。 161 | 162 | ## 攻击原理 163 | 164 | 例如一个网站登录验证的 SQL 查询代码为: 165 | 166 | ```sql 167 | strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');" 168 | ``` 169 | 170 | 如果填入以下内容: 171 | 172 | ```sql 173 | userName = "1' OR '1'='1"; 174 | passWord = "1' OR '1'='1"; 175 | ``` 176 | 177 | 那么 SQL 查询字符串为: 178 | 179 | ```sql 180 | strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');" 181 | ``` 182 | 183 | 此时无需验证通过就能执行以下查询: 184 | 185 | ```sql 186 | strSQL = "SELECT * FROM users;" 187 | ``` 188 | 189 | ## 防范手段 190 | 191 | ### 1. 使用参数化查询 192 | 193 | Java 中的 PreparedStatement 是预先编译的 SQL 语句,可以传入适当参数并且多次执行。由于没有拼接的过程,因此可以防止 SQL 注入的发生。 194 | 195 | ```java 196 | PreparedStatement stmt = connection.prepareStatement("SELECT * FROM users WHERE userid=? AND password=?"); 197 | stmt.setString(1, userid); 198 | stmt.setString(2, password); 199 | ResultSet rs = stmt.executeQuery(); 200 | ``` 201 | 202 | ### 2. 单引号转换 203 | 204 | 将传入的参数中的单引号转换为连续两个单引号,PHP 中的 Magic quote 可以完成这个功能。 205 | 206 | # 四、拒绝服务攻击 207 | 208 | 拒绝服务攻击(denial-of-service attack,DoS),亦称洪水攻击,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。 209 | 210 | 分布式拒绝服务攻击(distributed denial-of-service attack,DDoS),指攻击者使用两个或以上被攻陷的电脑作为“僵尸”向特定的目标发动“拒绝服务”式攻击。 211 | 212 | # 参考资料 213 | 214 | - [维基百科:跨站脚本](https://zh.wikipedia.org/wiki/%E8%B7%A8%E7%B6%B2%E7%AB%99%E6%8C%87%E4%BB%A4%E7%A2%BC) 215 | - [维基百科:SQL 注入攻击](https://zh.wikipedia.org/wiki/SQL%E8%B3%87%E6%96%99%E9%9A%B1%E7%A2%BC%E6%94%BB%E6%93%8A) 216 | - [维基百科:跨站点请求伪造](https://zh.wikipedia.org/wiki/%E8%B7%A8%E7%AB%99%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0) 217 | - [维基百科:拒绝服务攻击](https://zh.wikipedia.org/wiki/%E9%98%BB%E6%96%B7%E6%9C%8D%E5%8B%99%E6%94%BB%E6%93%8A) 218 | -------------------------------------------------------------------------------- /notes/集群.md: -------------------------------------------------------------------------------- 1 | 2 | * [一、负载均衡](#一负载均衡) 3 | * [负载均衡算法](#负载均衡算法) 4 | * [转发实现](#转发实现) 5 | * [二、集群下的 Session 管理](#二集群下的-session-管理) 6 | * [Sticky Session](#sticky-session) 7 | * [Session Replication](#session-replication) 8 | * [Session Server](#session-server) 9 | 10 | 11 | 12 | # 一、负载均衡 13 | 14 | 集群中的应用服务器(节点)通常被设计成无状态,用户可以请求任何一个应用服务器。 15 | 16 | 负载均衡器会根据集群中每个节点的负载情况,将用户请求转发到合适的节点上。 17 | 18 | 负载均衡器可以用来实现高可用以及伸缩性: 19 | 20 | - 高可用:当某个节点故障时,负载均衡器会将用户请求转发到另外的节点上,从而保证所有服务持续可用; 21 | - 伸缩性:可以很容易地添加移除节点。 22 | 23 | 负载均衡运行过程包含两个部分: 24 | 25 | 1. 根据负载均衡算法得到请求转发的节点; 26 | 2. 将请求进行转发。 27 | 28 | ## 负载均衡算法 29 | 30 | ### 1. 轮询(Round Robin) 31 | 32 | 轮询算法把每个请求轮流发送到每个服务器上。 33 | 34 | 下图中,一共有 6 个客户端产生了 6 个请求,这 6 个请求按 (1, 2, 3, 4, 5, 6) 的顺序发送。(1, 3, 5) 的请求会被发送到服务器 1,(2, 4, 6) 的请求会被发送到服务器 2。 35 | 36 |

37 | 38 | 该算法比较适合每个服务器的性能差不多的场景,如果有性能存在差异的情况下,那么性能较差的服务器可能无法承担过大的负载(下图的 Server 2)。 39 | 40 |

41 | 42 | ### 2. 加权轮询(Weighted Round Robbin) 43 | 44 | 加权轮询是在轮询的基础上,根据服务器的性能差异,为服务器赋予一定的权值,性能高的服务器分配更高的权值。 45 | 46 | 例如下图中,服务器 1 被赋予的权值为 5,服务器 2 被赋予的权值为 1,那么 (1, 2, 3, 4, 5) 请求会被发送到服务器 1,(6) 请求会被发送到服务器 2。 47 | 48 |

49 | 50 | ### 3. 最少连接(least Connections) 51 | 52 | 由于每个请求的连接时间不一样,使用轮询或者加权轮询算法的话,可能会让一台服务器当前连接数过大,而另一台服务器的连接过小,造成负载不均衡。 53 | 54 | 例如下图中,(1, 3, 5) 请求会被发送到服务器 1,但是 (1, 3) 很快就断开连接,此时只有 (5) 请求连接服务器 1;(2, 4, 6) 请求被发送到服务器 2,只有 (2) 的连接断开,此时 (6, 4) 请求连接服务器 2。该系统继续运行时,服务器 2 会承担过大的负载。 55 | 56 |

57 | 58 | 最少连接算法就是将请求发送给当前最少连接数的服务器上。 59 | 60 | 例如下图中,服务器 1 当前连接数最小,那么新到来的请求 6 就会被发送到服务器 1 上。 61 | 62 |

63 | 64 | ### 4. 加权最少连接(Weighted Least Connection) 65 | 66 | 在最少连接的基础上,根据服务器的性能为每台服务器分配权重,再根据权重计算出每台服务器能处理的连接数。 67 | 68 |

69 | 70 | ### 5. 随机算法(Random) 71 | 72 | 把请求随机发送到服务器上。 73 | 74 | 和轮询算法类似,该算法比较适合服务器性能差不多的场景。 75 | 76 |

77 | 78 | ### 6. 源地址哈希法 (IP Hash) 79 | 80 | 源地址哈希通过对客户端 IP 计算哈希值之后,再对服务器数量取模得到目标服务器的序号。 81 | 82 | 可以保证同一 IP 的客户端的请求会转发到同一台服务器上,用来实现会话粘滞(Sticky Session) 83 | 84 |

85 | 86 | ## 转发实现 87 | 88 | ### 1. HTTP 重定向 89 | 90 | HTTP 重定向负载均衡服务器使用某种负载均衡算法计算得到服务器的 IP 地址之后,将该地址写入 HTTP 重定向报文中,状态码为 302。客户端收到重定向报文之后,需要重新向服务器发起请求。 91 | 92 | 缺点: 93 | 94 | - 需要两次请求,因此访问延迟比较高; 95 | - HTTP 负载均衡器处理能力有限,会限制集群的规模。 96 | 97 | 该负载均衡转发的缺点比较明显,实际场景中很少使用它。 98 | 99 |

100 | 101 | ### 2. DNS 域名解析 102 | 103 | 在 DNS 解析域名的同时使用负载均衡算法计算服务器 IP 地址。 104 | 105 | 优点: 106 | 107 | - DNS 能够根据地理位置进行域名解析,返回离用户最近的服务器 IP 地址。 108 | 109 | 缺点: 110 | 111 | - 由于 DNS 具有多级结构,每一级的域名记录都可能被缓存,当下线一台服务器需要修改 DNS 记录时,需要过很长一段时间才能生效。 112 | 113 | 大型网站基本使用了 DNS 做为第一级负载均衡手段,然后在内部使用其它方式做第二级负载均衡。也就是说,域名解析的结果为内部的负载均衡服务器 IP 地址。 114 | 115 |

116 | 117 | ### 3. 反向代理服务器 118 | 119 | 首先了解一下正向代理与反向代理的区别: 120 | 121 | - 正向代理:发生在客户端,是由用户主动发起的。比如翻墙,客户端通过主动访问代理服务器,让代理服务器获得需要的外网数据,然后转发回客户端; 122 | - 反向代理:发生在服务器端,用户不知道代理的存在。 123 | 124 | 反向代理服务器位于源服务器前面,用户的请求需要先经过反向代理服务器才能到达源服务器。反向代理可以用来进行缓存、日志记录等,同时也可以用来做为负载均衡服务器。 125 | 126 | 在这种负载均衡转发方式下,客户端不直接请求源服务器,因此源服务器不需要外部 IP 地址,而反向代理需要配置内部和外部两套 IP 地址。 127 | 128 | 优点: 129 | 130 | - 与其它功能集成在一起,部署简单。 131 | 132 | 缺点: 133 | 134 | - 所有请求和响应都需要经过反向代理服务器,它可能会成为性能瓶颈。 135 | 136 | ### 4. 网络层 137 | 138 | 在操作系统内核进程获取网络数据包,根据负载均衡算法计算源服务器的 IP 地址,并修改请求数据包的目的 IP 地址,最后进行转发。 139 | 140 | 源服务器返回的响应也需要经过负载均衡服务器,通常是让负载均衡服务器同时作为集群的网关服务器来实现。 141 | 142 | 优点: 143 | 144 | - 在内核进程中进行处理,性能比较高。 145 | 146 | 缺点: 147 | 148 | - 和反向代理一样,所有的请求和响应都经过负载均衡服务器,会成为性能瓶颈。 149 | 150 | ### 5. 链路层 151 | 152 | 在链路层根据负载均衡算法计算源服务器的 MAC 地址,并修改请求数据包的目的 MAC 地址,并进行转发。 153 | 154 | 通过配置源服务器的虚拟 IP 地址和负载均衡服务器的 IP 地址一致,从而不需要修改 IP 地址就可以进行转发。也正因为 IP 地址一样,所以源服务器的响应不需要转发回负载均衡服务器,可以直接转发给客户端,避免了负载均衡服务器的成为瓶颈。 155 | 156 | 这是一种三角传输模式,被称为直接路由,对于提供下载和视频服务的网站来说,直接路由避免了大量的网络传输数据经过负载均衡服务器。 157 | 158 | 这是目前大型网站使用最广负载均衡转发方式,在 Linux 平台可以使用的负载均衡服务器为 LVS(Linux Virtual Server)。 159 | 160 | 参考: 161 | 162 | - [Comparing Load Balancing Algorithms](http://www.jscape.com/blog/load-balancing-algorithms) 163 | - [Redirection and Load Balancing](http://slideplayer.com/slide/6599069/#) 164 | 165 | # 二、集群下的 Session 管理 166 | 167 | 一个用户的 Session 信息如果存储在一个服务器上,那么当负载均衡器把用户的下一个请求转发到另一个服务器,由于服务器没有用户的 Session 信息,那么该用户就需要重新进行登录等操作。 168 | 169 | ## Sticky Session 170 | 171 | 需要配置负载均衡器,使得一个用户的所有请求都路由到同一个服务器,这样就可以把用户的 Session 存放在该服务器中。 172 | 173 | 缺点: 174 | 175 | - 当服务器宕机时,将丢失该服务器上的所有 Session。 176 | 177 |

178 | 179 | ## Session Replication 180 | 181 | 在服务器之间进行 Session 同步操作,每个服务器都有所有用户的 Session 信息,因此用户可以向任何一个服务器进行请求。 182 | 183 | 缺点: 184 | 185 | - 占用过多内存; 186 | - 同步过程占用网络带宽以及服务器处理器时间。 187 | 188 | 189 |

190 | 191 | ## Session Server 192 | 193 | 使用一个单独的服务器存储 Session 数据,可以使用传统的 MySQL,也使用 Redis 或者 Memcached 这种内存型数据库。 194 | 195 | 优点: 196 | 197 | - 为了使得大型网站具有伸缩性,集群中的应用服务器通常需要保持无状态,那么应用服务器不能存储用户的会话信息。Session Server 将用户的会话信息单独进行存储,从而保证了应用服务器的无状态。 198 | 199 | 缺点: 200 | 201 | - 需要去实现存取 Session 的代码。 202 | 203 |

204 | 205 | 参考: 206 | 207 | - [Session Management using Spring Session with JDBC DataStore](https://sivalabs.in/2018/02/session-management-using-spring-session-jdbc-datastore/) 208 | 209 | -------------------------------------------------------------------------------- /notes/缓存.md: -------------------------------------------------------------------------------- 1 | 2 | * [一、缓存特征](#一缓存特征) 3 | * [二、LRU](#二lru) 4 | * [三、缓存位置](#三缓存位置) 5 | * [四、CDN](#四cdn) 6 | * [五、缓存问题](#五缓存问题) 7 | * [六、数据分布](#六数据分布) 8 | * [七、一致性哈希](#七一致性哈希) 9 | * [参考资料](#参考资料) 10 | 11 | 12 | 13 | # 一、缓存特征 14 | 15 | ## 命中率 16 | 17 | 当某个请求能够通过访问缓存而得到响应时,称为缓存命中。 18 | 19 | 缓存命中率越高,缓存的利用率也就越高。 20 | 21 | ## 最大空间 22 | 23 | 缓存通常位于内存中,内存的空间通常比磁盘空间小的多,因此缓存的最大空间不可能非常大。 24 | 25 | 当缓存存放的数据量超过最大空间时,就需要淘汰部分数据来存放新到达的数据。 26 | 27 | ## 淘汰策略 28 | 29 | - FIFO(First In First Out):先进先出策略,在实时性的场景下,需要经常访问最新的数据,那么就可以使用 FIFO,使最先进入的数据(最晚的数据)被淘汰。 30 | 31 | - LRU(Least Recently Used):最近最久未使用策略,优先淘汰最久未使用的数据,也就是上次被访问时间距离现在最远的数据。该策略可以保证内存中的数据都是热点数据,也就是经常被访问的数据,从而保证缓存命中率。 32 | 33 | # 二、LRU 34 | 35 | 以下是一个基于 双向链表 + HashMap 的 LRU 算法实现,对算法的解释如下: 36 | 37 | - 最基本的思路是当访问某个节点时,将其从原来的位置删除,并重新插入到链表头部,这样就能保证链表尾部存储的就是最近最久未使用的节点,当节点数量大于缓存最大空间时就删除链表尾部的节点。 38 | - 为了使删除操作时间复杂度为 O(1),那么就不能采用遍历的方式找到某个节点。HashMap 存储着 Key 到节点的映射,通过 Key 就能以 O(1) 的时间得到节点,然后再以 O(1) 的时间将其从双向队列中删除。 39 | 40 | ```java 41 | public class LRU implements Iterable { 42 | 43 | private Node head; 44 | private Node tail; 45 | private HashMap map; 46 | private int maxSize; 47 | 48 | private class Node { 49 | 50 | Node pre; 51 | Node next; 52 | K k; 53 | V v; 54 | 55 | public Node(K k, V v) { 56 | this.k = k; 57 | this.v = v; 58 | } 59 | } 60 | 61 | public LRU(int maxSize) { 62 | 63 | this.maxSize = maxSize; 64 | this.map = new HashMap<>(maxSize * 4 / 3); 65 | 66 | head = new Node(null, null); 67 | tail = new Node(null, null); 68 | 69 | head.next = tail; 70 | tail.pre = head; 71 | } 72 | 73 | public V get(K key) { 74 | 75 | if (!map.containsKey(key)) { 76 | return null; 77 | } 78 | 79 | Node node = map.get(key); 80 | unlink(node); 81 | appendHead(node); 82 | 83 | return node.v; 84 | } 85 | 86 | public void put(K key, V value) { 87 | 88 | if (map.containsKey(key)) { 89 | Node node = map.get(key); 90 | unlink(node); 91 | } 92 | 93 | Node node = new Node(key, value); 94 | map.put(key, node); 95 | appendHead(node); 96 | 97 | if (map.size() > maxSize) { 98 | Node toRemove = removeTail(); 99 | map.remove(toRemove); 100 | } 101 | } 102 | 103 | private void unlink(Node node) { 104 | Node pre = node.pre; 105 | node.pre = node.next; 106 | node.next = pre; 107 | } 108 | 109 | private void appendHead(Node node) { 110 | node.next = head.next; 111 | head.next = node; 112 | } 113 | 114 | private Node removeTail() { 115 | Node node = tail.pre; 116 | node.pre = tail; 117 | return node; 118 | } 119 | 120 | @Override 121 | public Iterator iterator() { 122 | 123 | return new Iterator() { 124 | 125 | private Node cur = head.next; 126 | 127 | @Override 128 | public boolean hasNext() { 129 | return cur != tail; 130 | } 131 | 132 | @Override 133 | public K next() { 134 | Node node = cur; 135 | cur = cur.next; 136 | return node.k; 137 | } 138 | }; 139 | } 140 | } 141 | ``` 142 | 143 | # 三、缓存位置 144 | 145 | ## 浏览器 146 | 147 | 当 HTTP 响应允许进行缓存时,浏览器会将 HTML、CSS、JavaScript、图片等静态资源进行缓存。 148 | 149 | ## ISP 150 | 151 | 网络服务提供商(ISP)是网络访问的第一跳,通过将数据缓存在 ISP 中能够大大提高用户的访问速度。 152 | 153 | ## 反向代理 154 | 155 | 反向代理位于服务器之前,请求与响应都需要经过反向代理。通过将数据缓存在反向代理,在用户请求时就可以直接使用缓存进行响应。 156 | 157 | ## 本地缓存 158 | 159 | 使用 Guava Cache 将数据缓存在服务器本地内存中,服务器代码可以直接读取本地内存中的缓存,速度非常快。 160 | 161 | ## 分布式缓存 162 | 163 | 使用 Redis、Memcache 等分布式缓存将数据缓存在分布式缓存系统中。 164 | 165 | 相对于本地缓存来说,分布式缓存单独部署,可以根据需求分配硬件资源。不仅如此,服务器集群都可以访问分布式缓存,而本地缓存需要在服务器集群之间进行同步,实现和性能开销上都非常大。 166 | 167 | ## 数据库缓存 168 | 169 | MySQL 等数据库管理系统具有自己的查询缓存机制来提高 SQL 查询效率。 170 | 171 | # 四、CDN 172 | 173 | 内容分发网络(Content distribution network,CDN)是一种互连的网络系统,它利用更靠近用户的服务器从而更快更可靠地将 HTML、CSS、JavaScript、音乐、图片、视频等静态资源分发给用户。 174 | 175 | CDN 主要有以下优点: 176 | 177 | - 更快地将数据分发给用户; 178 | - 通过部署多台服务器,从而提高系统整体的带宽性能; 179 | - 多台服务器可以看成是一种冗余机制,从而具有高可用性。 180 | 181 |

182 | 183 | # 五、缓存问题 184 | 185 | ## 缓存穿透 186 | 187 | 指的是对某个一定不存在的数据进行请求,该请求将会穿透缓存到达数据库。 188 | 189 | 解决方案: 190 | 191 | - 对这些不存在的数据缓存一个空数据; 192 | - 对这类请求进行过滤。 193 | 194 | ## 缓存雪崩 195 | 196 | 指的是由于数据没有被加载到缓存中,或者缓存数据在同一时间大面积失效(过期),又或者缓存服务器宕机,导致大量的请求都去到达数据库。 197 | 198 | 在存在缓存的系统中,系统非常依赖于缓存,缓存分担了很大一部分的数据请求。当发生缓存雪崩时,数据库无法处理这么大的请求,导致数据库崩溃。 199 | 200 | 解决方案: 201 | 202 | - 为了防止缓存在同一时间大面积过期导致的缓存雪崩,可以通过观察用户行为,合理设置缓存过期时间来实现; 203 | - 为了防止缓存服务器宕机出现的缓存雪崩,可以使用分布式缓存,分布式缓存中每一个节点只缓存部分的数据,当某个节点宕机时可以保证其它节点的缓存仍然可用。 204 | - 也可以进行缓存预热,避免在系统刚启动不久由于还未将大量数据进行缓存而导致缓存雪崩。 205 | 206 | ## 缓存一致性 207 | 208 | 缓存一致性要求数据更新的同时缓存数据也能够实时更新。 209 | 210 | 解决方案: 211 | 212 | - 在数据更新的同时立即去更新缓存; 213 | - 在读缓存之前先判断缓存是否是最新的,如果不是最新的先进行更新。 214 | 215 | 要保证缓存一致性需要付出很大的代价,缓存数据最好是那些对一致性要求不高的数据,允许缓存数据存在一些脏数据。 216 | 217 | # 六、数据分布 218 | 219 | ## 哈希分布 220 | 221 | 哈希分布就是将数据计算哈希值之后,按照哈希值分配到不同的节点上。例如有 N 个节点,数据的主键为 key,则将该数据分配的节点序号为:hash(key)%N。 222 | 223 | 传统的哈希分布算法存在一个问题:当节点数量变化时,也就是 N 值变化,那么几乎所有的数据都需要重新分布,将导致大量的数据迁移。 224 | 225 | ## 顺序分布 226 | 227 | 将数据划分为多个连续的部分,按数据的 ID 或者时间分布到不同节点上。例如 User 表的 ID 范围为 1 \~ 7000,使用顺序分布可以将其划分成多个子表,对应的主键范围为 1 \~ 1000,1001 \~ 2000,...,6001 \~ 7000。 228 | 229 | 顺序分布相比于哈希分布的主要优点如下: 230 | 231 | - 能保持数据原有的顺序; 232 | - 并且能够准确控制每台服务器存储的数据量,从而使得存储空间的利用率最大。 233 | 234 | # 七、一致性哈希 235 | 236 | Distributed Hash Table(DHT) 是一种哈希分布方式,其目的是为了克服传统哈希分布在服务器节点数量变化时大量数据失效的问题。 237 | 238 | ## 基本原理 239 | 240 | 将哈希空间 [0, 2n-1] 看成一个哈希环,每个服务器节点都配置到哈希环上。每个数据对象通过哈希取模得到哈希值之后,存放到哈希环中顺时针方向第一个大于等于该哈希值的节点上。 241 | 242 |

243 | 244 | 一致性哈希在增加或者删除节点时只会影响到哈希环中相邻的节点,例如下图中新增节点 X,只需要将它前一个节点 C 上的数据重新进行分布即可,对于节点 A、B、D 都没有影响。 245 | 246 |

247 | 248 | ## 虚拟节点 249 | 250 | 上面描述的一致性哈希存在数据分布不均匀的问题,节点存储的数据量有可能会存在很大的不同。 251 | 252 | 数据不均匀主要是因为节点在哈希环上分布的不均匀,这种情况在节点数量很少的情况下尤其明显。解决方式是通过增加虚拟节点,然后将虚拟节点映射到真实节点上。虚拟节点的数量比真实节点来得大,那么虚拟节点在哈希环上分布的均匀性就会比原来的真实节点好,从而使得数据分布也更加均匀。 253 | 254 | # 参考资料 255 | 256 | - 大规模分布式存储系统 257 | - [缓存那些事](https://tech.meituan.com/cache_about.html) 258 | - [一致性哈希算法](https://my.oschina.net/jayhu/blog/732849) 259 | - [内容分发网络](https://zh.wikipedia.org/wiki/%E5%85%A7%E5%AE%B9%E5%82%B3%E9%81%9E%E7%B6%B2%E8%B7%AF) 260 | - [How Aspiration CDN helps to improve your website loading speed?](https://www.aspirationhosting.com/aspiration-cdn/) 261 | -------------------------------------------------------------------------------- /notes/正则表达式.md: -------------------------------------------------------------------------------- 1 | 2 | * [一、概述](#一概述) 3 | * [二、匹配单个字符](#二匹配单个字符) 4 | * [三、匹配一组字符](#三匹配一组字符) 5 | * [四、使用元字符](#四使用元字符) 6 | * [五、重复匹配](#五重复匹配) 7 | * [六、位置匹配](#六位置匹配) 8 | * [七、使用子表达式](#七使用子表达式) 9 | * [八、回溯引用](#八回溯引用) 10 | * [九、前后查找](#九前后查找) 11 | * [十、嵌入条件](#十嵌入条件) 12 | * [参考资料](#参考资料) 13 | 14 | 15 | 16 | # 一、概述 17 | 18 | 正则表达式用于文本内容的查找和替换。 19 | 20 | 正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或者软件。 21 | 22 | [正则表达式在线工具](https://regexr.com/) 23 | 24 | # 二、匹配单个字符 25 | 26 | **.** 可以用来匹配任何的单个字符,但是在绝大多数实现里面,不能匹配换行符; 27 | 28 | **.** 是元字符,表示它有特殊的含义,而不是字符本身的含义。如果需要匹配 . ,那么要用 \ 进行转义,即在 . 前面加上 \ 。 29 | 30 | 正则表达式一般是区分大小写的,但是也有些实现是不区分。 31 | 32 | **正则表达式** 33 | 34 | ``` 35 | nam. 36 | ``` 37 | 38 | **匹配结果** 39 | 40 | My **name** is Zheng. 41 | 42 | # 三、匹配一组字符 43 | 44 | **[ ]** 定义一个字符集合; 45 | 46 | 0-9、a-z 定义了一个字符区间,区间使用 ASCII 码来确定,字符区间在 [ ] 中使用。 47 | 48 | **-** 只有在 [ ] 之间才是元字符,在 [ ] 之外就是一个普通字符; 49 | 50 | **^** 在 [ ] 中是取非操作。 51 | 52 | **应用** 53 | 54 | 匹配以 abc 为开头,并且最后一个字母不为数字的字符串: 55 | 56 | **正则表达式** 57 | 58 | ``` 59 | abc[^0-9] 60 | ``` 61 | 62 | **匹配结果** 63 | 64 | 1. **abcd** 65 | 2. abc1 66 | 3. abc2 67 | 68 | # 四、使用元字符 69 | 70 | ## 匹配空白字符 71 | 72 | | 元字符 | 说明 | 73 | | :---: | :---: | 74 | | [\b] | 回退(删除)一个字符 | 75 | | \f | 换页符 | 76 | | \n | 换行符 | 77 | | \r | 回车符 | 78 | | \t | 制表符 | 79 | | \v | 垂直制表符 | 80 | 81 | \r\n 是 Windows 中的文本行结束标签,在 Unix/Linux 则是 \n。 82 | 83 | \r\n\r\n 可以匹配 Windows 下的空白行,因为它将匹配两个连续的行尾标签,而这正是两条记录之间的空白行; 84 | 85 | ## 匹配特定的字符类别 86 | 87 | ### 1. 数字元字符 88 | 89 | | 元字符 | 说明 | 90 | | :---: | :---: | 91 | | \d | 数字字符,等价于 [0-9] | 92 | | \D | 非数字字符,等价于 [^0-9] | 93 | 94 | ### 2. 字母数字元字符 95 | 96 | | 元字符 | 说明 | 97 | | :---: | :---: | 98 | | \w | 大小写字母,下划线和数字,等价于 [a-zA-Z0-9\_] | 99 | | \W | 对 \w 取非 | 100 | 101 | ### 3. 空白字符元字符 102 | 103 | | 元字符 | 说明 | 104 | | :---: | :---: | 105 | | \s | 任何一个空白字符,等价于 [\f\n\r\t\v] | 106 | | \S | 对 \s 取非 | 107 | 108 | \x 匹配十六进制字符,\0 匹配八进制,例如 \x0A 对应 ASCII 字符 10,等价于 \n。 109 | 110 | # 五、重复匹配 111 | 112 | - **\+** 匹配 1 个或者多个字符 113 | - **\** * 匹配 0 个或者多个 114 | - **?** 匹配 0 个或者 1 个 115 | 116 | **应用** 117 | 118 | 匹配邮箱地址。 119 | 120 | **正则表达式** 121 | 122 | ``` 123 | [\w.]+@\w+\.\w+ 124 | ``` 125 | 126 | [\w.] 匹配的是字母数字或者 . ,在其后面加上 + ,表示匹配多次。在字符集合 [ ] 里,. 不是元字符; 127 | 128 | **匹配结果** 129 | 130 | **abc.def@qq.com** 131 | 132 | - **{n}** 匹配 n 个字符 133 | - **{m, n}** 匹配 m\~n 个字符 134 | - **{m,}** 至少匹配 m 个字符 135 | 136 | \* 和 + 都是贪婪型元字符,会匹配最多的内容。在后面加 ? 可以转换为懒惰型元字符,例如 \*?、+? 和 {m, n}? 。 137 | 138 | **正则表达式** 139 | 140 | ``` 141 | a.+c 142 | ``` 143 | 144 | 由于 + 是贪婪型的,因此 .+ 会匹配更可能多的内容,所以会把整个 abcabcabc 文本都匹配,而不是只匹配前面的 abc 文本。用懒惰型可以实现匹配前面的。 145 | 146 | **匹配结果** 147 | 148 | **abcabcabc** 149 | 150 | # 六、位置匹配 151 | 152 | ## 单词边界 153 | 154 | **\b** 可以匹配一个单词的边界,边界是指位于 \w 和 \W 之间的位置;**\B** 匹配一个不是单词边界的位置。 155 | 156 | \b 只匹配位置,不匹配字符,因此 \babc\b 匹配出来的结果为 3 个字符。 157 | 158 | ## 字符串边界 159 | 160 | **^** 匹配整个字符串的开头,**$** 匹配结尾。 161 | 162 | ^ 元字符在字符集合中用作求非,在字符集合外用作匹配字符串的开头。 163 | 164 | 分行匹配模式(multiline)下,换行被当做字符串的边界。 165 | 166 | **应用** 167 | 168 | 匹配代码中以 // 开始的注释行 169 | 170 | **正则表达式** 171 | 172 | ``` 173 | ^\s*\/\/.*$ 174 | ``` 175 | 176 |

177 | 178 | **匹配结果** 179 | 180 | 1. public void fun() { 181 | 2.      **// 注释 1** 182 | 3.      int a = 1; 183 | 4.      int b = 2; 184 | 5.      **// 注释 2** 185 | 6.      int c = a + b; 186 | 7. } 187 | 188 | # 七、使用子表达式 189 | 190 | 使用 **( )** 定义一个子表达式。子表达式的内容可以当成一个独立元素,即可以将它看成一个字符,并且使用 * 等元字符。 191 | 192 | 子表达式可以嵌套,但是嵌套层次过深会变得很难理解。 193 | 194 | **正则表达式** 195 | 196 | ``` 197 | (ab){2,} 198 | ``` 199 | 200 | **匹配结果** 201 | 202 | **ababab** 203 | 204 | **|** 是或元字符,它把左边和右边所有的部分都看成单独的两个部分,两个部分只要有一个匹配就行。 205 | 206 | **正则表达式** 207 | 208 | ``` 209 | (19|20)\d{2} 210 | ``` 211 | 212 | **匹配结果** 213 | 214 | 1. **1900** 215 | 2. **2010** 216 | 3. 1020 217 | 218 | **应用** 219 | 220 | 匹配 IP 地址。 221 | 222 | IP 地址中每部分都是 0-255 的数字,用正则表达式匹配时以下情况是合法的: 223 | 224 | - 一位数字 225 | - 不以 0 开头的两位数字 226 | - 1 开头的三位数 227 | - 2 开头,第 2 位是 0-4 的三位数 228 | - 25 开头,第 3 位是 0-5 的三位数 229 | 230 | **正则表达式** 231 | 232 | ``` 233 | ((25[0-5]|(2[0-4]\d)|(1\d{2})|([1-9]\d)|(\d))\.){3}(25[0-5]|(2[0-4]\d)|(1\d{2})|([1-9]\d)|(\d)) 234 | ``` 235 | 236 | **匹配结果** 237 | 238 | 1. **192.168.0.1** 239 | 2. 00.00.00.00 240 | 3. 555.555.555.555 241 | 242 | # 八、回溯引用 243 | 244 | 回溯引用使用 **\n** 来引用某个子表达式,其中 n 代表的是子表达式的序号,从 1 开始。它和子表达式匹配的内容一致,比如子表达式匹配到 abc,那么回溯引用部分也需要匹配 abc 。 245 | 246 | **应用** 247 | 248 | 匹配 HTML 中合法的标题元素。 249 | 250 | **正则表达式** 251 | 252 | \1 将回溯引用子表达式 (h[1-6]) 匹配的内容,也就是说必须和子表达式匹配的内容一致。 253 | 254 | ``` 255 | <(h[1-6])>\w*?<\/\1> 256 | ``` 257 | 258 | **匹配结果** 259 | 260 | 1. **<h1>x</h1>** 261 | 2. **<h2>x</h2>** 262 | 3. <h3>x</h1> 263 | 264 | ## 替换 265 | 266 | 需要用到两个正则表达式。 267 | 268 | **应用** 269 | 270 | 修改电话号码格式。 271 | 272 | **文本** 273 | 274 | 313-555-1234 275 | 276 | **查找正则表达式** 277 | 278 | ``` 279 | (\d{3})(-)(\d{3})(-)(\d{4}) 280 | ``` 281 | 282 | **替换正则表达式** 283 | 284 | 在第一个子表达式查找的结果加上 () ,然后加一个空格,在第三个和第五个字表达式查找的结果中间加上 - 进行分隔。 285 | 286 | ``` 287 | ($1) $3-$5 288 | ``` 289 | 290 | **结果** 291 | 292 | (313) 555-1234 293 | 294 | ## 大小写转换 295 | 296 | | 元字符 | 说明 | 297 | | :---: | :---: | 298 | | \l | 把下个字符转换为小写 | 299 | | \u| 把下个字符转换为大写 | 300 | | \L | 把\L 和\E 之间的字符全部转换为小写 | 301 | | \U | 把\U 和\E 之间的字符全部转换为大写 | 302 | | \E | 结束\L 或者\U | 303 | 304 | **应用** 305 | 306 | 把文本的第二个和第三个字符转换为大写。 307 | 308 | **文本** 309 | 310 | abcd 311 | 312 | **查找** 313 | 314 | ``` 315 | (\w)(\w{2})(\w) 316 | ``` 317 | 318 | **替换** 319 | 320 | ``` 321 | $1\U$2\E$3 322 | ``` 323 | 324 | **结果** 325 | 326 | aBCd 327 | 328 | # 九、前后查找 329 | 330 | 前后查找规定了匹配的内容首尾应该匹配的内容,但是又不包含首尾匹配的内容。向前查找用 **?=** 来定义,它规定了尾部匹配的内容,这个匹配的内容在 ?= 之后定义。所谓向前查找,就是规定了一个匹配的内容,然后以这个内容为尾部向前面查找需要匹配的内容。向后匹配用 ?<= 定义(注: javaScript 不支持向后匹配, java 对其支持也不完善)。 331 | 332 | **应用** 333 | 334 | 查找出邮件地址 @ 字符前面的部分。 335 | 336 | **正则表达式** 337 | 338 | ``` 339 | \w+(?=@) 340 | ``` 341 | 342 | **结果** 343 | 344 | **abc** @qq.com 345 | 346 | 对向前和向后查找取非,只要把 = 替换成 ! 即可,比如 (?=) 替换成 (?!) 。取非操作使得匹配那些首尾不符合要求的内容。 347 | 348 | # 十、嵌入条件 349 | 350 | ## 回溯引用条件 351 | 352 | 条件判断为某个子表达式是否匹配,如果匹配则需要继续匹配条件表达式后面的内容。 353 | 354 | **正则表达式** 355 | 356 | 子表达式 (\\() 匹配一个左括号,其后的 ? 表示匹配 0 个或者 1 个。 ?(1) 为条件,当子表达式 1 匹配时条件成立,需要执行 \) 匹配,也就是匹配右括号。 357 | 358 | ``` 359 | (\()?abc(?(1)\)) 360 | ``` 361 | 362 | **结果** 363 | 364 | 1. **(abc)** 365 | 2. **abc** 366 | 3. (abc 367 | 368 | ## 前后查找条件 369 | 370 | 条件为定义的首尾是否匹配,如果匹配,则继续执行后面的匹配。注意,首尾不包含在匹配的内容中。 371 | 372 | **正则表达式** 373 | 374 | ?(?=-) 为前向查找条件,只有在以 - 为前向查找的结尾能匹配 \d{5} ,才继续匹配 -\d{4} 。 375 | 376 | ``` 377 | \d{5}(?(?=-)-\d{4}) 378 | ``` 379 | 380 | **结果** 381 | 382 | 1. **11111** 383 | 2. 22222- 384 | 3. **33333-4444** 385 | 386 | # 参考资料 387 | 388 | - BenForta. 正则表达式必知必会 [M]. 人民邮电出版社, 2007. 389 | -------------------------------------------------------------------------------- /notes/代码可读性.md: -------------------------------------------------------------------------------- 1 | 2 | * [一、可读性的重要性](#一可读性的重要性) 3 | * [二、用名字表达代码含义](#二用名字表达代码含义) 4 | * [三、名字不能带来歧义](#三名字不能带来歧义) 5 | * [四、良好的代码风格](#四良好的代码风格) 6 | * [五、为何编写注释](#五为何编写注释) 7 | * [六、如何编写注释](#六如何编写注释) 8 | * [七、提高控制流的可读性](#七提高控制流的可读性) 9 | * [八、拆分长表达式](#八拆分长表达式) 10 | * [九、变量与可读性](#九变量与可读性) 11 | * [十、抽取函数](#十抽取函数) 12 | * [十一、一次只做一件事](#十一一次只做一件事) 13 | * [十二、用自然语言表述代码](#十二用自然语言表述代码) 14 | * [十三、减少代码量](#十三减少代码量) 15 | * [参考资料](#参考资料) 16 | 17 | 18 | 19 | # 一、可读性的重要性 20 | 21 | 编程有很大一部分时间是在阅读代码,不仅要阅读自己的代码,而且要阅读别人的代码。因此,可读性良好的代码能够大大提高编程效率。 22 | 23 | 可读性良好的代码往往会让代码架构更好,因为程序员更愿意去修改这部分代码,而且也更容易修改。 24 | 25 | 只有在核心领域为了效率才可以放弃可读性,否则可读性是第一位。 26 | 27 | # 二、用名字表达代码含义 28 | 29 | 一些比较有表达力的单词: 30 | 31 | | 单词 | 可替代单词 | 32 | | :---: | --- | 33 | | send | deliver、dispatch、announce、distribute、route | 34 | | find | search、extract、locate、recover | 35 | | start| launch、create、begin、open| 36 | | make | create、set up、build、generate、compose、add、new | 37 | 38 | 使用 i、j、k 作为循环迭代器的名字过于简单,user_i、member_i 这种名字会更有表达力。因为循环层次越多,代码越难理解,有表达力的迭代器名字可读性会更高。 39 | 40 | 为名字添加形容词等信息能让名字更具有表达力,但是名字也会变长。名字长短的准则是:作用域越大,名字越长。因此只有在短作用域才能使用一些简单名字。 41 | 42 | # 三、名字不能带来歧义 43 | 44 | 起完名字要思考一下别人会对这个名字有何解读,会不会误解了原本想表达的含义。 45 | 46 | 布尔相关的命名加上 is、can、should、has 等前缀。 47 | 48 | - 用 min、max 表示数量范围; 49 | - 用 first、last 表示访问空间的包含范围; 50 | - begin、end 表示访问空间的排除范围,即 end 不包含尾部。 51 | 52 |

53 | 54 | # 四、良好的代码风格 55 | 56 | 适当的空行和缩进。 57 | 58 | 排列整齐的注释: 59 | 60 | ```java 61 | int a = 1; // 注释 62 | int b = 11; // 注释 63 | int c = 111; // 注释 64 | ``` 65 | 66 | 语句顺序不能随意,比如与 html 表单相关联的变量的赋值应该和表单在 html 中的顺序一致。 67 | 68 | # 五、为何编写注释 69 | 70 | 阅读代码首先会注意到注释,如果注释没太大作用,那么就会浪费代码阅读的时间。那些能直接看出含义的代码不需要写注释,特别是并不需要为每个方法都加上注释,比如那些简单的 getter 和 setter 方法,为这些方法写注释反而让代码可读性更差。 71 | 72 | 不能因为有注释就随便起个名字,而是争取起个好名字而不写注释。 73 | 74 | 可以用注释来记录采用当前解决办法的思考过程,从而让读者更容易理解代码。 75 | 76 | 注释用来提醒一些特殊情况。 77 | 78 | 用 TODO 等做标记: 79 | 80 | | 标记 | 用法 | 81 | |---|---| 82 | |TODO| 待做 | 83 | |FIXME| 待修复 | 84 | |HACK| 粗糙的解决方案 | 85 | |XXX| 危险!这里有重要的问题 | 86 | 87 | # 六、如何编写注释 88 | 89 | 尽量简洁明了: 90 | 91 | ```java 92 | // The first String is student's name 93 | // The Second Integer is student's score 94 | Map scoreMap = new HashMap<>(); 95 | ``` 96 | 97 | ```java 98 | // Student's name -> Student's score 99 | Map scoreMap = new HashMap<>(); 100 | ``` 101 | 102 | 添加测试用例来说明: 103 | 104 | ```java 105 | // ... 106 | // Example: add(1, 2), return 3 107 | int add(int x, int y) { 108 | return x + y; 109 | } 110 | ``` 111 | 112 | 使用专业名词来缩短概念上的解释,比如用设计模式名来说明代码。 113 | 114 | # 七、提高控制流的可读性 115 | 116 | 条件表达式中,左侧是变量,右侧是常数。比如下面第一个语句正确: 117 | 118 | ```java 119 | if (len < 10) 120 | if (10 > len) 121 | ``` 122 | 123 | 只有在逻辑简单的情况下使用 ? : 三目运算符来使代码更紧凑,否则应该拆分成 if / else; 124 | 125 | do / while 的条件放在后面,不够简单明了,并且会有一些迷惑的地方,最好使用 while 来代替。 126 | 127 | 如果只有一个 goto 目标,那么 goto 尚且还能接受,但是过于复杂的 goto 会让代码可读性特别差,应该避免使用 goto。 128 | 129 | 在嵌套的循环中,用一些 return 语句往往能减少嵌套的层数。 130 | 131 | # 八、拆分长表达式 132 | 133 | 长表达式的可读性很差,可以引入一些解释变量从而拆分表达式: 134 | 135 | ```python 136 | if line.split(':')[0].strip() == "root": 137 | ... 138 | ``` 139 | ```python 140 | username = line.split(':')[0].strip() 141 | if username == "root": 142 | ... 143 | ``` 144 | 145 | 使用摩根定理简化一些逻辑表达式: 146 | 147 | ```java 148 | if (!a && !b) { 149 | ... 150 | } 151 | ``` 152 | ```java 153 | if (!(a || b)) { 154 | ... 155 | } 156 | ``` 157 | 158 | # 九、变量与可读性 159 | 160 | **去除控制流变量** 。在循环中通过使用 break 或者 return 可以减少控制流变量的使用。 161 | 162 | ```java 163 | boolean done = false; 164 | while (/* condition */ && !done) { 165 | ... 166 | if ( ... ) { 167 | done = true; 168 | continue; 169 | } 170 | } 171 | ``` 172 | 173 | ```java 174 | while(/* condition */) { 175 | ... 176 | if ( ... ) { 177 | break; 178 | } 179 | } 180 | ``` 181 | 182 | **减小变量作用域** 。作用域越小,越容易定位到变量所有使用的地方。 183 | 184 | JavaScript 可以用闭包减小作用域。以下代码中 submit_form 是函数变量,submitted 变量控制函数不会被提交两次。第一个实现中 submitted 是全局变量,第二个实现把 submitted 放到匿名函数中,从而限制了起作用域范围。 185 | 186 | ```js 187 | submitted = false; 188 | var submit_form = function(form_name) { 189 | if (submitted) { 190 | return; 191 | } 192 | submitted = true; 193 | }; 194 | ``` 195 | 196 | ```js 197 | var submit_form = (function() { 198 | var submitted = false; 199 | return function(form_name) { 200 | if(submitted) { 201 | return; 202 | } 203 | submitted = true; 204 | } 205 | }()); // () 使得外层匿名函数立即执行 206 | ``` 207 | 208 | JavaScript 中没有用 var 声明的变量都是全局变量,而全局变量很容易造成迷惑,因此应当总是用 var 来声明变量。 209 | 210 | 变量定义的位置应当离它使用的位置最近。 211 | 212 | **实例解析** 213 | 214 | 在一个网页中有以下文本输入字段: 215 | 216 | ```html 217 | 218 | 219 | 220 | 221 | ``` 222 | 223 | 现在要接受一个字符串并把它放到第一个空的 input 字段中,初始实现如下: 224 | 225 | ```js 226 | var setFirstEmptyInput = function(new_alue) { 227 | var found = false; 228 | var i = 1; 229 | var elem = document.getElementById('input' + i); 230 | while (elem != null) { 231 | if (elem.value === '') { 232 | found = true; 233 | break; 234 | } 235 | i++; 236 | elem = document.getElementById('input' + i); 237 | } 238 | if (found) elem.value = new_value; 239 | return elem; 240 | } 241 | ``` 242 | 243 | 以上实现有以下问题: 244 | 245 | - found 可以去除; 246 | - elem 作用域过大; 247 | - 可以用 for 循环代替 while 循环; 248 | 249 | ```js 250 | var setFirstEmptyInput = function(new_value) { 251 | for (var i = 1; true; i++) { 252 | var elem = document.getElementById('input' + i); 253 | if (elem === null) { 254 | return null; 255 | } 256 | if (elem.value === '') { 257 | elem.value = new_value; 258 | return elem; 259 | } 260 | } 261 | }; 262 | ``` 263 | 264 | # 十、抽取函数 265 | 266 | 工程学就是把大问题拆分成小问题再把这些问题的解决方案放回一起。 267 | 268 | 首先应该明确一个函数的高层次目标,然后对于不是直接为了这个目标工作的代码,抽取出来放到独立的函数中。 269 | 270 | 介绍性的代码: 271 | 272 | ```java 273 | int findClostElement(int[] arr) { 274 | int clostIdx; 275 | int clostDist = Interger.MAX_VALUE; 276 | for (int i = 0; i < arr.length; i++) { 277 | int x = ...; 278 | int y = ...; 279 | int z = ...; 280 | int value = x * y * z; 281 | int dist = Math.sqrt(Math.pow(value, 2), Math.pow(arr[i], 2)); 282 | if (dist < clostDist) { 283 | clostIdx = i; 284 | clostDist = value; 285 | } 286 | } 287 | return clostIdx; 288 | } 289 | ``` 290 | 291 | 以上代码中循环部分主要计算距离,这部分不属于代码高层次目标,高层次目标是寻找最小距离的值,因此可以把这部分代替提取到独立的函数中。这样做也带来一个额外的好处有:可以单独进行测试、可以快速找到程序错误并修改。 292 | 293 | ```java 294 | public int findClostElement(int[] arr) { 295 | int clostIdx; 296 | int clostDist = Interger.MAX_VALUE; 297 | for (int i = 0; i < arr.length; i++) { 298 | int dist = computDist(arr, i); 299 | if (dist < clostDist) { 300 | clostIdx = i; 301 | clostDist = value; 302 | } 303 | } 304 | return clostIdx; 305 | } 306 | ``` 307 | 308 | 并不是函数抽取的越多越好,如果抽取过多,在阅读代码的时候可能需要不断跳来跳去。只有在当前函数不需要去了解某一块代码细节而能够表达其内容时,把这块代码抽取成子函数才是好的。 309 | 310 | 函数抽取也用于减小代码的冗余。 311 | 312 | # 十一、一次只做一件事 313 | 314 | 只做一件事的代码很容易让人知道其要做的事; 315 | 316 | 基本流程:列出代码所做的所有任务;把每个任务拆分到不同的函数,或者不同的段落。 317 | 318 | # 十二、用自然语言表述代码 319 | 320 | 先用自然语言书写代码逻辑,也就是伪代码,然后再写代码,这样代码逻辑会更清晰。 321 | 322 | # 十三、减少代码量 323 | 324 | 不要过度设计,编码过程会有很多变化,过度设计的内容到最后往往是无用的。 325 | 326 | 多用标准库实现。 327 | 328 | # 参考资料 329 | 330 | - Dustin, Boswell, Trevor, 等. 编写可读代码的艺术 [M]. 机械工业出版社, 2012. 331 | --------------------------------------------------------------------------------