Preguntes D'entrevista

Les 50 millors preguntes i respostes de l'entrevista de Java 8

2 de gener de 2022

Taula de continguts

Àmbit d'un desenvolupador Java?

L'àmbit de treball dels desenvolupadors de Java és ampli perquè realitzen tasques des del disseny de les interfícies d'usuari (UI) fins a provar les aplicacions dinàmiques. A causa de l'ampli ventall de Java, els desenvolupadors que treballen amb Java han de col·laborar amb altres professionals com dissenyadors web i enginyers de programari.

T'estàs preparant per a Java 8 Entrevista? Esteu buscant preguntes i respostes de l'entrevista de Java 8, aleshores esteu a la pàgina correcta. Assegura't de revisar totes les preguntes per no perdre'n cap.

Preguntes i respostes de l'entrevista de Java 8

1) Què és JAVA 8?

És una de les plataformes d'edició estàndard del Java Development Kit, que inclou diverses característiques en habilitats de programació java. Implementa els fonaments de la programació funcional i OOPs . És l'última versió per a java. La biblioteca estàndard de Java 8 té algunes funcions millorades. Té moltes correccions d'errors i millores en comparació amb les versions anteriors de Java

2) Quines són les característiques de Java 8?

S'afegeixen moltes funcions noves i exclusives a Java 8:-

  1. Mètodes d'extensió virtual i expressió Lambda
  2. API de data i hora disponible
  3. Motor JavaScript Nashorn: és lleuger. (per executar codi Javascript)
  4. Millora la seguretat (part del nashorn a Java)
  5. API de flux
  6. Interfícies funcionals
  7. API de col·lecció
Preguntes d'entrevista de Java 8

3) Per què hauríem d'anar a buscar l'API Java 8 Stream? Quin és l'ús de l'API Java 8 Stream en els nostres projectes?

Sempre que volem realitzar les funcions següents, l'API Java 8 Stream és útil: -

  1. Operacions de base de dades
  2. Càrrega mandrosa de l'aplicació
  3. Implementació de la programació funcional
  4. Ús de l'estil d'iteració interna
  5. Executar operacions des de la canonada
  6. Millorar el rendiment de l'aplicació

Preguntes i respostes de l'entrevista de Java

4) Què és la inferència de tipus? La inferència de tipus està disponible en versions anteriors, com ara Java 7 i Before 7, o només està disponible a Java SE 8?

En la inferència de tipus per a Java, té la capacitat de mirar cada mètode i les seves declaracions escrites al codi. Identifica els arguments passats a la funció. També hi havia inferència de tipus disponible en versions anteriors de Java (abans de 7). Tanmateix, hi ha millores significatives a Java SE 8.

Vegeu també Les 100 principals preguntes i respostes de l'entrevista de JavaScript

5) Podeu diferenciar entre Iterator i Spliterator a Java SE 8?

La resposta següent indica les diferències entre els termes següents: iterador i splieratro a Java 8.

Iterador Divisor
Funciona amb només iteracionsFunciona tant amb divisors com amb iteracions
Funciona amb interacció de manera seqüencial (un per un)Pot funcionar de manera seqüencial o tot alhora.
S'utilitza per a tipus de col·leccióS'utilitza per a col·leccions, fluxos i matrius.
No hi ha manera de determinar la midaLa mida estimada és la mida real
Part de la versió de llançament JDK 1.2Es va introduir per primera vegada en la versió JDK 1.8

6) Què és opcional a Java 8? Per a què serveix Optional? Avantatges de Java 8 Opcional?

Per respondre a aquesta pregunta, examinarem els detalls complexos. L'excepció del punter nul sempre va ser problemàtica a Java. Sens dubte, va provocar la fallada del codi molt sovint. Nashorn a Java 8 té una millora o més semblant a una solució al problema. Ha introduït una nova classe opcional anomenada paquet java.util. Bàsicament funciona per evitar les comprovacions nuls. Suggereix alternatives a les funcions que retornen nulls. El següent fragment de codi mostra la implementació del mateix.

|_+_|

7) Què és l'expressió Lambda?

L'expressió lambda s'ha afegit recentment a la versió de Java 8. L'expressió lambda treballa prenent els paràmetres juntament amb els seus arguments. A la teva resposta, esmenta també l'alternativa a aquest mètode.

paràmetre -> expressió // expressió lambda simple

(paràmetreA, paràmetreB) -> expressió // pot utilitzar més paràmetres en aquesta expressió lambda

Utilitzant l'expressió lambda

|_+_|

8) Què és una interfície funcional? Què és la interfície SAM?

La interfície de funció només té una abstracció dins de la interfície. Una altra resposta podria ser el nom alternatiu per a una interfície funcional és SAM: interfície de mètode abstracte únic.

Aquí teniu la sintaxi del mateix

|_+_|

Exemple

|_+_| |_+_|

9) Enumereu les tres parts d'una expressió Lambda? Definiu el tipus d'expressió Lambda?

La resposta següent es divideix en tres parts de l'expressió lambda.

  1. Llista de paràmetres: l'expressió lambda pot tenir de 0 a molts paràmetres.
  2. Operador de fletxa lambda
  3. Cos d'expressió lambda

El tipus de dades a l'expressió lambda pot ser qualsevol cosa, des de int, float fins a cadenes.

Preguntes i respostes de l'entrevista de Java 8

10) Què és Stream Pipelining a Java 8?

Un flux en java té els elements següents

  1. Seqüència d'elements
  2. Font
  3. Operacions agregades
  4. Canalització
  5. Iteracions automàtiques

Canalització a Java 8: els resultats són canalitzats pel valor que retorna un flux. Les operacions són la part intermèdia de la funció. Captura l'entrada, després la processa i el valor es recull al mètode target.collect() pren l'entrada final. Tot aquest procés forma part de la canalització de flux de Java.

11) Què és String::Value of Expression?

El valor de cadena d'expression facilita la lectura de les dades als usuaris. Converteix dades. Per exemple:-

  1. El valor de cadena de (num) - això ajudarà amb la visualització d'una cadena del valor numèric.
  2. El valor de cadena de (data,0,11): mostrarà una matriu que comença de 0 a 11.

12) Pots diferenciar entre operacions intermèdies i terminals?

La taula següent fa una comparació entre operacions intermèdies i terminals.

Operacions intermèdies Operacions de terminal
Això ajuda a convertir mètodes en fluxos.Aquesta és bàsicament l'operació final que un mètode imposa a un flux.
El que retorna és un altre correntEl que retorna és el resultat final
ordenat (comparador) peek (consumidor) diferent ()forEachcounttoArray

13) Què és Nashorn a Java8?

A java 8, nashborn és un motor que s'ha millorat amb una sèrie de versions en java. Amb cada llançament, el motor té moltes millores. Bàsicament augmenta el rendiment i és lleuger en comparació amb les versions anteriors. Té funcionalitats molt més dinàmiques. Jjs és una eina d'ordres que s'utilitza per executar qualsevol codi javascript.

Vegeu també Les 100 millors preguntes i respostes d'entrevista Ansible

Per exemple:-

|_+_|

14) Ens pots parlar de la nova API de data i hora a Java 8?

Amb la funció de data i hora anterior, Java tenia molts problemes com:

  1. No era segur per a fils.
  2. El disseny no era uniforme.
  3. Era difícil tractar amb diferents fusos horàries.

Aquests problemes (sense fils) es van resoldre mitjançant la nova API de data i hora de Java 8. Té paquets simplificats que tracten els buits relacionats amb el temps. Es van crear les funcions següents: locals (per a la data i l'hora) i per zones (per al mapeig de zones horàries).

15) Què és una referència de mètode?

Aquesta nova característica de java 8 (referència del mètode) ajuda a fer referència a les interfícies funcionals. És semblant a l'expressió lambda. Les expressions lambda fan referència bàsicament a objectes i mètodes. En lloc d'aquests, també es poden utilitzar referències de mètodes.

Referència del mètode

Per exemple

|_+_|

16) Definiu el mètode per defecte i quan el fem servir?

Aquest mètode predeterminat es va introduir a Java 8 per augmentar la compatibilitat amb algunes versions antigues que feien algunes funcions cap enrere. S'utilitza per a la implementació d'interfícies en Java. El forEach() es pot utilitzar per a una col·lecció d'objectes de variables. Java 8 ha permès l'ús de mètodes predeterminats que poden implementar funcions com el mètode forEach().

Exemple:

|_+_|

17) Com convertir una matriu en un flux a Java 8?

El codi següent que mostra la manera més senzilla de convertir una matriu

|_+_| |_+_|

18) Per què utilitzem el mètode peek() a Java 8?

El nou mètode peek() a Java 8 ajuda a donar el valor del nou flux, que té una còpia de tots els elements del flux antic. Això passa un cop s'executa l'acció del consumidor. Forma part de les operacions de corrent intermèdia. S'ha d'utilitzar amb l'ajuda del terminal.
Sintaxi: Streampeek (acció del consumidor)

19) Pots donar exemples d'operacions intermèdies a Java 8?

A continuació es mostren els exemples de les operacions intermèdies a Java 8

  1. Omet()
  2. filtre ()
  3. límit ()
  4. mapa ()
  5. ullada()
  6. mapa pla ()
  7. diferent ()
  8. ordenat ()

20) Quins són alguns dels exemples d'operacions de terminal a Java 8?

A continuació es mostren alguns dels exemples d'operacions de terminal a Java 8

  1. reduir ()
  2. allMatch()
  3. màxim ()
  4. anyMatch ()
  5. min ()
  6. noneMatch()
  7. per cadascú()
  8. noneMatch()
  9. comptar ()
  10. recollir ()

21) Escriu un programa que enumera el nombre d'empleats i compta el nombre d'empleats amb edats inferiors a 30 anys?

|_+_|

22) Expliqueu les diferències entre l'API Collection i l'API Stream?

La resposta següent dibuixa les diferències entre l'API de recollida i l'API de flux utilitzada a Java.

API de col·lecció API de flux
Emmagatzematge de dadesTractament de dades
S'utilitza el paquet java.utilJava.util.stream s'utilitza a l'API de flux
El càlcul es produeix al principiL'operació de càrrega lazy s'utilitza a l'API de flux
Es pot afegir i eliminar objectesEls fluxos no es poden alterar
Es poden produir iteracionsLes iteracions són internes a les funcions en les operacions de flux.

23) Llista la interfície funcional a Java 8?

A continuació es mostra la llista de la interfície funcional de Java 8:

  1. Expressió lambda
  2. Funcions integrades
  3. Funció
  4. Predicat
  5. Operador unari
  6. Operador binari
  7. Proveïdor
  8. Consumidor

24) Quina és la manera més fàcil de trobar i eliminar elements duplicats d'una llista amb Java 8?

Aquesta resposta es tractarà mitjançant un codi de mostra. El codi següent ajudarà a eliminar els elements duplicats de la matriu.

|_+_|

25) Com es crea un codificador Base64 que codifica URL a Java 8?

Les funcionalitats i operacions relacionades amb base64 ja estan disponibles a Java 8 i hi ha una classe anomenada java.util.base64 que ajuda a habilitar les capacitats. El codificador de Java 8 codifica i descodifica el valor per a un ús posterior. Es pot crear una funció: getEncoder() per habilitar el procés. La codificació d'URL afegeix una capa de seguretat molt necessària. ,

26) Enumereu els principals avantatges d'utilitzar Java 8?

  1. Codi més compacte
  2. Menys codi boilerplate
  3. Codi més llegible i reutilitzable
  4. Codi més comprovable
  5. Operacions paral·leles

27) Com podem obtenir la data i l'hora actuals mitjançant l'API de data i hora de Java 8?

Podem utilitzar ara mètode de LocalDate per obtenir la data d'avui.

Exemple:

|_+_|

28) Pots diferenciar entre predicat i funció?

Predicat Funció
S'utilitza per a la transformació i per als valors de retornS'utilitza per implementar comprovacions condicionals.
Té un mètode abstracte test().Té un mètode abstracte apply().
Retorna valors booleans.Pot retornar qualsevol tipus de valor.
Prendrà un paràmetre de tipus, que defineix el tipus d'entrada o el tipus d'argument.Es necessitaran 2 tipus de paràmetres. El primer defineix el tipus d'argument del tipus d'entrada i el segon representa el tipus de retorn.

29) Tenim PermGen a Java 8?

Fins a Java 7, JVM utilitzava una àrea coneguda com PermGen per emmagatzemar les classes. Es va eliminar a Java 8 i va ser substituït per MetaSpace.

Vegeu també Les 100 millors preguntes i respostes d'entrevista Ansible

Metaspace a Java 8 és un nou espai de memòria a partir de la versió Java 8; ha substituït l'espai de memòria PermGen més antic. La diferència és com gestiona l'assignació de memòria. Concretament, aquesta regió de memòria nativa creixerà automàticament per defecte.

30) Pots diferenciar entre l'operació de flux de mapa i flatMap?

La resposta següent cobreix les diferències entre les operacions map() i flatMap.

mapa () flatMap()
En paraules simples: corrent de valorsFlatmap Flux de flux de valors
Cartografia 1 a 11 a molts mapes
Si a algú li agrada utilitzar un sol valor, aquesta funció és adequadaQuan s'ha d'utilitzar diversos valors, aquesta funció és adequada
Crea mapesCrea mapes i aplanaments

31) Escriu un programa per trobar l'edat màxima de l'empleat?

|_+_|

32) Una interfície funcional ampliarà/heretarà una altra interfície?

Una interfície funcional no pot estendre l'altra interfície amb un mètode abstracte, ja que violarà la regla, és a dir, un mètode abstracte per interfície funcional.

33) Diferenciar entre operacions intermèdies i terminals a Stream?

Operacions intermèdies Operacions de terminal
Són mandrosos per naturalesa i no són executats immediatament.No són mandrosos, i són executats tan aviat com es troben.

34) Diferenciar entre findFirst() i findAny() de Stream?

findFirst() trobar qualsevol ()
Sempre retornarà el primer element del fluxEs permet triar qualsevol element del flux.
Té un comportament determinista.No és determinista en el comportament.

35) Definir la interfície de funció del consumidor?

La funció de consum a Java es defineix com una interfície funcional d'un sol argument que no retorna cap valor.

36) Què és la interfície de funció del proveïdor?

La interfície del proveïdor es defineix com una part del paquet java. util.function que es va introduir a Java 8 per tal d'implementar la programació funcional en Java. Defineix una funció que no pren cap argument sinó que produeix un valor de tipus.

37) Definir la interfície de funció de predicat?

La funció de predicat a Java 8 es defineix com una interfície funcional que accepta l'argument i retornarà un booleà. Normalment, s'utilitza per aplicar en un filtre per a la col·lecció d'objectes.

38) Definir mètodes estàtics a les interfícies?

Els mètodes estàtics consisteixen en la implementació de mètodes que és propietat de la interfície i s'anomena utilitzant el nom de la interfície, s'utilitza per definir els mètodes d'utilitat i aquests mètodes no es poden substituir.

39) Llista les diferents categories d'interfícies de funcions predefinides?

Predicat: Realitzen una prova i retornaran un valor booleà.

Operador: Realitzen una operació de tipus reducció que acceptarà els mateixos tipus d'entrada.

Funció: S'utilitzen per transformar arguments en valor retornable.

Consumidor: Accepten arguments però no retornen cap valor.

Proveïdor: No accepten cap argument però retornen un valor.

40) Llista algunes interfícies funcionals predefinides de Java estàndard?

Es pot executar: S'utilitzen per executar les instàncies d'una classe sobre l'altre fil sense arguments i sense valors de retorn.

Comparable: S'utilitzen per ordenar objectes en l'ordre natural

Invocable: Principalment executen les instàncies d'una classe sobre un altre fil sense arguments especificats, i retornarà un valor o llançarà una excepció.

Comparador: S'utilitza per ordenar diferents objectes en un ordre definit per l'usuari.

41) Definiu els fluxos de Java 8?

Els fluxos s'introdueixen a Java 8 i l'API Stream s'utilitza principalment per processar la col·lecció d'objectes. Un flux es defineix com una seqüència d'objectes que admetrà diferents mètodes que es canalitzen per produir el resultat desitjat. Els fluxos no canvien una estructura de dades original; proporcionen el resultat segons els mètodes canalitzats.

42) Llista els components principals d'un flux?

Els components del flux s'enumeren a continuació:

  1. Una font de dades
  2. Conjunt d'operacions intermèdies per processar la font de dades.
  3. Operació de terminal únic que produeix resultats.

43) Pots enumerar les operacions intermèdies més utilitzades?

mapa (Funció) – Retornarà un nou Stream transformant cada element aplicant la funció de mapeig subministrada.= sorted() – Ordena els elements d'entrada i els passa a la següent etapa.

saltar (inici llarg) – Saltarà els elements inicials fins al començament.

flatMap – Transformarà cada element en el corrent dels seus elements constitutius i després aplanarà tots els corrents en un sol corrent.

límit (mida màxima llarga) – Limita la mida del flux a la mida màxima.

Filtre (predicat) – Permetrà el processament selectiu dels elements Stream. Tornarà elements que compleixen la condició proporcionada per un predicat.

44) Anomena les fonts dels objectes de dades que pot processar un flux?

  1. Una font reactiva, per exemple, comenta social mitjana o piulades/retuits
  2. Una col·lecció d'un Array.
  3. Una funció de generador de flux
  4. El canal d'E/S o un dispositiu d'entrada

45) Què són les operacions intermèdies?

  1. Normalment transforma un flux en un altre.
  2. Són mandrosos, és a dir, no s'executen fins que s'invoca una operació de terminal.
  3. Processa els elements del flux.
  4. Fa una iteració interna de tots els elements font
  5. Les operacions s'apliquen segons l'ordre definit.
  6. Les operacions intermèdies són majoritàriament les funcions lambda.
  7. Podem encadenar qualsevol nombre d'operacions en un pipeline de processament.

46) Què són les operacions de la terminal?

  1. Posa en marxa el pipeline Stream
  2. utilitzat per recollir les dades de flux processades

47) Pots enumerar el tipus més habitual d'operacions del terminal?

reduir () – Produirà un únic resultat a partir de tots els elements de la seqüència de flux

  • count() – S'utilitza per retornar el nombre d'elements del flux.
  • min() – Retornarà l'element min del flux.
  • max() – Retornarà l'element màxim del flux.

recollir () – Recollirà un únic resultat de tots els elements de la seqüència de flux.

Operacions iteratives

  • forEach() – Accepta un consumidor.
  • forEachOrdered() – És útil mantenir l'ordre en els fluxos paral·lels.

Operacions de cerca/consulta

  • Tt pren Predicat com a entrada per a la condició de coincidència.
  • El processament del flux s'aturarà i es podrà determinar el resultat.

48) Llista els paquets importants per a la nova API de dades i temps?

  1. java.time
    1. dates
    2. vegades
    3. Moments
    4. durades
    5. zones horàries
    6. períodes
  2. Format.hora.Java
  3. Java.temps.temporal
  4. java.time.zone

49) Llista la funció de la nova API de data i hora a Java 8?

  1. Mètodes fluids per a la creació d'objectes i l'aritmètica
  2. Classes immutables i Thread-safe
  3. Suport a la zona horària
  4. Soluciona el problema I18N per a les API anteriors
  5. Tots els paquets es basen en el sistema de calendari ISO-8601
  6. Influenciat pel popular paquet joda-time

50) Diferenciar entre col·leccions i flux?

Col·leccions corrent
S'utilitza principalment per emmagatzemar i manipular un grup de dades.L'API Stream s'utilitza per processar un grup de dades.
Tots els elements de les col·leccions es calculen al principi.A les rieres, les operacions intermèdies són mandroses.
Totes les classes i interfícies d'aquesta API es troben al paquet Java.utilTotes les classes i interfícies d'aquesta API es troben al paquet java.util.stream
Les col·leccions realitzen una iteració sobre la col·lecció.El flux realitza la iteració internament.
A les col·leccions, es poden eliminar o afegir elements.Aquí, no podem modificar els fluxos.

Molta sort amb la vostra entrevista de Java 8, esperem que les nostres preguntes i respostes de l'entrevista de Java 8 us siguin d'ajuda. També podeu consultar el nostre Preguntes i respostes de l'entrevista .NET , que et pot ser d'alguna ajuda.