Java 21 API New Features

  Рет қаралды 46,726

Java

Java

Күн бұрын

Пікірлер: 85
@java
@java Жыл бұрын
We got 2:34 wrong. Named groups in regular expressions are supported since Java 7. What's new (in 20) is that the methods related to named groups moved up the dependency tree from `Matcher` to the interface `MatchResult`.
@zoladkow
@zoladkow Жыл бұрын
no worries, everyone here knows the vids are just about coffee sipping with some words inbetween 😁
@brandpcalderon5343
@brandpcalderon5343 Жыл бұрын
i was going to complain the same, named groups are allowed since I learnt regex like 3 years ago and more I suppose
@OzoneGrif
@OzoneGrif 10 ай бұрын
Yeah I was really confused about this. Was going to comment the same thing. Brain fart !
@Talaria.School
@Talaria.School Жыл бұрын
Great topics I had to comment and thumbs up. Thanks a lot José.
@JosePaumard
@JosePaumard Жыл бұрын
Thank you Khaled!
@onebeartoe
@onebeartoe Жыл бұрын
Thanks! I cant wait for the named String groupings to help parse flat files.
@YvesDautremay
@YvesDautremay Жыл бұрын
Thanks for the overview ! A few nice things that may be shadowed by virtual threads
@JosePaumard
@JosePaumard Жыл бұрын
Thank you!
@1gmar
@1gmar Жыл бұрын
Apologies, isn't the feature mentioned at 2:34 already available since Java 7?
@mikolajpodbielski
@mikolajpodbielski Жыл бұрын
Yes, it is.
@christofferhammarstrom
@christofferhammarstrom Жыл бұрын
What is new in Java 20 though, is that MatchResult now supports named groups. Perhaps there was a mixup here.
@JosePaumard
@JosePaumard Жыл бұрын
You're absolutely right. What has been done in 20 is that the methods are now available on MatchResult (interface implemented by the Matcher class), along with some others. I should have mentionned namedGroup() also.
@boyneverstop
@boyneverstop Жыл бұрын
Thank you for making this video! Very useful
@JosePaumard
@JosePaumard Жыл бұрын
Thank you!
@codeZarathustra
@codeZarathustra Жыл бұрын
Good explanation Sr! Thank very much!
@JosePaumard
@JosePaumard Жыл бұрын
Thank you!
@nO_d3N1AL
@nO_d3N1AL Жыл бұрын
Really appreciate this format of doing updates. Also a cool idea: the amount of coffee left in the cup should match the progress of the video ;) Also thankful that new APIs and methods aren't using checked exceptions! 🎉
@JosePaumard
@JosePaumard Жыл бұрын
Well it does ;) This is real coffee that I drink during the recording.
@nO_d3N1AL
@nO_d3N1AL Жыл бұрын
@@JosePaumard Cool! I bet it's actual Java coffee too ;)
@JosePaumard
@JosePaumard Жыл бұрын
@@nO_d3N1AL Oh yes it is! 😊
@ajaypt1947
@ajaypt1947 Жыл бұрын
thank you for valuable information sir... btw I like ur coffee cup
@svalyavasvalyava9867
@svalyavasvalyava9867 Жыл бұрын
Awesome video, thank you ☺️
@TheNeoxpert
@TheNeoxpert Жыл бұрын
08:44 close() method will be called no matter what? what if there is System.exit(0); in the try block?
@JosePaumard
@JosePaumard Жыл бұрын
Nope, not in that case. If what you need is to kill your JVM as fast as possible, taking the time to execute all your close(), finalize(), etc... would probably be a mistake,
@OriginGaming101
@OriginGaming101 6 ай бұрын
Came here for Java, stayed for their use of my favourite local cafe in the background! 😂
@mortensen117
@mortensen117 Жыл бұрын
So, named groups, which arrived in Java SE 7, is now suddenly something new? If you could write the name of the group in some meaningfull way without of a lot a string gymnastics, then there would be some thing new.
@JosePaumard
@JosePaumard Жыл бұрын
What is new is that the methods are now also on the interface.
@zenmony-dot-com7457
@zenmony-dot-com7457 Жыл бұрын
Pleasant coffee lounge atmosphere, perfect for learning.
@danthe1st
@danthe1st Жыл бұрын
Shouldn't it be "Charset" instead of "CharSet" in 7:09?
@muzzletov
@muzzletov Жыл бұрын
CharSet is just short for Character Set. So, no, it shouldnt.But yes, the class is called Charset, which feels wrong :D
@danthe1st
@danthe1st Жыл бұрын
@@muzzletov If the JDK calls it Charset, it is Charset and not CharSet. And honestly, I would consider charset to be its own (atomic) word and (at least in the context of Java,) it isn't really a set of characters.
@JosePaumard
@JosePaumard Жыл бұрын
It should. Thank you for pointing it out!
@si2001si
@si2001si Жыл бұрын
Hi Jose, Big Fan!! Your Coffee looks yum
@jeromemainaud
@jeromemainaud 9 ай бұрын
3:59 With large patterns in a multiline string, instead of using backslashes you can also use the COMMENT flag. This will be more readable.
@oifbert
@oifbert 8 ай бұрын
What's new about pattern matching? Named groups have existed for years.
@ahmadfx8962
@ahmadfx8962 Жыл бұрын
رائع
@ClydeXT
@ClydeXT Жыл бұрын
In your example at 7:15, your types should be "byte[]" instead if "int[]"
@zoladkow
@zoladkow Жыл бұрын
ahh... certainly too much coffee 🙃
@computer_science10
@computer_science10 Жыл бұрын
thank you
@radoandrey2268
@radoandrey2268 Жыл бұрын
Thank you
@edmaphis9805
@edmaphis9805 Жыл бұрын
So Autoclosable is a functional interface?
@JosePaumard
@JosePaumard Жыл бұрын
It is. I'm not sure that it will be very useful to implement it with a lambda though...
@edmaphis9805
@edmaphis9805 Жыл бұрын
Ok. class Closer { static void closing(Closeable closeable) throws Exception { System.out.println("Now closing: " + closeable.toString()); closeable.close(); } } class AClosable implements AutoCloseable { @Override public void close() throws Exception { System.out.println("I am closing"); } } public class CloseableDemo { public static void main(String[] args) throws Exception { var aclosable = new AClosable(); Closer.closing(() -> { try { aclosable.close(); } catch (Exception ex) { } }); } }
@edmaphis9805
@edmaphis9805 Жыл бұрын
@@JosePaumard Thanks, I tried anyhow. 😉
@JosePaumard
@JosePaumard Жыл бұрын
@@edmaphis9805I'm not sure I would use this pattern in a real application 😉
@rishiraj2548
@rishiraj2548 7 ай бұрын
Thanks
@edmaphis9805
@edmaphis9805 Жыл бұрын
Emoji methods !! Holy smokes !!
@RajinderYadav
@RajinderYadav Жыл бұрын
legend has it this guy is still sipping his coffee and hasn't finished it
@ggunlistedarchive969
@ggunlistedarchive969 11 ай бұрын
He did finish his coffee at the end of the episode 😅
@MrSpyTubes
@MrSpyTubes 11 ай бұрын
Another legend says that the cafeteria behind is a green screen and he is actually in a pub, and that's not coffee in the glass but Guinness
@Speiger
@Speiger Жыл бұрын
IMO the state enum is missing something. "CREATED" or "UNSTARTED", because there is no way to track if a task was already started or not. Which is useful if you have a queue of tasks that are expensive and you want to cut basically anything that isn't started yet, and you didn't expose the Queue itself. Unless state returns null if it isn't started yet, then i take that back.
@pravinjain2834
@pravinjain2834 Жыл бұрын
I fully agree, currently it seems they put the state as RUNNING as soon as the task is submitted. probably it is being thought that since we can have virtual threads, the number of threads in the pool will be more and no task will be waiting to get started. but for tasks which are computative (no blocking activity), one may not like to use virtual threads. In any case you are right, that state has been missed.
@hephestos300
@hephestos300 10 ай бұрын
after what JDK will be the whole lambda as was introduced in JDK8 deprecated and ousted ? Can't wait the moment
@RishiRajxtrim
@RishiRajxtrim 6 ай бұрын
🎉
@JorgetePanete
@JorgetePanete Жыл бұрын
I think close() should be called automatically when the object is no longer needed
@SourabhBhat
@SourabhBhat Жыл бұрын
Wouldn't that cause the same problems as finalize?
@JorgetePanete
@JorgetePanete Жыл бұрын
@@SourabhBhat At least if it's called at the end of the scope of the object I think there wouldn't be problems
@alessandroautiero5414
@alessandroautiero5414 Жыл бұрын
​​@@JorgetePanetein a method's scope that's probably easy enough (GoLang has the defer keyword for this use case pretty much), but how would you do it in the case of a field? It would have the same problems as the finalize method I'm pretty sure.
@JorgetePanete
@JorgetePanete Жыл бұрын
@@alessandroautiero5414 I don't know, I just wish it was like Rust does
@mattidragon835
@mattidragon835 Жыл бұрын
@@JorgetePanete the reason rust can automatically close is it's strict borrowing and moving rules. In java you can move objects freely and rely on the GC to clean them up
@akaalkripal5724
@akaalkripal5724 Жыл бұрын
How's the coffee?
@JoshuaMuzaaya
@JoshuaMuzaaya Жыл бұрын
wow, all these have been in Erlang/OTP, Python, Elixir right at those languages' first version.
@kitkarson4226
@kitkarson4226 Жыл бұрын
Why do they pollute Character class with emoji methods 🤮? They could have made it as a separate util class .
@pravinjain2834
@pravinjain2834 Жыл бұрын
Yes, there could be a separate class for all the Unicode properties. There are still a lot of unicode properties not available in Java API (Character class).
@sneibarg
@sneibarg Жыл бұрын
Naming capture groups is a super old feature of Python.
@Parkhill57
@Parkhill57 Жыл бұрын
piano in background still drives me crazy.
@mortensen117
@mortensen117 Жыл бұрын
AutoCloseable? Why are you presenting these OLD features as if they were new? Are you crazy?
@kitkarson4226
@kitkarson4226 Жыл бұрын
Watch it one more time. AutoCloseable is OLD. But now ExecutorService, HttpClient..etc also implement the interface. Thats what he says!
@JosePaumard
@JosePaumard Жыл бұрын
It's not because it's old that it's not useful. With the deprecation of finalize(), AutoCloseable becomes more important. Thus the new classes that implement it. Keeping repeating old stuff is not a problem for me.
@nicholas1460
@nicholas1460 Жыл бұрын
You used var. Shame on you.
@JosePaumard
@JosePaumard Жыл бұрын
Oh no, I love var.
@nicholas1460
@nicholas1460 Жыл бұрын
@@JosePaumard var var var var. Just for you. Quess what objects I'm using.
@JosePaumard
@JosePaumard Жыл бұрын
@@nicholas1460 You don't need to use it everywhere. But there are still many places where it will make your code more readable.
@kitkarson4226
@kitkarson4226 Жыл бұрын
var is a great addition to java. I have been using for couple years now,
@khmarbaise
@khmarbaise Жыл бұрын
var often shows that the variables names used are not good enough to transport the information. That lets me reconsider my names and make it better (hopefully ;-))
@Kjhd9987hy
@Kjhd9987hy Жыл бұрын
What an old ugly mess language. I feel bad for android devs when they gota look at swift and swiftui
Java 21 Security Updates #RoadTo21
27:04
Java
Рет қаралды 8 М.
Ranking Java Features Added from Versions 8 to 21!
27:03
Tales from the jar side
Рет қаралды 13 М.
It’s all not real
00:15
V.A. show / Магика
Рет қаралды 20 МЛН
Mom Hack for Cooking Solo with a Little One! 🍳👶
00:15
5-Minute Crafts HOUSE
Рет қаралды 23 МЛН
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН
Java 21 new feature: Virtual Threads #RoadTo21
33:35
Java
Рет қаралды 72 М.
Generics In Java - Full Simple Tutorial
17:34
Coding with John
Рет қаралды 1,1 МЛН
Why you should code for the long term
8:43
TMF
Рет қаралды 2,1 М.
Teaching old Streams new tricks  By Viktor Klang
50:51
Devoxx
Рет қаралды 22 М.
Java 8 to 18: Most important changes in the Java Platform
31:24
Java 21 Pattern Matching Tutorial #RoadTo21
23:28
Java
Рет қаралды 27 М.
Java 21 - Language Features and Beyond
29:20
Java
Рет қаралды 25 М.
It’s all not real
00:15
V.A. show / Магика
Рет қаралды 20 МЛН