1. Proses Eksekusi Servlet
Klien mengeluarkan permintaan HTTP, dan server web meneruskan permintaan ke wadah Servlet. Wadah servlet mem -parsing URL dan menemukan servlet yang sesuai berdasarkan web.xml, dan meneruskan objek permintaan dan respons ke servlet yang ditemukan. Servlet dapat mengetahui siapa yang mengeluarkan permintaan, meminta informasi dan informasi lainnya berdasarkan permintaan. Setelah Servlet memproses logika bisnis, itu akan memasukkan informasi ke dalam tanggapan dan menanggapi klien.
2. Proses eksekusi springmvc
SpringMVC adalah kerangka kerja kontrol hierarkis dengan DispatchServer sebagai intinya. Pertama, klien mengeluarkan permintaan ke server web untuk mengurai URL permintaan dan mencocokkan URL pemetaan dari DispatchServer. Jika cocok, masukkan permintaan ini ke DispatchSerVlet. DispatchServlet mencari pegangan yang sesuai sesuai dengan konfigurasi pemetaan pemetaan, dan kemudian menyerahkan hak pemrosesan ke pegangan yang ditemukan. Pegangan merangkum kode untuk memproses logika bisnis. Setelah pegangan diproses, ia akan mengembalikan tampilan logis ModelView ke DispatchServer. Pada saat ini, ModelView adalah tampilan logis, bukan tampilan formal, sehingga DispatchServer akan menguraikan ModelView melalui sumber daya tampilan ViewResource, dan kemudian memasukkan parameter yang diuraikan ke dalam tampilan dan kembali ke klien dan menampilkannya.
3. Diberikan file txt, cara mendapatkan berapa kali string tertentu muncul
File file = file baru ("e: //test.txt"); inputStream adalah = fileInputStream baru (file); byte b [] = byte baru [1024]; int a = is.read (b); string str [] = int string (b, 0, a) .split (""); int count = 0; for (b, 0, a) .split (""); int count = 0; for (b, b, 0, a) .split (""); int count = 0; for (b, b, a) .split (""); int count = 0; for (b, b, a) .split (""); int count = 0; for (b, b, a) .split (" 0; i <str.length; i ++) {if ("a" .equals (str [i])) count ++;} system.out.println (count); 4. Ide Model Desain Java (mode satu kolom, mode pabrik, mode strategi, total 23 mode desain)
A) Singleton Mode: Inti dari mode singleton hanya membutuhkan mode objek satu instance baru, seperti koneksi basis data, jumlah orang online, dll. Statistik nomor online yang terlihat di beberapa situs web diimplementasikan melalui mode Singleton, yang menyimpan timer dalam database atau memori. Ketika seseorang masuk, menambahkannya dan mengembalikannya lagi dan lagi. Ketika seseorang keluar, keluarkan dan kurangi dan mengembalikannya lagi dan lagi. Namun, ketika dua orang masuk pada saat yang sama, mereka akan mengambil konter pada saat yang sama, tambahkan satu pada saat yang sama, dan kembalikan pada saat yang sama. Dengan cara ini, data akan salah. Oleh karena itu, objek variabel global diperlukan untuk semua orang untuk digunakan, dan hanya satu objek instance yang diperlukan. Ini adalah aplikasi mode singleton, dan mode singleton menghemat sumber daya karena mengontrol jumlah objek instan dan kondusif untuk daur ulang GC.
b) Pola Kebijakan: Ini untuk mengekstraksi metode umum di beberapa kelas ke dalam kelas baru, sehingga dapat diperluas lebih mudah, memastikan portabilitas kode, dan pemeliharaan. Misalnya, ada persyaratan untuk menulis benda bebek, yang disebut, terbang, dan penampilan. Jika setiap kelas bebek menulis ketiga metode ini, kode ini akan berlebihan. Pada saat ini, kita dapat mengekstrak tiga metode yang disebut, terbang, dan penampilan di kelas bebek, dan memasukkannya ke dalam kelas induk bebek, sehingga setiap bebek mewarisi kelas induk bebek dan menulis ulang ketiga metode ini. Dengan cara ini, kode yang dienkapsulasi sangat portabel. Ketika pengguna mengusulkan persyaratan baru seperti bebek dapat berenang, itu sangat sederhana bagi kami pemrogram OO. Kita hanya perlu menambahkan metode renang ke kelas orang tua bebek, dan membiarkan renang bebek menulis ulang metode renang.
C) Mode Pabrik: Mode pabrik sederhana terutama memberikan referensi ke objek instan dengan cara terpadu dan memperoleh referensi ke objek instan melalui antarmuka mode pabrik. Misalnya, untuk fungsi login, backend memiliki tiga kelas, kelas pengontrol, kelas antarmuka, dan kelas implementasi antarmuka implementasi. Ketika klien mengeluarkan permintaan, ketika permintaan diteruskan ke kelas pengontrol, pengontrol memperoleh objek referensi antarmuka, dan kelas implementasi mengimplementasikan antarmuka merangkum kode logika bisnis login. Ketika Anda perlu menambahkan persyaratan pendaftaran, Anda hanya perlu menambahkan metode pendaftaran ke kelas antarmuka, mengimplementasikan metode di kelas implementasi, dan pengontrol dapat memperoleh objek referensi antarmuka tanpa mengubah kode asli. Pendekatan ini sangat terukur.
5. Penyortiran gelembung, pencarian biner
a) gelembung
public static void mp (int a []) {int swap = 0; for (int i = 0; i <a. swap;}}} system.out.println (arrays.tostring (a));}b) Pencarian biner
public static int eF (int a [], int tag) {int first = 0; int end = a.length; for (int i = 0; i <a.length; i ++) {int middle = (first + end) / 2; if (tag == a [middle]) {return middle;} if (tag> a [middle]) {first = first = middle)} middle; 0;} 6-8. Pemahaman Ajax
A) AJAX adalah permintaan asinkron, yaitu teknologi refresh lokal. Di halaman tradisional, pengguna perlu mengklik tombol atau acara untuk memicu permintaan untuk menyegarkan halaman. Teknologi asinkron memicu acara tanpa mengklik, yang meningkatkan pengalaman pengguna, seperti pemuatan asinkron dari keranjang belanja di mal, ketika Anda mengklik produk, Anda tidak perlu meminta latar belakang dan secara langsung memodifikasi parameter secara dinamis.
9. Urutan panggilan antara kelas orang tua dan kelas anak (hasil cetak)
a) Blok kode statis kelas induk
b) blok kode statis subkelas
c) Konstruktor kelas induk
D) Metode Konstruksi Subkelas
e) Subkelas Metode Biasa
f) Tulis ulang metode kelas induk, dan cetak metode penulisan ulang
10. Panggilan kelas dalam dan luar
a) Kelas dalam dapat secara langsung memanggil variabel anggota kelas eksternal termasuk pribadi, dan menggunakannya. kata kunci yang dirujuk oleh kelas eksternal untuk menyebutnya
b) Ketika kelas eksternal memanggil kelas internal, ia perlu membuat objek kelas internal
11. Multi-threading
a) Suatu proses adalah lingkungan yang berjalan independen, yang dapat dianggap sebagai program, sedangkan utas dapat dianggap sebagai tugas suatu proses. Misalnya, QQ adalah proses, dan jendela QQ adalah utas.
b) Dalam program multi-utas, konkurensi multi-threaded dapat meningkatkan efisiensi program. CPU tidak akan memasuki keadaan idle karena utas tertentu sedang menunggu sumber daya. Ini akan memberikan sumber daya ke utas lain.
c) Utas pengguna adalah utas yang kami kembangkan program, dan utas daemon adalah utas sistem, seperti GC di JVM Virtual
d) Prioritas Thread: Setiap utas memiliki tingkat prioritas. Mereka yang memiliki level terbatas tinggi pertama -tama dapat memperoleh sumber daya CPU untuk mengubah utas dari keadaan siap menjadi status yang berjalan. Anda juga dapat menyesuaikan tingkat utas yang terbatas
E) Kebuntuan: Setidaknya dua atau lebih utas berjuang untuk lebih dari dua sumber daya CPU, hindari menggunakan kunci bersarang jika mereka menghindari kebuntuan. Anda hanya perlu menambahkan kunci di mana mereka perlu menyinkronkan dan menghindari menunggu yang tak terbatas.
12. Konsep AOP dan IOC (mis. Inti musim semi)
A) IOC: Musim semi adalah kerangka kerja open source. Menggunakan kerangka kerja dapat mengurangi beban kerja kami dan meningkatkan efisiensi kerja kami. Ini adalah struktur hierarkis, yaitu, lapisan yang sesuai memproses logika bisnis yang sesuai dan mengurangi tingkat kopling kode. Inti dari pegas adalah inversi kontrol IOC dan pemrograman tangensial yang berorientasi AOP. Inversi Kontrol IOC terutama menekankan bahwa hubungan antar program dikendalikan oleh wadah, yang mengontrol objek dan mengontrol perolehan sumber daya eksternal. Inversi berarti bahwa dalam pemrograman tradisional, kami membuat objek untuk mendapatkan dependensi, sementara di IOC, wadah membantu kami membuat objek dan menyuntikkan objek yang bergantung. Ini adalah wadah membantu kita menemukan dan menyuntikkan objek. Objek diperoleh, jadi itu disebut inversi.
b) AOP: Pemrograman yang berorientasi, terutama mengelola bisnis di tingkat sistem, seperti log, izin, benda, dll. AOP adalah untuk memotong objek yang dienkapsulasi, mencari tahu perilaku umum yang mempengaruhi banyak objek, dan merangkumnya menjadi modul yang dapat digunakan kembali. Modul ini dinamai aspek. Bagian ini mengekstrak dan merangkum logika yang tidak terkait dengan logika bisnis tetapi disebut bersama oleh modul bisnis, mengurangi kode duplikat dalam sistem, mengurangi kopling antar modul, dan meningkatkan pemeliharaan sistem.
13. Gagasan inti Hibernate
a) Gagasan inti hibernate adalah mekanisme pemetaan hubungan objek ROM. Ini adalah pemetaan antara tabel ke dalam operasi antar objek. Artinya, informasi yang diekstraksi dari database akan secara otomatis dienkapsulasi ke dalam objek tertentu sesuai dengan persyaratan pemetaan yang Anda atur. Oleh karena itu, hibernasi adalah untuk memodifikasi objek yang sesuai dengan baris data dengan memetakan kelas entitas tabel data.
14. Perbedaan antara Struts1 dan Struts2
15. Penghapusan karakter yang optimal dalam suatu string
16-17. Perbedaan antara ArrayList dan LinkedList
a) adalah semua daftar yang mengimplementasikan antarmuka daftar. ArrayList adalah struktur data berbasis array, dan LinkedList adalah struktur data daftar tertaut. Saat mendapatkan elemen tertentu, Daftar Array relatif cepat. Ini dapat diperoleh melalui subskrip array, sementara LinkedList membutuhkan pemindahan pointer. Saat menyimpan elemen dan menghapus elemen, LinkedList lebih efisien. Anda hanya perlu memindahkan pointer ke posisi yang ditentukan untuk menambah atau menghapusnya, sementara ArrayList membutuhkan data yang bergerak.
18. Optimalisasi Database
a) Pilih bidang yang sesuai, seperti bidang kotak surat, Anda dapat mengaturnya ke char (6), dan mencoba mengatur bidang ke NOTNULL, sehingga database tidak perlu membandingkan nilai nol saat bertanya
b) Gunakan query gabungan kiri alih -alih subquery
c) Gunakan permintaan bersama Union untuk membuat tabel sementara secara manual
d) Nyalakan sesuatu. Ketika beberapa pernyataan dieksekusi dalam database, segalanya akan kembali, yang dapat mempertahankan integritas database.
e) Menggunakan kunci asing, hal -hal dapat mempertahankan integritas data, tetapi tidak dapat menjamin korelasi data. Menggunakan kunci asing dapat memastikan korelasi data
f) Menggunakan indeks, pengindeksan adalah metode umum untuk meningkatkan kinerja basis data. Ini memungkinkan server database untuk mengambil baris spesifik lebih cepat daripada tanpa indeks, terutama untuk max, min, pesanan berdasarkan kueri, efeknya lebih jelas
g) Pernyataan kueri yang dioptimalkan. Dalam kebanyakan kasus, menggunakan indeks dapat meningkatkan kecepatan kueri, tetapi jika pernyataan SQL digunakan secara tidak tepat, indeks tidak dapat memainkan karakteristiknya.
19. Tomcat Server Optimization (memori, jumlah koneksi bersamaan, cache)
A) Optimalisasi Memori: Ini terutama mengoptimalkan parameter startup Tomcat. Kami dapat memodifikasi memori maksimumnya dalam skrip startup Tomcat, dll.
b) Optimalisasi Hitungan Thread: Parameter koneksi bersamaan Tomcat terutama dikonfigurasi di server.xml dalam file konfigurasi Tomcat, seperti memodifikasi jumlah minimum utas koneksi idle, yang digunakan untuk meningkatkan kinerja pemrosesan sistem, dll.
c) Optimalkan cache: Nyalakan fungsi kompresi dan ubah parameter. Misalnya, ukuran konten output terkompresi adalah 2kb secara default, dan dapat dimodifikasi dengan tepat.
20. Protokol HTTP
a) Metode permintaan yang umum digunakan termasuk GET dan POST
b) Perbedaan antara GET dan POST: Transfer data, dapatkan parameter membawa dan alamat akses, dan pengguna dapat melihatnya. Ini akan tidak aman dan menyebabkan kebocoran informasi. Posting merangkum bidang dan nilai yang sesuai dalam entitas untuk mengirimkan, yang tidak terlihat oleh pengguna. Ada batasan pada parameter yang lewat dapatkan, sementara tidak ada batasan pada pos.
21. TCP/UDP Protocol
22. Apa antarmuka dasar kerangka kelas koleksi java
a) Antarmuka Koleksi, Daftar dan Tetapkan Implement Afterface, ArrayList dan LinkedList, Vector Implement Daftar Antarmuka, Stack Warisan Vektor, Antarmuka Peta, HashTable dan HashMap mengimplementasikan antarmuka peta peta
23. Proses pemuatan kelas
a) Saat menemukan kelas baru, Anda akan terlebih dahulu pergi ke area metode untuk menemukan file kelas. Jika tidak ditemukan, Anda akan pergi ke hard disk untuk menemukan file kelas. Setelah menemukannya, Anda akan mengembalikannya dan memuat file kelas ke area metode. Ketika kelas dimuat, variabel anggota statis akan ditugaskan ke area statis dari area metode. Variabel anggota non-statis akan ditugaskan ke area non-statis. Kemudian Anda akan mulai menginisialisasi variabel anggota statis dan menetapkan nilai default. Setelah menetapkan nilai default, nilai tampilan akan ditetapkan sesuai dengan lokasi yang ditulis oleh variabel anggota statis, dan kemudian kode statis akan dieksekusi. Pemuatan kelas hanya selesai ketika semua kode statis dijalankan.
24. Pembuatan Objek
a) Saat kelas baru ditemui, kelas akan dimuat dan file kelas akan ditemukan
b) Inisialisasi semua variabel anggota statis, blok kode statis juga akan dieksekusi, dan mereka hanya akan dieksekusi sekali ketika kelas dimuat.
c) Saat objek baru, JVM akan mengalokasikan ruang penyimpanan yang cukup besar di heap
d) Hapus Ruang Penyimpanan, Tetapkan Nilai Default ke Semua Variabel, dan Tetapkan Semua Referensi Objek ke NULL
e) Berikan bidang beberapa operasi inisialisasi sesuai dengan posisi penulisan
f) Memanggil metode konstruktor (tidak ada warisan)
25. Optimasi JVM
a) Atur parameter dan atur jumlah maksimum memori JVM
b) pemilihan pengumpul sampah
26. Pemrosesan konkurensi tinggi
a) Memahami beberapa masalah konkurensi yang tinggi, seperti bagaimana memastikan bahwa semua orang dapat melihat tiket tanpa membelinya. Jelas, mekanisme sinkronisasi tidak dapat digunakan, karena sinkronisasi terkunci dan sinkronisasi hanya dapat dilakukan oleh satu orang pada satu waktu. Pada saat ini, mekanisme kunci dapat digunakan, dan menggunakan penguncian optimis dapat menyelesaikan masalah ini. Arti sederhana dari penguncian optimis adalah menggunakan kontrol bisnis untuk menyelesaikan masalah konkurensi tanpa mengunci tabel, yang memastikan keterbacaan data dan eksklusivitas data yang disimpan, memastikan kinerja sambil menyelesaikan masalah data pembacaan kotor yang disebabkan oleh konkurensi.
27. Pemahaman tentang hal -hal
a) hal -hal adalah atom, konsisten, gigih, dan terisolasi
b) Atomisitas: Mengacu pada rolling kembali dalam suatu hal baik semua eksekusi berhasil atau semua gagal.
c) Konsistensi: Hal -hal yang konsistensi sebelum dan sesudah eksekusi
D) Kegigihan: Pengoperasian beberapa data dalam berbagai hal adalah permanen
E) Isolasi: Ketika satu hal beroperasi pada data, hal lain tidak dapat beroperasi pada data, yaitu, beberapa hal bersamaan diisolasi satu sama lain.
28. Alur kerja struts
a) Klien mengeluarkan permintaan ke wadah servlet
b) Permintaan dipanggil oleh FilterDispatcher setelah beberapa penyaringan kolom, dan FilterDispatch mencari tindakan yang sesuai melalui ActionMapper.
c) ActionMapper menemukan tindakan yang sesuai dan mengembalikannya ke FilterDispatch, dan pengiriman memberikan hak pemrosesan untuk ActionProxy
d) ActionProxy menemukan kelas tindakan yang sesuai melalui file konfigurasi
e) ActionProxy menciptakan instance ActioniInvocation untuk menangani logika bisnis
f) Setelah tindakan diproses, ActionInvocation bertanggung jawab untuk menemukan hasil pengembalian yang sesuai sesuai dengan konfigurasi stuts.xml. Hasilnya biasanya halaman JSP.