Adicionar elementos em um array em Java

Gostaria de saber se é possível criar um array vazio de tipo primitivo em java e adicionar elementos nele.
Por que uma alternativa para esse problema seria criar um ArrayList, passando o wrapper desse tipo primitivo e então utilizar o método add do ArrayList para adicionar elementos
Mas gostaria de saber se existe uma maneira de fazer isso sem utilizar um ArrayList

Tem, mas arrays tem tamanho fixo. Então invariavelmente tu terá que indicar o tamanho máximo o que traz todos os problemas conhecidos, como, por exemplo, desperdício de espaço (caso o número de dados seja muito menor que o tamanho do array`) ou falta de espaço (caso o número de dados seja maior que o tamanho do array). Um exemplo (bobo):

public class Aluno {
	private String ra;
	private String nome;
	private char sexo;
	private float[] notas;
	
	public void setRA(String ra){
		this.ra = ra;
	}
	
	public String getRA(){
		return ra;
	}
	
	public void setNome(String nome){
		this.nome = nome;
	}
	
	public String getNome(){
		return nome;
	}
	
	public void setSexo(char sexo){
		this.sexo = sexo;
	}
	
	public char getSexo(){
		return sexo;
	}
	
	public void setNotas(short tamanho, float[] notasInformadas){
		notas = new float[tamanho];
		System.arraycopy(notasInformadas, 0, this.notas, 0, notas.length);
	}
	
	public float[] getNotas(){
		return notas;
	}
}

public class Teste {
	public static void main(String[] args){
		short bimestre;
		short contador = 1;
		java.util.Scanner leitor = new java.util.Scanner(System.in);
		Aluno aluno = new Aluno();
		
		System.out.print("Informe o RA: ");
		aluno.setRA(leitor.next());
		
		System.out.print("Informe o nome: ");
		aluno.setNome(leitor.nextLine());
		leitor.nextLine();
		
		System.out.print("Informe o sexo: ");
		aluno.setSexo(leitor.next().charAt(0));
		
		System.out.print("Informe o bimestre: ");
		bimestre = leitor.nextShort();
		
		System.out.println("Informe as notas: ");
		
		float[] notasInformadas = aluno.getNotas();
		notasInformadas = new float[bimestre];
		
		for(short i = 0; i < notasInformadas.length; i++){
			System.out.print((contador++) + "ª nota: ");
			notasInformadas[i] = leitor.nextFloat();
		}
		
		aluno.setNotas(bimestre, notasInformadas);
		
		System.out.println("\n\nResumo: ");
		System.out.println("Aluno: \nRA: " + aluno.getRA() 
			+ "\nNome: " + aluno.getNome() 
			+ "\nSexo: " + aluno.getSexo());
		
		contador = 1;
		
		for(short i = 0; i < notasInformadas.length; i++){
			System.out.println("Nota " + (contador++) + "º bimestre: " + notasInformadas[i]);
		}
	}
}

Tenho uma dúvida:Se quiser fazer algo parecido com o código Javascript que vou postar abaixo só que em java a melhor forma seria através de um ArrayList?
Ou seja quero um meio em Java de declarar um array vazio como no Javascript e poder através de um método adicionar um número limitado ou ilimitado de elementos no meu array. A melhor forma de fazer isso em Java é através de um ArrayList utilizando o método add do ArrayList

Exemplos:
Javascript

var numeros=[];
for(var i=1;i<=10;i++){
    numeros.push(i);
}
document.write(numeros);

JAVA

import Java.util.ArrayList;

ArrayList<Integer>numeros=new ArrayList();
for(int i=1;i<=10;i++){
    numeros.add(i);
    System.out.print(numeros.get(i)+" ");
}

Sim, a melhor forma é por meio de coleções (Collection). Uma das coleções são as listas definidas pela interface List<E> e implementadas, geralmente, pelas classes ArrayList, embora, existam outras como, por exemplo, a AttributeList, LinkedList ou a RoleList, conforme descrito na documentação: Docs Oracle: Java - List. Mas há ainda outras coleções, como os conjuntos representados pela interface Set<E> e implementados pelas classes HashSet, TreeSet, etc., além de muitas outras coleções.
As coleções eu gosto de declarar assim (usando o seu exemplo):

List<Integer> numeros = new ArrayList<>();

Do lado esquerdo indico a interface e do lado direito a classe que a implementa.

Obrigado pela ajuda!!!
E pelos explicações sobre as Collections, sabia pouco sobre esse assunto

Gostaria que vc desse uma olhada em outro tópico que postei aqui ontem sobre um jogo que estou fazendo em Javascript
O nome do tópico é:
Correção de bugs em jogo Gênius feito em javascript

Gostaria que vc verifica-se se o código está rodando direito no seu navegador

Collection é um assunto muito importante, saber qual usar ou qual roda mais rápido que outra são conhecimentos que valem a pena serem pesquisados