ホームページ >Java >&#&チュートリアル >Java データ型を学習したことがありませんか?姿勢がダメだから!

Java データ型を学習したことがありませんか?姿勢がダメだから!

Java学习指南
Java学习指南転載
2023-07-26 17:24:001467ブラウズ

小さな故事

皆さん、こんにちは。私はノード兄弟です。世界中でブラザー・チンとして知られています。最近、非常に人気のある本「Java からの取得」を読みました。埋もれ始めました』にとても惹かれました。大手書店の売上ランキングで1位だそうですが?まだまだ学ぶことが好きな友達がたくさんいるようです! 知識は運命を変え、Javaは人生を変えると言われているので、Javaを学ぶという私の決断は正しかったようです。

Java データ型を学習したことがありませんか?姿勢がダメだから!
#そうは言っても、この本はとてもよく書かれていますが、結局のところ、まだ始めたばかりで、小さな知識については少し混乱しています。先ほど学んだデータ型などのポイントですが、基礎がまったくない私にとってはまだ少し難しいです。

この日、退屈でCSDNを徘徊していたところ、次のブログを発見しました。 #】。正直、このような記事を見るととても軽蔑してしまいます 赤黒の木?何の木ですか?なぜ半分が赤で半分が黒なのでしょうか?これを読んで理解できましたか?半分理解できたらどうなるでしょうか?難産ではないでしょうか?鼻を鳴らす!あなたがどんなモンスターなのか見せてもらいましょう。

手を軽くたたくと、入ってきました。最初はとても反対していましたが、話が進むにつれてさらに驚きました… 2 分後、私はひざまずきそうになりました。とてもよく書かれていて、本よりも詳しく書かれているような気がします(よくわかりませんでしたが)!この有益な情報が満載、この新鮮で洗練されたテキスト、この [知識] が全画面に表示されているのを見て、これを見逃すわけにはいきません。早く私のお気に入りのところに灰を食べに行かせてみませんか?上司にすべてを明らかにするために、私が次々にフォロー、いいね、お気に入りに追加するのを見てください。 私は興奮しながら、上司のダイアログ ボックスを静かにクリックしました。

#I

: ボス、そこにいるの?

しばらくして、上司から実際に返信がありました。

武哥: どうしたの~?

: (言葉をどう整理していいのかわかりません) ええと... ボス... あなたはとてもハンサムです!とてもクール!

武哥

: 有害です!これは受け入れられないのでしょうか?

: (額に黒い線があるこの男は、少しナルシストなんじゃないかと思います。ビジネスのために彼にお世辞を言っているだけですが、彼は自分自身にかなり誇りを持っていますか? ) はは~ボス、それで終わりです。私は Java を学んでいる初心者なのですが、助けてもらえますか?

武哥

: そうですね...これも...いいですよ、有料です

: (私は確かに偉い人だと思っていました、そして私はまだ料金を請求しています) お兄さん、私はJavaがとても好きです。最近勉強するために本を買いました。タイトルは「Java」です。この本はとても良い本だと思いますが、少し疑問があり、学習についていくつか質問したいのですが、バックドアはあり得ると思いますか?

ウー兄さん: それなら...わかりました。あなたはとても学習意欲が高いので、いくつかアドバイスをさせていただきます。あなたは今どこで学習していますか?

: Java の基礎を学んだばかりですが、データ構造を見ると少し混乱します~

武哥 : 言うのは簡単です。Java の基礎を学ぶのに半年以上かかりました。基礎は非常にしっかりしているので、この知識ポイントを一緒に説明していきます。

#I: 本当ですか?ボス!どうもありがとうございます!後で夕食をご馳走します!

武哥: 小さな問題、小さな問題。合肥にもいらっしゃるんですね?

: はい~ (少しパニックになり、静かに上司のプロフィールをクリックしました、もしかして...)

武哥:ハハ、なんという偶然でしょう!私もここにいるよ!

#I

: ああ?そんな偶然?どうですか... (食事からは逃れられないようです、私は泣きます...)

武哥

: WeChat に私を追加していただければ、場所をお送りします。詳しく話しましょう。

I

: (これは...対面での出会いですか? ほんの数分のコミュニケーションですか? 偉い人たちはみんなそんなにコケティッシュですか? 私にはその気はありませんが心、私の体はとても正直です) えっと... わかりました、すぐに行きます...

ブラザー Wu

: わかりました、お待ちしています ~私は震えていました...私の心の中にはパニックの痕跡がありました!

30分後、私はウー兄弟から教えてもらった住所に従ってタクシーに乗りました。

ウー兄弟を見ると、予想通り、彼はとても怒っていました。

私はウー兄弟が髪を後ろになで、オイルを塗り、45度の角度で車にもたれかかり、空を見上げ、タバコに火をつけ、終わりのない人生の浮き沈みと孤独を感じているのを見ました。

I

: (私は覚悟を決めて挨拶に行きます) ウー兄弟?

武哥

: (喫煙をやめてちらりと私を見た、彼の目は少し混乱していた): こんにちは?ノード兄弟ですか?

: そうですね...はい (静かに数歩後ずさり)

武哥: (またいで私の肩に腕を回す)コーヒーショップに行ってコーヒーを飲みながら、Java について話しましょう。どうですか?

: (あなたはこんな感じだと思っていましたが、それでも断りました!) わかりました...

それで、ウー兄弟は私を抱きしめて身をよじりました。スターバックス...そして静かな個室を見つけました...

次のシーンは想像できると思います...

えーっ!真剣になってください!私たちは学習について話し合うためにここにいます! #########何?あなたは信じていない?

では、以下をご覧ください。辛口情報警告!

便利なものをご紹介します Javaデータには多くの種類がありますが、本記事では主に「基本型」「パッケージ化型」「参照型」「キャッシュプール」の4つの観点からまとめます。

基本的なデータ型

基本的なデータ型には、byte、short、int、long、float、double、boolean、char があり、その分類については、次のとおりです。写真。

基本的な型
Java データ型を学習したことがありませんか?姿勢がダメだから!
次に、バイト数、データ範囲、デフォルト値、用途の観点から表にまとめていきます。一目瞭然です。

#パッケージ化データ タイプJava データ型を学習したことがありませんか?姿勢がダメだから!

読者の便宜のために、上記の基本タイプには対応するパッケージ化タイプがあります。表もまとめました。


#

参照型

Java では、参照型変数は C/C ポインタによく似ています。参照型はオブジェクトを指し、オブジェクトを指す変数は参照変数です。これらの変数には、宣言時に Student、Dog などの特定の型が割り当てられます。変数が宣言されると、その型を変更することはできません。

オブジェクトと配列は参照データ型です。すべての参照型のデフォルト値は null です。参照変数は、互換性のある任意の型を参照するために使用できます。例:

Dog dog = new Dog("旺财")。

データ型変換

パッケージ化タイプと基本タイプの間で変換するにはどうすればよいですか?

Integer x = 2;     // 装箱 调用了 Integer.valueOf(2)
int y = x;         // 拆箱 调用了 X.intValue()

基本的な型間で変換するにはどうすればよいですか?

  1. 大容量型を小容量型に変換する場合、強制型変換を行う必要があります。

  2. # 小容量タイプから大容量タイプへの自動変換が可能です。

例:

int i =128;   
byte b = (byte)i;
long c = i;

キャッシュ プール

質問について考えてみましょう: new Integer(123)Integer.valueOf(123) の違いは何ですか?

知っている人もいれば、知らない人もいるかもしれません。実際、それらは大きく異なります。

  1. new Integer(123) 每次都会新建一个对象;

  2. Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。

我写个demo大家就知道了

Integer x = new Integer(123);
Integer y = new Integer(123);
System.out.println(x == y);    // false
Integer z = Integer.valueOf(123);
Integer k = Integer.valueOf(123);
System.out.println(z == k);   // true

编译器会在自动装箱过程调用valueOf()方法,因此多个值相同且值在缓存池范围内的 Integer 实例使用自动装箱来创建,那么就会引用相同的对象。如:

Integer m = 123;
Integer n = 123;
System.out.println(m == n); // true

valueOf()方法的实现比较简单,就是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容。我们看下源码就知道。

public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}

根据数据类型的不一样,这个缓存池的上下限也不同,比如这个 Integer,就是 -128~127。不过这个上界是可调的,在启动 jvm 的时候,通过 -XX:AutoBoxCacheMax=来指定这个缓冲池的大小,该选项在 JVM 初始化的时候会设定一个名为 java.lang.IntegerCache.high 系统属性,然后 IntegerCache 初始化的时候就会读取该系统属性来决定上界。

参考自StackOverflow:

https://stackoverflow.com/questions/9030817/differences-between-new-integer123-integer-valueof123-and-just-123

 

OK,关于Java数据类型的小知识就分享到这了,虽然我还有点意犹未尽…

Java 的数据类型虽然简单,但是里面还是有很多小细节值得我们玩味的,希望这篇文章能给大家带来一些帮助。

以上がJava データ型を学習したことがありませんか?姿勢がダメだから!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はJava学习指南で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。