Neuste Artikel aller Themen |
11.05.2023
synchronized 
synchronized wird verwendet, damit nicht zwei Threads gleichzeitig auf das selbe Objekt zugreifen können.
private synchronized (this) {
// kritischer Code
}
Der Übergabeparameter ist häufig this, kann aber auch ein beliebiges anderes Objekt sein, welches vorzugsweise final ist um sicher zu stellen, dass das Objekt zur Laufzeit nicht geändert wird. Grund: Dieses Objekt enthält den lock für den synchronized code.
Daher ist code wie dieser nicht erlaubt:
ArrayList<String> myList = new ArrayList<>();
private synchronized (myList) {
myList = new ArrayList<>();
}
28.04.2023
ArrayList - thread safe 
Es gibt verschiedene Möglichkeiten eine ArrayList thread safe zu machen:
List list = new CopyOnWriteArrayList(); // Einfach statt einer normalen ArrayList verwenden
oder
List list = Collections.synchronizedList(new ArrayList());
Stichworte:
ArrayList, Multithreading, thread safe, CopyOnWriteArrayList
ArrayList, Multithreading, thread safe, CopyOnWriteArrayList
26.04.2023
Threadpool 
package com.sowas.itwiki.threadpool;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadpoolExample {
/**
* Ein Task ist die Aufgabe, die der Thread erledigen soll
*/
private class Task implements Runnable {
private int taskId;
public Task(int id) {
this.taskId = id;
}
@Override
public void run() {
System.out.println("Task Id: " + this.taskId + " performed by " + Thread.currentThread().getName());
}
}
public static void main(String args[]) {
ExecutorService executerService = Executors.newFixedThreadPool(4); // create 4 worker threads in Thread Pool
for (int i = 0; i < 10; i++) {
executerService.submit(new Task(i));
}
executerService.shutdown();
System.out.println("All done.");
}
}
Ausgabe (kann je nach Platform leicht varieren):
Task Id: 0 performed by pool-1-thread-1
Task Id: 3 performed by pool-1-thread-4
Task Id: 4 performed by pool-1-thread-1
Task Id: 2 performed by pool-1-thread-3
Task Id: 7 performed by pool-1-thread-3
Task Id: 8 performed by pool-1-thread-3
Task Id: 1 performed by pool-1-thread-2
Task Id: 9 performed by pool-1-thread-3
Task Id: 6 performed by pool-1-thread-1
Task Id: 5 performed by pool-1-thread-4
All done.
24.04.2023
find() ohne JQuery 
document.getElementById("#test").querySelector("h1").innerHTML = "Text";
oder
document.getElementById("#test").querySelectorAll("h1")[0].innerHTML = "Text";
14.04.2023
Cherry-picking 
git cherry-pick wird verwendet um andere commits auf den aktuellen Branch zu übertragen.
Dazu muss dem Befehl lediglich die Commit-Id übergeben werden. Diese erhält man mit git log oder aber über Bitbucket (falls verwendet).
git cherry-pick b04e15466f5
b04e15466f5 ist natürlich nur eine beispielhafte Commit-Id.
03.04.2023
ComboBox 
Selektierten Wert auslesen
let combo: HTMLSelectElement = document.getElementById("MY_COMBO");
combo.addEventListener("selectionchange", function(ev) {
let value = combo.options[combo.selectedIndex].value;
});
02.02.2023
Text - maximale Länge 
Möchte man die maximal zulässige Eingabelänge in einem Text-Eingabefeld begrenzen, so hilft folgender Befehl:
Text textField = new Text(...
textField.setTextLimit(6); // Begrenzung auf sechs Zeichen
Stichworte:
Text, TexField, TextFeld, maximale, Zeichenzahl, Länge, Eclipse-RCP
Text, TexField, TextFeld, maximale, Zeichenzahl, Länge, Eclipse-RCP
15.12.2022
stash in Datei exportieren 
Exportieren mit:
git stash show -p > myFile.patch
Importieren mit:
git apply myFile.patch
19.11.2022
JLabel, Hintergrundfarbe setzen 
JLabel label = new JLabel();
label.setOpaque(true); // wichtig!
label.setBackground(Color.CYAN);
JLabel, Innenabstand zum Text setzen
17.11.2022
JLabel: Innenabstand zum Text setzen 
Folgender Code zeigt, wie man den Innenabstand vom Text zum JLabel setzt:
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
public class LabelPadding {
public LabelPadding() {
JFrame frame = new JFrame("JLabel mit Padding");
initGUI(frame);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private void initGUI(JFrame frame) {
JLabel label = new JLabel("Labeltext");
EmptyBorder eBorder = new EmptyBorder(6, 6, 6, 6); // oben, rechts, unten, links
LineBorder lBorder = new LineBorder(new Color(96, 96, 96));
label.setBorder(BorderFactory.createCompoundBorder(lBorder, eBorder));
frame.setLayout(new BorderLayout());
frame.add(label, BorderLayout.CENTER);
}
public static void main(String[] args) {
new LabelPadding();
}
}
JLabel, Hintergrundfarbe setzen