ループ処理の最適化
非効率的なループ
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;
分享到:
相关推荐
報告書は、開発者や企業がオープンソース技術を取り入れる背景、利用状況、そしてコミュニティへの参加に関する情報を収録しています。 報告書は、様々な重要なポイントを分析し、専門家のコメントを交えて解説して...
* フォーマット (format):设置或更改文档或文件的格式。 * ツール (tool):软件应用程序中的工具或方法。 这些日语词汇在 Java 项目开发中经常会被使用,了解这些词汇可以帮助开发者更好地理解和使用 Java 相关...
- パフォーマンス (pafōmanzu):性能 - 故障 (fūza):故障 - サポート (supōto):支持,服务 6. **文档与报告词汇**: - ドキュメント (dokyumēnto):文档 - レポート (rēpōto):报告 - 手順 (tejun):...
8. **项目管理**:敏捷开发(アジャイル開発)、需求分析(ニーズ分析)、スケジューリング(计划编制)、品質管理(品質管理)等相关术语的日语表达。 9. **云计算与大数据**:理解云服务如AWS(アマゾンウェブサ...
Android アプリ開発の基礎知識と実務スキルを身に付けるトレーニングコース 前提 このトレーニングコースに入る前に、下記の知識・スキルについて勉強しておいてください。 Java の知識・スキル Java言語プログラ...
12. **インターフェース (interface)** - 接口定义了一组方法签名,类实现接口必须提供这些方法的实现。 13. **继承 (inheritance)** - 一个类可以继承另一个类的属性和方法,形成类的层次结构。 14. **多态性 ...
まず、Boot-Camp学習プログラムでは、Javaアプリケーションのコンパイルやデプロイにおいて、Gradleという自動化ツールが推奨されています。Gradleは、MavenやAntなどの他のビルドシステムに比べて柔軟性が高く、カ...
- **概要から詳細設計書**: システムのアーキテクチャや機能の詳細を文書化することで、チーム間のコミュニケーションを円滑化し、開発プロセスの透明性を高めます。 #### 7. テスト仕様書の作成 - **設計書から単...
枚ーカーの実装ジョーカーをスえない52枚のカードを想定役役はロイヤルストレートフラッシュ,ストレートフラッシュ,ストレート,フラッシュ,フォーカード,スリーカード,フルハウス,ツーペア,ワンペア手榴はは...
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(临床开発职でちょ...
5. オペレーティングシステム(Operating System, OS):管理计算机硬件和软件资源的系统软件,如Windows、macOS、Linux等。 6. データベース(Database):用于存储和管理信息的结构化系统,如MySQL、Oracle、SQL ...
その后,基本情报技术者の午后问题で勉强ExcelVBA约1ヶ月入社时研修构架Ruby on Rails约4ヶ月でートフォリオにメインで使用jQuery查询--ポートフォリオに一部使用Vue.js --スクールカリキュラムRDB P