Olá Motta,
Pois é, em PHP podemos colocar $ na frente da variável sem fecharmos e abrirmos aspas!
E no PHP existem sempre várias opções pra fazer a mesma coisa! Vc tem q saber todas as formas pra entender codigos de diferentes autores! Ou seja, PHP é cheio de remendo!! Minha opnião!
Ja em JSP, que é java, temos a forma padrão de concatenação de strings que é o “qwe”+var+“rty” !
Respondendo sua pergunta, não tem não!!
String tabela = "vcUsuario";
String login = "fulano";
String senha = "123456";
String sql = "Select * from ? where vcLogin = ? and vcSenha = ?";
java.sql.Connection cn = getConexao();
java.sql.PreparedStatement st = cn.prepareStatement(sql);
st = cn.prepareStatement(sql);
st.setString(1,tabela); //seta o valor no lugar da 1ª interrogação.
st.setString(2,login); //seta o valor no lugar da 2ª interrogação.
st.setString(3,senha); //seta o valor no lugar da 3ª interrogação.
ResultSet rs = st.executeQuery();
Os sinais " : " e “@” são utilizados em aplicativos que interagem diretamente com o banco para executar comandos SQL (T.O.A.D, SQLPlus, Query Builder, SQL Programmer, etc).
Normalmente estes sinais assinalam que o que vem após, é uma variável BIND, para qual deve ser informado um valor que vai ser substituido no momento de fazer o parse do SQL.
ex.: select * from clienetes where cidade = :cid;
no momento de executar o parser muda o :cid por um valor informado ou contido em uma variavel chamada cid na memória.
Para o que você quer fazer em JAVA o negócio é PreparedStatement para rodar SQLs, ou CallabeStatement quando utilizar Stored Procedures.