ループ処理の最適化
非効率的なループ
int a = 1;
int b = 2;
int[] c = {0, 0, 0};
String[] array = new String[10000] ;
for (int i = 0 ; i < array.length ; i++) {
c[0] += a + b;
array[i] = (new Integer(c[0])).toString();
}
無駄な処理を外出しにする 繰り返し内でaとbは不変なので、計算するコストを省けます。 配列を外出しにする 配列の要素への参照は、配列境界のチェックのためのオーバーヘッドが発生します。c[0]のような、固定された要素への参照が繰り返し現れる場合は、外出しにすることで、このオーバーヘッドを省けます メンバー呼び出しをなくす 繰り返し終了条件で、オブジェクトのメソッドやフィールドを使うと、毎回ヒープ領域への参照が発生します。int型のローカル変数にコピーすることで、オブジェクトの参照と、そのメンバーの呼び出しのコストを省けます。 オブジェクト生成をなくす 繰り返しごとにオブジェクトを生成する負荷は馬鹿になりません。可能であれば、外出しにすべきです。
修正したループ
int a = 1;
int b = 2;
int[] c = {0, 0, 0};
String[] array = new String[10000] ;
int s = 3;
int c0 = c[0];
int len = array.length ;
for (int i = 0 ; i < len ; i++) {
c0 = c0 + s;
array[i] = Integer.toString(c0);
}
c[0] = c0;
分享到:
相关推荐
3. **トラブルシューティングとパフォーマンスチューニング** このワークショップでは、WebSphere Application Server に関する問題を特定し、対処する方法と、パフォーマンスを向上させるための戦略を学ぶことがで...
* 年月日時のスラッシュ入りフォーマット(年/月/日) */ public static final String YYYYMMDD_SLASH = "yyyy/MM/dd"; /** * 年月のスラッシュ入りフォーマット(年/月) */ public static final String YYYY...
報告書は、開発者や企業がオープンソース技術を取り入れる背景、利用状況、そしてコミュニティへの参加に関する情報を収録しています。 報告書は、様々な重要なポイントを分析し、専門家のコメントを交えて解説して...
* フォーマット (format):设置或更改文档或文件的格式。 * ツール (tool):软件应用程序中的工具或方法。 这些日语词汇在 Java 项目开发中经常会被使用,了解这些词汇可以帮助开发者更好地理解和使用 Java 相关...
- パフォーマンス (pafōmanzu):性能 - 故障 (fūza):故障 - サポート (supōto):支持,服务 6. **文档与报告词汇**: - ドキュメント (dokyumēnto):文档 - レポート (rēpōto):报告 - 手順 (tejun):...
8. **项目管理**:敏捷开发(アジャイル開発)、需求分析(ニーズ分析)、スケジューリング(计划编制)、品質管理(品質管理)等相关术语的日语表达。 9. **云计算与大数据**:理解云服务如AWS(アマゾンウェブサ...
JAVAはその柔軟性とパフォーマンスにより、さまざまな種類のアプリケーション開発に適しています。また、COBOLも得意としており、特にビジネスシステム開発において重要な役割を果たしています。 --- #### 问题9:...
12. **インターフェース (interface)** - 接口定义了一组方法签名,类实现接口必须提供这些方法的实现。 13. **继承 (inheritance)** - 一个类可以继承另一个类的属性和方法,形成类的层次结构。 14. **多态性 ...
まず、Boot-Camp学習プログラムでは、Javaアプリケーションのコンパイルやデプロイにおいて、Gradleという自動化ツールが推奨されています。Gradleは、MavenやAntなどの他のビルドシステムに比べて柔軟性が高く、カ...
9. 计算机图形学:包括图形界面(graphical user interface)、向量图形(vector graphics)等术语,日语中的对应词汇是「グラフィカル ユーザー インターフェイス(gurafikaru yūzā intāfēisu)」和「ベクトル グラフ...
47. アンチウィルスソフト(antivirus software):杀毒软件,用于检测和清除计算机病毒的程序。 48. イイーサネット(Ethernet):以太网,最常见的局域网(LAN)技术。 49. イジェクトボタン(eject button):...
「私はチームワークに優れ、日本語も堪能で、プロジェクトメンバーとのコミュニケーションに問題ありません。過去の経験を通じて、異なる文化やバックグラウンドを持つ人々との協力も成功裏に進めることができました...
エンタープライズクラスのシステム开発における生产性向上を主目的とした,javaベースのローコード开発プラットフォームです。 码头工人 > docker pull iplass/iplass-standalone > docker run -p 8080:8080 -e ...
4. **编程语言**:熟悉各种编程语言的日语名称,如“Java”(ジャバ)、“Python”(パイソン)、“C++”(シープラスプラス)等,并学习相关的编程术语和短语。 5. **网络与通信**:掌握网络概念的日语表达,如...
计算机 (コンピュータ | computer) - **定义**: 一种能够执行一系列指令并处理数据的电子设备。 - **应用场景**: 在日常工作中,无论是编写代码还是运行应用程序都离不开计算机的支持。 #### 4. 个人计算机 (パソ...
自宅等のインターネット环境からSSH接続が出来る状态であること手顺の目次javaのインストールTomcatのインストールRDSへの初期データ准备XXX 1.javaのインストールjavaをインストールするsudo yum install java-...
读书笔记:『明解 Javaによるアルゴリズムとデータ構造』のサンプルコードをScalaで書いてみました
Oracle,Postgresql,SQL Server(DB2のSQLチューニングとかスナップショット解析などで経験あり) Linux(シェル开発,运用経験もあり) Windows Server(バッチ开発,使用経験もあり) SAS(临床开発职でちょ...
例ンパイル(例としてMain.javaをコンパイルする) bash# javac Main.java 例行(例としてMain.javaを実行する) bash# java Main Windows环境ではdockerコマンドの前にwinptyが必要かも 例如:winpty docker-...