{"id":94334,"date":"2020-09-16T01:42:08","date_gmt":"2020-09-15T23:42:08","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-java-se-15"},"modified":"2020-09-16T01:42:08","modified_gmt":"2020-09-15T23:42:08","slug":"vypusk-java-se-15","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-java-se-15","title":{"rendered":"Lan\u00e7amento do Java SE 15","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ap\u00f3s seis meses de desenvolvimento, a Oracle <noindex><a rel=\"nofollow\" href=\"http:\/\/mail.openjdk.java.net\/pipermail\/announce\/2020-September\/000291.html\">lan\u00e7ou<\/a><\/noindex> plataforma <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html\">Java SE 15<\/a><\/noindex> (Java Platform, Standard Edition 15), cuja implementa\u00e7\u00e3o de refer\u00eancia \u00e9 o projeto aberto OpenJDK. O Java SE 15 mant\u00e9m a compatibilidade reversa com as vers\u00f5es anteriores da plataforma Java, todos os projetos Java escritos anteriormente funcionar\u00e3o sem modifica\u00e7\u00f5es ao serem executados na nova vers\u00e3o. Compila\u00e7\u00f5es prontas para instala\u00e7\u00e3o do Java SE 15 (JDK, JRE e Server JRE) <noindex><a rel=\"nofollow\" href=\"http:\/\/jdk.java.net\/15\">foram preparados<\/a><\/noindex> para Linux (x86_64), Windows e macOS. A implementa\u00e7\u00e3o de refer\u00eancia desenvolvida no \u00e2mbito do projeto OpenJDK <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/15\/\">Java 15<\/a><\/noindex> \u00e9 totalmente aberta sob a licen\u00e7a GPLv2 com exce\u00e7\u00f5es do GNU ClassPath, permitindo liga\u00e7\u00e3o din\u00e2mica a produtos comerciais. <\/p>\n<p>Java SE 15 \u00e9 classificado como uma vers\u00e3o de suporte padr\u00e3o, com atualiza\u00e7\u00f5es sendo lan\u00e7adas at\u00e9 o pr\u00f3ximo lan\u00e7amento. Para uma vers\u00e3o com suporte a longo prazo (LTS), deve-se utilizar o Java SE 11, com atualiza\u00e7\u00f5es sendo lan\u00e7adas at\u00e9 2026. A vers\u00e3o LTS anterior, Java 8, ser\u00e1 suportada at\u00e9 dezembro de 2020. O pr\u00f3ximo lan\u00e7amento LTS est\u00e1 previsto para setembro de 2021. Lembre-se de que, a partir do lan\u00e7amento do Java 10, o projeto adotou um novo processo de desenvolvimento, que prev\u00ea um ciclo mais curto para novas vers\u00f5es. A nova funcionalidade agora \u00e9 desenvolvida em uma ramifica\u00e7\u00e3o master constantemente atualizada, que incorpora mudan\u00e7as j\u00e1 conclu\u00eddas e da qual s\u00e3o ramificadas vers\u00f5es para estabiliza\u00e7\u00e3o a cada seis meses. <\/p>\n<p>De <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/jdk\/15\/\">novidades<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/jdk.java.net\/14\/release-notes#newfeatures\">Java 15<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/www.oracle.com\/java\/technologies\/javase\/15all-relnotes.html\">\u00e9 poss\u00edvel<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.oracle.com\/javamagazine\/inside-java-15-fourteen-jeps-in-five-buckets\">marcar<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/339\">Integrado<\/a><\/noindex> suporte para o algoritmo de cria\u00e7\u00e3o de assinatura digital EdDSA (Edwards-Curve Digital Signature Algorithm  <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc8032\">RFC 8032<\/a><\/noindex>). A implementa\u00e7\u00e3o proposta do EdDSA n\u00e3o depende de plataformas de hardware, \u00e9 protegida contra ataques de canal lateral (garantindo tempo constante em todos os c\u00e1lculos) e, em termos de desempenho, supera a implementa\u00e7\u00e3o existente do ECDSA, escrita na linguagem C, com o mesmo n\u00edvel de prote\u00e7\u00e3o. Por exemplo, o EdDSA usando uma curva el\u00edptica com uma chave de 126 bits demonstra desempenho semelhante ao ECDSA com a curva el\u00edptica secp256r1 e uma chave de 128 bits.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/360\">Adicionada<\/a><\/noindex> suporte experimental para classes e interfaces seladas que n\u00e3o podem ser utilizadas por outras classes e interfaces para heran\u00e7a, extens\u00e3o ou sobrecarga da implementa\u00e7\u00e3o. Classes seladas tamb\u00e9m oferecem uma forma mais declarativa de restringir o uso da superclasse, em compara\u00e7\u00e3o com modificadores de acesso, baseada na enumera\u00e7\u00e3o expl\u00edcita das subclasses permitidas para extens\u00e3o.\n<p>   package com.example.geometry;<\/p>\n<p>   public sealed class Shape<br \/>\n        permits com.example.polar.Circle,<br \/>\n                com.example.quad.Rectangle,<br \/>\n                com.example.quad.simple.Square {...}<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/371\">Adicionada<\/a><\/noindex> suporte a classes ocultas que n\u00e3o podem ser usadas diretamente pelo bytecode de outras classes. O principal objetivo das classes ocultas \u00e9 seu uso em frameworks que geram classes dinamicamente em tempo de execu\u00e7\u00e3o e as utilizam indiretamente, atrav\u00e9s de <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D1%82%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">reflex\u00e3o<\/a><\/noindex>. Essas classes geralmente t\u00eam um ciclo de vida limitado, portanto, mant\u00ea-las para acesso a partir de classes geradas estaticamente n\u00e3o \u00e9 justific\u00e1vel e resultar\u00e1 apenas em aumento do consumo de mem\u00f3ria. Classes ocultas tamb\u00e9m permitem contornar a API n\u00e3o padr\u00e3o sun.misc.Unsafe::defineAnonymousClass, que est\u00e1 programada para ser removida no futuro.\n<li class=\"l\"> O coletor de lixo ZGC (Z Garbage Collector) foi estabilizado e reconhecido como pronto para uso generalizado. O ZGC opera no modo passivo, minimizando, tanto quanto poss\u00edvel, as interrup\u00e7\u00f5es causadas pela coleta de lixo (o tempo de parada ao usar o ZGC n\u00e3o excede 10 ms) e pode trabalhar com heaps pequenos ou enormes, variando de algumas centenas de megabytes a v\u00e1rios terabytes.\n<li class=\"l\"> Estabilizado e reconhecido como pronto para uso generalizado<br \/>\n coletor de lixo <noindex><a rel=\"nofollow\" href=\"http:\/\/openjdk.java.net\/projects\/shenandoah\/\">Shenandoah<\/a><\/noindex>, que opera com interrup\u00e7\u00f5es m\u00ednimas (Low-Pause-Time Garbage Collector). O Shenandoah foi desenvolvido pela Red Hat e \u00e9 not\u00e1vel por usar um algoritmo que reduz o tempo de paradas durante a coleta de lixo, realizando a limpeza paralelamente \u00e0 execu\u00e7\u00e3o de aplicativos Java. O tamanho das interrup\u00e7\u00f5es causadas pelo coletor de lixo \u00e9 previs\u00edvel e n\u00e3o depende do tamanho do heap, ou seja, para heaps de 200 MB e 200 GB, os atrasos ser\u00e3o id\u00eanticos (<noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.openjdk.java.net\/display\/shenandoah\/Main\">n\u00e3o ultrapassando<\/a><\/noindex> 50 ms e geralmente se enquadrando em 10 ms);<\/p>\n<li class=\"l\"> Foi estabilizada e adicionada ao idioma a suporte <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/378\">a blocos de texto<\/a><\/noindex> \u2014 uma nova forma de literais de string que permite incluir dados de texto multilinha no c\u00f3digo fonte sem precisar escapar caracteres e mantendo a formata\u00e7\u00e3o original do texto em um bloco. O bloqueio \u00e9 feito com tr\u00eas aspas duplas.\n<p>Por exemplo, em vez de c\u00f3digo<\/p>\n<p>   String html = &#171;&lt;HTML&gt;&#187; +<br \/>\n   &#171;&#092;n&#092;t&#187; + &#171;&lt;BODY&gt;&#187; +<br \/>\n   \u00ab\n\t\t\u00bb + \u00ab<h1>Java 15 chegou!<\/h1>\u00bb +<br \/>\n   &#171;&#092;n&#092;t&#187; + &#171;&lt;\\\/BODY&gt;&#187; +<br \/>\n   &#171;&#092;n&#187; + &#171;&lt;\\\/HTML&gt;&#187;;<\/p>\n<p>pode-se indicar:<\/p>\n<p>   String html = &#171;&#187;&#187;<br \/>\n   &lt;HTML&gt;<br \/>\n     &lt;BODY&gt;<br \/>\n       <h1>\u00bbJava 15<br \/>\n est\u00e1 dispon\u00edvel!&#187;&lt;\\\/H1&gt;<br \/>\n     &lt;\\\/BODY&gt;<br \/>\n   &lt;\\\/HTML&gt;&#187;&#187;&#187;;<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/373\">Revisado<\/a><\/noindex> API Legacy DatagramSocket. As antigas implementa\u00e7\u00f5es java.net.DatagramSocket e java.net.MulticastSocket foram substitu\u00eddas por uma implementa\u00e7\u00e3o moderna, mais simples para depura\u00e7\u00e3o e manuten\u00e7\u00e3o, al\u00e9m de ser compat\u00edvel com fluxos virtuais em desenvolvimento no projeto <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/projects\/loom\">Loom<\/a><\/noindex>. Em caso de poss\u00edvel incompatibilidade com o c\u00f3digo existente, a antiga implementa\u00e7\u00e3o n\u00e3o foi removida e pode ser ativada atrav\u00e9s da op\u00e7\u00e3o jdk.net.usePlainDatagramSocketImpl.\n<li class=\"l\"> Uma segunda implementa\u00e7\u00e3o experimental foi proposta <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/375\">correspond\u00eancias com o modelo<\/a><\/noindex> no operador &#171;instanceof&#187;, que permite definir imediatamente uma vari\u00e1vel local para acessar o valor verificado. Por exemplo, pode-se escrever &#171;if (obj instanceof String s &#038;&#038; s.length() &gt; 5) {.. s.contains(..) ..}&#187; sem a defini\u00e7\u00e3o expl\u00edcita &#171;String s = (String) obj&amp;#187.;\n<p>Era:<\/p>\n<p>   if (obj instanceof Group) {<br \/>\n     Group group = (Group) obj;<br \/>\n     var entries = group.getEntries();<br \/>\n   }<\/p>\n<p>Agora \u00e9 poss\u00edvel dispensar a defini\u00e7\u00e3o &#171;Group group = (Group) obj&#187;:<\/p>\n<p>   if (obj instanceof Group group) {<br \/>\n     var entries = group.getEntries();<br \/>\n   }<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/384\">Proposta a<\/a><\/noindex> segunda implementa\u00e7\u00e3o experimental da palavra-chave \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/359\">record<\/a><\/noindex>&#171;, que proporciona uma forma compacta de definir classes, permitindo evitar a defini\u00e7\u00e3o expl\u00edcita de v\u00e1rios m\u00e9todos de baixo n\u00edvel, como equals(), hashCode() e toString(), nos casos em que os dados s\u00e3o mantidos apenas em campos cujo comportamento n\u00e3o muda. Quando as implementa\u00e7\u00f5es t\u00edpicas dos m\u00e9todos equals(), hashCode() e toString() s\u00e3o usadas na classe, \u00e9 poss\u00edvel dispensar sua defini\u00e7\u00e3o expl\u00edcita:\n<p>   registro p\u00fablico BankTransaction(LocalDate data,<br \/>\n                              double valor,<br \/>\n                              String descri\u00e7\u00e3o) {}<\/p>\n<p>Esta declara\u00e7\u00e3o resultar\u00e1 na adi\u00e7\u00e3o autom\u00e1tica das implementa\u00e7\u00f5es dos m\u00e9todos equals(), hashCode() e toString() al\u00e9m do construtor e dos m\u00e9todos que controlam a modifica\u00e7\u00e3o de dados (getter).<\/p>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/383\">Proposto<\/a><\/noindex> segunda vers\u00e3o preliminar da API de Acesso \u00e0 Mem\u00f3ria Estrangeira, permitindo que aplica\u00e7\u00f5es Java acessem de forma segura e eficiente \u00e1reas de mem\u00f3ria fora do heap Java, manipulando novas abstra\u00e7\u00f5es MemorySegment, MemoryAddress e MemoryLayout.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/374\">Desativado<\/a><\/noindex> e a t\u00e9cnica de otimiza\u00e7\u00e3o Biased Locking foi declarada obsoleta, utilizada no HotSpot JVM para reduzir as despesas com bloqueios. Esta t\u00e9cnica se tornou obsoleta em sistemas com instru\u00e7\u00f5es at\u00f4micas, fornecidas por CPUs modernas, e \u00e9 muito trabalhosa para manuten\u00e7\u00e3o devido \u00e0 sua complexidade.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/385\">Anunciado<\/a><\/noindex> mecanismo obsoleto <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.oracle.com\/en\/java\/javase\/14\/docs\/specs\/rmi\/activation.html\">Ativa\u00e7\u00e3o RMI<\/a><\/noindex>, que ser\u00e1 removido em uma das pr\u00f3ximas vers\u00f5es. Vale ressaltar que a Ativa\u00e7\u00e3o RMI se tornou obsoleta, sendo transformada em uma op\u00e7\u00e3o desde o Java 8 e quase n\u00e3o sendo utilizada na pr\u00e1tica moderna.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/372\">Removido<\/a><\/noindex>  motor JavaScript <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=35427\">Nashorn<\/a><\/noindex>, que foi declarado obsoleto no Java SE 11.\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/openjdk.java.net\/jeps\/381\">m\u00e9todo n\u00e3o padr\u00e3o<\/a><\/noindex> portas para o sistema operacional Solaris e processadores SPARC (Solaris\/SPARC, Solaris\/x64 e Linux\/SPARC). A remo\u00e7\u00e3o das portas mencionadas permitir\u00e1 que a comunidade acelere o desenvolvimento de novas funcionalidades do OpenJDK, sem perder tempo na manuten\u00e7\u00e3o de particularidades espec\u00edficas para Solaris e SPARC.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fonte: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53717\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Java SE 15 (Java Platform, Standard Edition 15), \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 OpenJDK. \u0412 Java SE 15 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u043f\u0440\u043e\u0448\u043b\u044b\u043c\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Java, \u0432\u0441\u0435 \u0440\u0430\u043d\u0435\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 Java-\u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438. \u0413\u043e\u0442\u043e\u0432\u044b\u0435 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-94334","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-java-se-15\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a Java SE 15 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-java-se-15\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-15T23:42:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-15T23:42:08+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lan\u00e7amento do Java SE 15 | ProHoster","description":"Ap\u00f3s seis meses de desenvolvimento, a Oracle lan\u00e7ou a plataforma","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-java-se-15","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a Java SE 15 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0448\u0435\u0441\u0442\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Oracle \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-java-se-15","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-15T23:42:08+00:00","article:modified_time":"2020-09-15T23:42:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94334","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:29:28","updated":"2022-10-03 17:44:46","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/94334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=94334"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/94334\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=94334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=94334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=94334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}