もちろん、ここではJava 11でマンデルブロ集合を使ってフラクタル画像を生成する基本的な例を示す：

```java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;

public class Mandelbrot {
    public static void main(String[] args) {
        int width = 800;
        int height = 600;
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

        double minReal = -2.0;
        double maxReal = 1.0;
        double minImaginary = -1.2;
        double maxImaginary = minImaginary + (maxReal - minReal) * height / width;

        int maxIterations = 1000;

        for (int x = 0; x < width; x++) {
            for (int y = 0; y < height; y++) {
                double real = minReal + (maxReal - minReal) * x / (width - 1);
                double imaginary = minImaginary + (maxImaginary - minImaginary) * y / (height - 1);

                int iterations = 0;
                double zReal = 0.0;
                double zImaginary = 0.0;

                while (iterations < maxIterations && zReal * zReal + zImaginary * zImaginary < 4.0) {
                    double tempReal = zReal * zReal - zImaginary * zImaginary + real;
                    zImaginary = 2.0 * zReal * zImaginary + imaginary;
                    zReal = tempReal;
                    iterations++;
                }

                Color color = Color.BLACK;
                if (iterations < maxIterations) {
                    float hue = (float) iterations / maxIterations;
                    hue = (float) (0.95 + 20 * hue);
                    color = Color.getHSBColor(hue, 1.0f, 1.0f);
                }

                image.setRGB(x, y, color.getRGB());
            }
        }

        // Display the generated image
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(width, height);
        JLabel label = new JLabel(new ImageIcon(image));
        frame.add(label);
        frame.pack();
        frame.setVisible(true);
    }
}
```

もちろん、Java 11でマンデルブロ集合を使ってフラクタル画像を生成する基本的な例もある：

```scss
Copy code
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;

public class Mandelbrot {
    public static void main(String[] args) {
        int width = 800;
        int height = 600;
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

        double minReal = -2.0;
        double maxReal = 1.0;
        double minImaginary = -1.2;
        double maxImaginary = minImaginary + (maxReal - minReal) * height / width;

        int maxIterations = 1000;

        for (int x = 0; x < width; x++) {
            for (int y = 0; y < height; y++) {
                double real = minReal + (maxReal - minReal) * x / (width - 1);
                double imaginary = minImaginary + (maxImaginary - minImaginary) * y / (height - 1);

                int iterations = 0;
                double zReal = 0.0;
                double zImaginary = 0.0;

                while (iterations < maxIterations && zReal * zReal + zImaginary * zImaginary < 4.0) {
                    double tempReal = zReal * zReal - zImaginary * zImaginary + real;
                    zImaginary = 2.0 * zReal * zImaginary + imaginary;
                    zReal = tempReal;
                    iterations++;
                }

                Color color = Color.BLACK;
                if (iterations < maxIterations) {
                    float hue = (float) iterations / maxIterations;
                    hue = (float) (0.95 + 20 * hue);
                    color = Color.getHSBColor(hue, 1.0f, 1.0f);
                }

                image.setRGB(x, y, color.getRGB());
            }
        }

        // Display the generated image
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(width, height);
        JLabel label = new JLabel(new ImageIcon(image));
        frame.add(label);
        frame.pack();
        frame.setVisible(true);
    }
}
```

この例では、最もよく知られたフラクタル集合の1つであるマンデルブロ集合を使用しています。このコードではマンデルブロ集合を表す800x600ピクセルの画像を生成し、ある点が集合内にあるかどうかを判断するのに必要な反復回数を色のパレットで表現しています。

この例では、画像生成処理は、画像内のすべてのピクセルを通過するネストされたループで実行される。各画素について、複素平面上の対応する座標（実部と虚部）が計算され、whileループが実行されて、点が集合内にあるかどうかを判定するのに必要な反復回数が決定される。

メモリ消費を最小限に抑えるため、画像データをメモリに保存するために、Imageオブジェクトを別に作成するのではなく、BufferedImageを使用しています。また、数値データの格納にはオブジェクトではなくプリミティブ変数が使用され、メモリのオーバーヘッドを最小限に抑えています。
Claro, aquí te muestro un ejemplo básico de cómo generar una imagen fractal utilizando el conjunto de Mandelbrot en Java 11:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;

public class Mandelbrot {
    public static void main(String[] args) {
        int width = 800;
        int height = 600;
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

        double minReal = -2.0;
        double maxReal = 1.0;
        double minImaginary = -1.2;
        double maxImaginary = minImaginary + (maxReal - minReal) * height / width;

        int maxIterations = 1000;

        for (int x = 0; x < width; x++) {
            for (int y = 0; y < height; y++) {
                double real = minReal + (maxReal - minReal) * x / (width - 1);
                double imaginary = minImaginary + (maxImaginary - minImaginary) * y / (height - 1);

                int iterations = 0;
                double zReal = 0.0;
                double zImaginary = 0.0;

                while (iterations < maxIterations && zReal * zReal + zImaginary * zImaginary < 4.0) {
                    double tempReal = zReal * zReal - zImaginary * zImaginary + real;
                    zImaginary = 2.0 * zReal * zImaginary + imaginary;
                    zReal = tempReal;
                    iterations++;
                }

                Color color = Color.BLACK;
                if (iterations < maxIterations) {
                    float hue = (float) iterations / maxIterations;
                    hue = (float) (0.95 + 20 * hue);
                    color = Color.getHSBColor(hue, 1.0f, 1.0f);
                }

                image.setRGB(x, y, color.getRGB());
            }
        }

        // Display the generated image
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(width, height);
        JLabel label = new JLabel(new ImageIcon(image));
        frame.add(label);
        frame.pack();
        frame.setVisible(true);
    }
}
Claro, aquí te muestro un ejemplo básico de cómo generar una imagen fractal utilizando el conjunto de Mandelbrot en Java 11:

scss
Copy code
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;

public class Mandelbrot {
    public static void main(String[] args) {
        int width = 800;
        int height = 600;
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

        double minReal = -2.0;
        double maxReal = 1.0;
        double minImaginary = -1.2;
        double maxImaginary = minImaginary + (maxReal - minReal) * height / width;

        int maxIterations = 1000;

        for (int x = 0; x < width; x++) {
            for (int y = 0; y < height; y++) {
                double real = minReal + (maxReal - minReal) * x / (width - 1);
                double imaginary = minImaginary + (maxImaginary - minImaginary) * y / (height - 1);

                int iterations = 0;
                double zReal = 0.0;
                double zImaginary = 0.0;

                while (iterations < maxIterations && zReal * zReal + zImaginary * zImaginary < 4.0) {
                    double tempReal = zReal * zReal - zImaginary * zImaginary + real;
                    zImaginary = 2.0 * zReal * zImaginary + imaginary;
                    zReal = tempReal;
                    iterations++;
                }

                Color color = Color.BLACK;
                if (iterations < maxIterations) {
                    float hue = (float) iterations / maxIterations;
                    hue = (float) (0.95 + 20 * hue);
                    color = Color.getHSBColor(hue, 1.0f, 1.0f);
                }

                image.setRGB(x, y, color.getRGB());
            }
        }

        // Display the generated image
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(width, height);
        JLabel label = new JLabel(new ImageIcon(image));
        frame.add(label);
        frame.pack();
        frame.setVisible(true);
    }
}
Este ejemplo utiliza el conjunto de Mandelbrot, que es uno de los conjuntos fractales más conocidos. El código genera una imagen de 800x600 píxeles que representa el conjunto de Mandelbrot, utilizando una paleta de colores para representar el número de iteraciones necesarias para determinar si un punto está dentro del conjunto o no.

En este ejemplo, el proceso de generación de la imagen se realiza en un bucle anidado que recorre todos los píxeles de la imagen. Para cada píxel, se calcula la coordenada correspondiente en el plano complejo (parte real e imaginaria), y se ejecuta un bucle while para determinar el número de iteraciones necesarias para determinar si el punto está dentro del conjunto o no.

Para minimizar el consumo de memoria, se utiliza una imagen BufferedImage para almacenar los datos de la imagen en memoria, en lugar de crear un objeto Image separado. Además, se utilizan variables de tipo primitivo para almacenar los datos numéricos, en lugar de objetos, para minimizar la sobrecarga de memoria.