Rumah  >  Artikel  >  Java  >  Minggu lepas, saya ada temu bual dengan XX Insurance dan memang bagus! ! !

Minggu lepas, saya ada temu bual dengan XX Insurance dan memang bagus! ! !

Java后端技术全栈
Java后端技术全栈ke hadapan
2023-08-25 15:44:191188semak imbas

Minggu lepas, kawan dalam group pergi interview dengan Ping An Insurance Hasilnya agak kesal, tapi saya harap anda tidak patah semangat seperti yang anda katakan, soalan yang dihadapi dalam temu bual pada asasnya semuanya OK. Anda menyelesaikannya dengan membaca soalan di belakang, jadi sila lakukan yang terbaik!

Selain itu, jika anda mempunyai sebarang pertanyaan, sila datang kepada saya untuk berbincang dan membuat kemajuan bersama.

Tanpa pergi jauh, mari kita masuk ke topik di bawah adalah soalan temuduga teknikal dan jawapan rujukan yang disusun oleh pelajar ini.

Apakah kelas selamat benang di Jawa?

VectorHashtableStringBuffer. Mereka semua menambah kunci penyegerakan pada kaedah mereka untuk mencapai keselamatan benang.

Selain itu, terdapat semua kelas koleksi di bawah pakej JUC

ArrayBlockingQueue 、ConcurrentHashMapConcurrentLinkedQueueConcurrentLinkedDeque等,这些也是线程安全的。ArrayBlockingQueue 、ConcurrentHashMapConcurrentLinkedQueueConcurrentLinkedDeque等,这些也是线程安全的。

幸好这么回答就算结束了,面试官也没再问了,不然JUC下的这几个我真回答不上来。

Java创建对象有几种方式?

这个问题相对还是简单的,能说上个123应该都没问题了。

Java

幸好这么回答就算结束了,面试官也没再问了,不然JUC下的行不然JUC下的行上来。

Java创建对象有几种方式?

这个问题相对还是简单的,能说上个123应题个问题相对还是简单的,能说上个123应颳间。 >🎜Java中提供了以下四种创建对象的方式:🎜

  • baharu mencipta objek baharu
  • melalui mekanisme pantulan
  • menggunakan mekanisme klon
  • melalui mekanisme siri

Apakah objek yang biasa

Jawapan untuk soalan ini tidak begitu baik pada masa itu, saya hanya ingat kepadaString, sama, kod cincang, tunggu, maklumkan dan maklumkanSemua. Tidak terfikir apa-apa lagi. Penemuduga itu terus mengangguk, memberi gambaran bahawa ia sepatutnya baik-baik saja.

java.lang.Object

Minggu lepas, saya ada temu bual dengan XX Insurance dan memang bagus! ! !

Berikut ialah maksud kaedah yang sepadan.

kaedah klon

kaedah yang dilindungi untuk melaksanakan salinan cetek objek ini hanya boleh dipanggil jika antara muka Cloneable dilaksanakan, jika tidak, pengecualian CloneNotSupportedException akan dilemparkan salinan Deep juga perlu melaksanakan Cloneable, dan ahlinya pembolehubah ialah jenis rujukan Anda perlu melaksanakan Boleh Diklon dan kemudian mengatasi kaedah klon.

memuktamadkan kaedah

Kaedah ini berkaitan dengan pemungut sampah Langkah terakhir untuk menentukan sama ada sesuatu objek boleh dikitar semula adalah untuk menentukan sama ada kaedah ini telah ditindih.

equals method

Kaedah ini sangat kerap digunakan. Secara umumnya sama dan == adalah berbeza, tetapi dalam Objek ia adalah sama. Subkelas biasanya mengatasi kaedah ini.

kaedah kod cincang

Kaedah ini digunakan untuk carian cincangan biasanya memerlukan penulisan semula kaedah kod cincang.

Secara amnya mesti memuaskan obj1.equals(obj2)==true。可以推出 obj1.hashCode()==obj2.hashCode(), tetapi Kod cincang yang sama tidak semestinya memuaskan yang sama. Walau bagaimanapun, untuk meningkatkan kecekapan, kita harus cuba menjadikan kedua-dua syarat di atas hampir sama dengan yang mungkin.

  • JDK 1.6 dan 1.7 lalai untuk mengembalikan nombor rawak;
  • JDK 1.8 lalai kepada nombor rawak yang berkaitan dengan urutan semasa + tiga nilai tertentu, menggunakan algoritma nombor rawak skema xorshift Marsaglia untuk mendapatkan nombor rawak.

kaedah tunggu

digunakan dengan kaedah menunggu membuat benang semasa menunggu untuk kunci objek, iaitu, ia mempunyai kunci objek. Kaedah wait() menunggu sehingga ia memperoleh kunci atau terganggu. tunggu (masa tamat lama) menetapkan selang masa tamat dan kembali jika kunci tidak diperoleh dalam masa yang ditentukan.

Selepas memanggil kaedah ini, utas semasa memasuki keadaan tidur sehingga peristiwa berikut berlaku.

  1. Urutan lain yang dipanggil kaedah pemberitahuan bagi objek;
  2. Urutan lain dipanggil kaedah notifySemua objek; .
  3. Benang boleh dijadualkan pada masa ini Jika ia terganggu, InterruptedException akan dilemparkan. Kaedah
  4. memberitahu
  5. digunakan bersama-sama dengan disegerakkan Kaedah ini membangkitkan benang dalam
baris menunggu

pada objek (benang dalam baris gilir penyegerakan adalah untuk benang yang mendahului CPU, dan benang dalam menunggu. baris beratur rujuk kepada menunggu benang terjaga).

Kaedah

notifyAll

digunakan dengan disegerakkan Kaedah ini membangunkan semua benang menunggu dalam baris gilir pada objek ini.

Apakah hubungan antara kaedah hashCode dan kaedah sama

Serangan bersiri sedikit Apabila saya bertanya soalan ini, saya merasakan penemuduga meragui kemahiran asas saya, tetapi saya boleh masih menjawab soalan ini.

Jika a.equals(b) mengembalikan "true", maka hashCode() mestilah sama. hashCode()必须相等。

如果a.equals(b)返回“false”,那么a和b的hashCode()

Jika a.equals(b) mengembalikan "false", maka hashCode() mungkin sama atau berbeza. 🎜

Peranan kod cincang

Ini benar-benar satu siri soalan, jawapannya tidak sesuai, tetapi ia juga relevan.

Javamempunyai dua jenis koleksi , satu jenis ialah Senarai, dan jenis lain ialah Set. Yang pertama adalah teratur dan boleh berulang, manakala yang kedua adalah tidak teratur dan tidak boleh berulang. Bagaimana untuk menentukan sama ada elemen itu sudah wujud apabila kita memasukkannya ke dalam set Kita boleh menggunakan kaedah sama. Tetapi jika terdapat terlalu banyak elemen, kaedah ini akan menjadi lebih penuh. Java的集合有两类,一类是List,还有一类是Set。前者有序可重复,后者无序不重复。当我们在set中插入的时候怎么判断是否已经存在该元素呢,可以通过equals方法。但是如果元素太多,用这样的方法就会比较满。

于是有人发明了哈希算法来提高集合中查找元素的效率。这种方式将集合分成若干个存储区域,每个对象可以计算出一个哈希码,可以将哈希码分组,每组分别对应某个存储区域,根据一个对象的哈希码就可以确定该对象应该存储的那个区域。

hashCode方法可以这样理解:它返回的就是根据对象的内存地址换算出的一个值。这样一来,当集合要添加新的元素时,先调用这个元素的hashCode

Jadi seseorang mencipta algoritma cincang untuk meningkatkan kecekapan mencari elemen dalam set. Kaedah ini membahagikan koleksi kepada beberapa kawasan storan Kod cincang boleh dikira untuk setiap objek Kod cincang boleh dikumpulkan Setiap kumpulan sepadan dengan kawasan storan tertentu. Kawasan di mana ia harus disimpan. 🎜🎜hashCode kaedah boleh difahami seperti ini : ia Apa yang dikembalikan ialah nilai yang dikira berdasarkan alamat memori objek. Dengan cara ini, apabila elemen baharu ditambahkan pada koleksi, elemen hashCode kaedah, anda boleh segera mencari lokasi fizikal di mana ia harus diletakkan. Jika tiada elemen pada kedudukan ini, ia boleh disimpan terus pada kedudukan ini tanpa sebarang perbandingan; jika sudah ada elemen pada kedudukan ini, panggil kaedah yang sama untuk membandingkan dengan elemen baru tidak boleh disimpan, jika tidak sama, cincang alamat lain. Dengan cara ini, bilangan panggilan sebenar kepada kaedah sama banyak dikurangkan, hampir hanya sekali atau dua kali. 🎜

Mari kita bercakap tentang prinsip pemasangan automatik Spring Boot

Soalan ini juga kerana ia ditulis pada resume sayaSpring Boot,所以被问到也是正常的,不过我面试前还是看过一些,回答的还行,面试官说差不多是这个意思。

在Spring Boot中有个很关键的注解@SpringBootApplication ,其中这个注解又可以等同于

@SpringBootConfiguration

@EnableAutoConfiguration

@ComponentScan

Where@EnableAutoConfiguration ialah kuncinya (dayakan konfigurasi automatik), secara dalaman sebenarnya memuatkan META-INF/ spring. kilang maklumat fail, dan kemudian tapis maklumat itu dengan EnableAutoConfiguration ialah data utama dan dimuatkan ke dalam bekas IOC untuk merealisasikan fungsi konfigurasi automatik! @EnableAutoConfiguration是关键(启用自动配置),内部实际上就去加载META-INF/spring.factories文件的信息,然后筛选出以EnableAutoConfiguration为key的数据,加载到IOC容器中,实现自动配置功能!

数据库事务的隔离级别有哪些?

这种问题,背背八股文,网上一堆堆。

数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committedRepeatable readSerializable

Apakah tahap pengasingan transaksi pangkalan data?

Untuk soalan seperti ini, hafal lapan- esei berkaki, Terdapat banyak daripada mereka dalam talian.

🎜Terdapat 4 tahap pengasingan untuk transaksi pangkalan data, dari rendah ke tinggi: Baca tanpa komitmenBaca komited, Baca berulang code >, <code style="margin-right: 2px;margin-left: 2px;padding: 2px 4px;font-size: 14px;border-radius: 4px;background-color: rgba(27, 31, 35, 0.05 ) ;font-family: " operator mono consolas monaco menlo monospace break-all rgb>Serializable. 🎜
  • Baca tanpa komitmen(READ UNCOMMITED ) : Di bawah tahap pengasingan ini, urus niaga lain boleh melihat pengubahsuaian tanpa komitmen transaksi ini, yang akan menyebabkan masalah bacaan kotor (bahagian yang tidak terikat bagi urus niaga lain dibaca, dan kemudian urus niaga digulung semula READ UNCOMMITTED):这个隔离级别下,其他事务可以看到本事务没有提交的部分修改,因此会造成脏读的问题(读取到了其他事务未提交的部分,而之后该事务进行了回滚);
  • 已提交读(READ COMMITTED):其他事务只能读取到本事务已经提交的部分,这个隔离级别有不可重复读的问题,在同一个事务内的两次读取,拿到的结果竟然不一样,因为另外一个事务对数据进行了修改;"
  • 可重复读(REPEATABLE READ)。可重复读隔离级别解决了上面不可重复读的问题,但是仍然有一个新问题,就是幻读。当你读取id> 10 的数据行时,对涉及到的所有行加上了读锁,此时例外一个事务新插入了一条id=11的数据,因为是新插入的,所以不会触发上面的锁的排斥,那么进行本事务进行下一次的查询时会发现有一条id=11的数据,而上次的查询操作并没有获取到,再进行插入就会有主键冲突的问题;
  • 可串行化(SERIALIZABLE
Diserahkan untuk dibaca () READ COMMITTED): Transaksi lain hanya boleh dibaca bahagian yang diserahkan dalam transaksi ini. Tahap pengasingan ini mempunyai masalah bacaan yang tidak boleh diulangi. REPEATABLE READ). Tahap pengasingan bacaan boleh berulang menyelesaikan masalah bacaan tidak boleh berulang di atas, tetapi masih terdapat masalah baharu, iaitu bacaan hantu. Apabila anda membaca baris data dengan id>10, kunci baca ditambahkan pada semua baris yang terlibat Pada masa ini, transaksi baru memasukkan sekeping data dengan id=11 Kerana ia baru dimasukkan, perkara di atas tidak akan dicetuskan. Jika kunci itu eksklusif, maka apabila anda melakukan pertanyaan seterusnya bagi transaksi ini, anda akan menemui sekeping data dengan id=11, tetapi operasi pertanyaan terakhir tidak memperolehnya masalah konflik kunci utama;

Serializable(SERIALIZED ). Ini ialah tahap pengasingan tertinggi, yang boleh menyelesaikan semua masalah yang dinyatakan di atas, kerana ia memaksa semua operasi dilaksanakan secara bersiri, yang akan menyebabkan prestasi serentak menurun dengan cepat, jadi ia tidak begitu biasa digunakan.

Beritahu saya tentang pemahaman anda tentang indeks dalam MySQL🎜🎜🎜🎜🎜🎜Soalan ini, okay, beritahu saya sebanyak yang anda tahu. Jika dilihat dari persiapan semua, saya cukup bersedia. Saya rasa jawapan saya agak bagus, jadi saya menjawab kebaikan dan keburukan indeks bersama-sama. 🎜

Index ialah struktur data yang membolehkan Mysql memperoleh data dengan cekap. Secara umum, indeks pangkalan data adalah seperti jadual kandungan di hadapan buku, yang boleh mempercepatkan pertanyaan pangkalan data.

Kelebihan

  • Boleh memastikan keunikan setiap baris data dalam jadual pangkalan data
  • Boleh mempercepatkan pengindeksan data
  • Mempercepatkan sambungan antara jadual, terutamanya apabila ia melaksanakan sambungan antara jadual bermakna dari segi kesempurnaan
  • Apabila menggunakan klausa pengelompokan dan pengisihan untuk mendapatkan data, ia juga boleh mengurangkan masa pengumpulan dan pengisihan dalam pertanyaan dengan ketara
  • Dengan menggunakan indeks, semasa proses pertanyaan masa, Gunakan penyembunyi pengoptimuman untuk meningkatkan prestasi sistem

Kelemahan

  • Memerlukan masa untuk mencipta dan mengekalkan indeks, yang meningkat dengan jumlah data
  • Indeks perlu menduduki ruang fizikal, sebagai tambahan kepada data sebagai tambahan kepada ruang data yang diduduki mengikut jadual, setiap indeks juga menduduki jumlah ruang fizikal tertentu Jika indeks berkelompok perlu diwujudkan, ruang yang diperlukan akan menjadi lebih besar
  • Apabila menambah, memadam atau mengubah suai data dalam jadual, indeks juga mesti. dikekalkan secara dinamik, yang mengurangkan kelajuan penyelenggaraan integer

Apakah kaedah pengoptimuman SQL yang anda biasa gunakan?

Bahagian ini dipelajari daripada membaca "Essential MySQL Database Knowledge for Java Programmers" di Planet Pengetahuan Saudara Tian Saya hanya bercakap tentang sebahagian daripadanya kerana saudara Tian banyak menyusun. baik.

1. Jangan gunakan pilih *

2 Cuba kurangkan subkueri dan gunakan pertanyaan yang berkaitan (sambung kiri, sambung kanan, sambung dalam) sebaliknya

3 Kurangkan penggunaan IN atau NOT IN Atau gantikan pernyataan pertanyaan yang berkaitan

4 Cuba gunakan kesatuan atau kesatuan semua sebagai ganti atau pertanyaan (penyatuan semua akan menjadi lebih baik apabila disahkan bahawa tiada data pendua atau tidak perlu menghapuskan data pendua)

5. . Cuba elakkan menggunakannya dalam klausa where Gunakan operator != atau a8093152e673feb7aba1828c43532094

6 Cuba elakkan menilai nilai nol medan dalam klausa where, jika tidak enjin akan berhenti menggunakan indeks dan melakukan imbasan jadual penuh, seperti: pilih id daripada t di mana num adalah nol Anda boleh menetapkan lalai. nilai 0 pada num , pastikan tiada nilai nol dalam lajur num dalam jadual, dan kemudian pertanyaan seperti ini: pilih id daripada t di mana num=0

Bagaimana pertanyaan SQL dilaksanakan dalam MySQL?

NND, saya suka sangat bertanya tentang MySQL, soalan ini sangat mengelirukan saya, dan penemuduga menjadi sedikit tidak sabar selepas bercakap kosong. Apabila saya kembali, saya pergi ke Planet Pengetahuan Tian Ge dan meninjaunya. Sudah tentu, soalan temuduga yang hampir sama saya menyalahkan diri sendiri kerana tidak bersedia.

Contohnya, pernyataan SQL berikut (diberikan oleh penemuduga di tempatSQL):

select 字段1,字段2 from 表 where id=996
  1. Dapatkan pautan dan gunakan penyambung dalam MySQL.
  2. Query cache, kuncinya adalah pernyataan SQL, nilainya adalah hasil pertanyaan, jika dijumpai, ia akan dikembalikan terus. Ia tidak disyorkan untuk menggunakan cache sekunder. Cache pertanyaan telah dipadamkan dalam versi MySQL 8.0, yang bermaksud bahawa fungsi ini tidak wujud selepas versi MySQL 8.0.
  3. Penganalisis, dibahagikan kepada analisis leksikal dan analisis sintaksis. Peringkat ini hanya melakukan beberapa penghuraian SQL dan pengesahan sintaks. Jadi kesalahan tatabahasa umum berada pada peringkat ini.
  4. Optimizer menentukan indeks yang hendak digunakan apabila terdapat berbilang indeks dalam jadual; atau apabila terdapat perkaitan berbilang jadual (bergabung) dalam penyata, ia menentukan susunan sambungan setiap jadual.
  5. Executor, beritahu SQL apa yang anda mahu lakukan melalui penganalisis, tahu apa yang perlu dilakukan melalui pengoptimum dan mula melaksanakan pernyataan. Semasa melaksanakan pernyataan, anda juga mesti menentukan sama ada anda mempunyai kebenaran ini Jika anda tidak mempunyai kebenaran, anda akan terus mengembalikan ralat yang menunjukkan bahawa anda tidak mempunyai kebenaran, buka jadual dan gunakan antara muka disediakan oleh enjin untuk mendapatkan baris pertama jadual mengikut definisi enjin jadual , tentukan sama ada id adalah sama dengan 1. Jika ya, kembali terus; jika ia tidak terus memanggil antara muka enjin untuk pergi ke baris seterusnya, ulangi penghakiman yang sama sehingga baris terakhir jadual diambil, dan akhirnya kembali.

Saya tertanya-tanya, apakah maksud 996 Adakah syarikat anda 996? Katakan dengan santai

Apakah perbezaan antara timbunan dan timbunan dalam JVM?

Ini tidak buruk Jika anda biasa dengan ilmu JVM, anda boleh menjawabnya. Penjelasan Tian Ge tentang kawasan data masa jalan JVM sangat bagus.

Perbezaan penting antara kedua-duanya: tindanan adalah peribadi kepada benang, manakala timbunan dikongsi oleh benang.

Timbunan ialah unit masa jalan, yang mewakili logik Timbunan sepadan dengan benang, yang mengandungi jenis data asas dan rujukan objek dalam timbunan dan tidak mempunyai serpihan

Timbunan ialah unit storan, yang mewakili data boleh menjadi bahagian Berbilang tindanan (termasuk jenis data asas, rujukan dan objek rujukan dalam ahli), kawasan itu tidak berterusan, dan akan ada serpihan.

1) Fungsi yang berbeza

Memori tindanan digunakan untuk menyimpan pembolehubah tempatan dan panggilan kaedah, manakala memori timbunan digunakan untuk menyimpan objek dalam Java. Sama ada pembolehubah ahli, pembolehubah tempatan atau pembolehubah kelas, objek yang mereka tunjuk disimpan dalam ingatan timbunan.

2), perkongsian berbeza

memori tindanan adalah peribadi kepada benang. Ingatan timbunan adalah biasa kepada semua benang.

3), ralat pengecualian adalah berbeza

Jika ingatan tindanan atau ingatan timbunan tidak mencukupi, pengecualian akan dilemparkan.

Ruang tindanan tidak mencukupi: java.lang.StackOverFlowError.

Ruang timbunan tidak mencukupi: java.lang.OutOfMemoryError.

4), saiz ruang

Saiz ruang timbunan jauh lebih kecil daripada timbunan.

Adakah anda biasa dengan mekanisme pemuatan kelas?

Ini hanyalah soalan temu duga belakang ke belakang

Pemuatan kelas JVM dibahagikan kepada 5 proses: pemuatan, pengesahan, penyediaan, penghuraian, permulaan, penggunaan, nyahpasang, seperti yang ditunjukkan dalam rajah di bawah:

Minggu lepas, saya ada temu bual dengan XX Insurance dan memang bagus! ! !

Mari kita lihat tindakan khusus lima proses pemuatan, pengesahan, penyediaan, penghuraian dan pemula.

Memuatkan

Memuatkan terutamanya untuk membaca strim bait binari dalam fail .class (tidak semestinya .class. Ia boleh menjadi pakej ZIP, diperoleh daripada rangkaian) ke dalam JVM. Semasa fasa pemuatan, JVM perlu melengkapkan tiga perkara: 1) Dapatkan aliran bait binari kelas melalui nama kelas yang layak sepenuhnya 2) Tukar struktur storan statik yang diwakili oleh aliran bait ke dalam struktur data masa jalan; kawasan kaedah; 3) Hasilkan objek java.lang.Class kelas ini dalam ingatan sebagai kemasukan akses untuk pelbagai data kelas ini dalam kawasan kaedah.

Sambungan

Pengesahan

Pengesahan ialah langkah pertama dalam fasa sambungan, terutamanya memastikan aliran bait yang dimuatkan mematuhi spesifikasi JVM. Fasa pengesahan akan melengkapkan empat peringkat tindakan pengesahan berikut: 1) Pengesahan format fail 2) Pengesahan metadata (sama ada ia mematuhi spesifikasi bahasa Java) 3) Pengesahan kod bait (untuk mengesahkan bahawa semantik program adalah sah dan logik) 4) Pengesahan rujukan simbol ( Pastikan langkah analisis seterusnya boleh dilaksanakan seperti biasa)

Persediaan

Terutamanya peruntukkan memori untuk pembolehubah statik dalam kawasan kaedah dan tetapkan nilai awal lalai.

Resolution

ialah proses di mana mesin maya menggantikan rujukan simbol dalam kumpulan malar dengan rujukan langsung.

Inisialisasi

Fasa permulaan ialah langkah terakhir dalam proses pemuatan kelas Ia secara aktif memberikan nilai kepada pembolehubah kelas mengikut penyataan tugasan dalam program. Nota: 1) Apabila terdapat kelas induk dan kelas induk dimulakan, mulakan kelas induk terlebih dahulu 2) Kemudian lakukan penyataan pemulaan subkelas.

Apakah keadaan yang boleh mencetuskan GC Penuh?

Saya fikir saya akan bertanya tentang algoritma kutipan sampah dan sebagainya, tetapi saya akhirnya bertanya di sini. Saya tidak bersedia untuk ini, jadi saya hanya mengatakan dua perkara secara santai, dan saya jelas merasakan bahawa penemuduga itu sangat tidak berpuas hati, itu sahaja, kembali dan bersedia dengan baik.

Biasanya terdapat 5 senario yang mencetuskan GC Penuh:

(1) Panggilan System.gc时,系统建议执行Full GC, tetapi tidak semestinya dilaksanakan

(2) Ruang yang tidak mencukupi dalam generasi lama

(3)

Kaedah untuk membuang ruang yang tidak mencukupi (4) Saiz purata generasi lama selepas lulus Minor GC > Tersedia memori generasi lama

(5) Apabila menyalin dari kawasan Eden, Dari kawasan Angkasa ke kawasan Ke Angkasa, saiz objek adalah lebih besar daripada ingatan To Space yang tersedia, maka objek itu dipindahkan ke generasi lama, dan ingatan generasi lama yang tersedia ialah lebih kecil daripada saiz objek. Iaitu, apabila generasi lama tidak dapat menyimpan objek daripada generasi baru kepada generasi lama, GC Penuh akan dicetuskan.

CPU sistem dalam talian sangat tinggi, apakah yang perlu saya lakukan?

Jawapan untuk soalan ini tidak begitu memuaskan. hafal untuk temuduga, saya tidak menjawabnya dan bekerja lebih keras. Penemuduga datang dan berkata: OK, temuduga kami akan berakhir di sini hari ini saya akan melaporkan kepada HR di sini.

Setelah beberapa ketika, HR yang cantik itu datang dengan senyuman, (saya fikir masalah itu tidak serius), tetapi ternyata...

Anda adalah "YY, penemuduga telah memberi maklum balas tentang situasi temuduga. Kami akan lihat secara menyeluruh. Anda balik dulu. Kami akan hubungi anda untuk maklumkan keputusannya nanti."

(⊙o⊙)..., lebih daripada n hari berlalu, dan tiada khabar berita.

Operasi biasa ialah:

1. thread PID

3. printf "0x%xn" Thread PID: 0x431 // Tukarkan thread PID kepada heksadesimal untuk bersedia mencari log jstack nanti

4. proses jstack PID |. vim +/hex thread PID - // Contohnya: jstack 1040|vim +/0x431 -

Ringkasan

Seluruh proses temu duga juga agak mudah, dan penemuduga juga mudah Agak bagus saya cuma menyalahkan diri saya sendiri kerana tidak bersedia Sebagai seorang yang sudah dua tahun bekerja, saya tidak pernah melihat beberapa soalan yang ditanya oleh penemuduga (menghafal soalan temuduga). , dan ia tidak semestinya perlu dilakukan secara peribadi.

Atas ialah kandungan terperinci Minggu lepas, saya ada temu bual dengan XX Insurance dan memang bagus! ! !. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:Java后端技术全栈. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Apakah maksud iframe dalam matlabArtikel seterusnya:tiada