jdbc基本操作 (数据库连接依赖要加上,或者直接依赖jar包,我用的是8.0.17版本)
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
public class User {
private Integer id;
private String name;
} //省略get set 构造方法
public class Jdemo1 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
/*Class.forName是把这个类加载到JVM中,加载的时候,就会执行其中的静态初始化块,完成驱动的初始化的相关工作。 */
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/community?serverTimezone=UTC"
, "root", "121518");
String sql = "select * from user where id = ?";
PreparedStatement pstm = connection.prepareStatement(sql);
pstm.setInt(1,8);
ResultSet resultSet = pstm.executeQuery();
while (resultSet.next()){
User user = new User();
user.setId(resultSet.getInt(1)); //可以是下标(从1开始)或者是数据库对应字段
user.setName(resultSet.getString("name"));
System.out.println(resultSet.getInt("id"));
System.out.println(resultSet.getString(2));
System.out.println(user);
}
resultSet.close();
pstm.close();
connection.close();
}
}
下面的代码执行了几次(0次)
for(int x=0,y=0;(y!=0&&x<5);x++){
System.out.println(x);
}
下面的代码怎么执行(0,1,2,3,4,4,4…无限循环)
for (int i = 0; i < 10; i++) {
System.out.println(i);
i=3;
}
选择排序(冒泡)
int[] a = new int[]{6,9,4,2,54};
for (int i = 0; i < a.length ; i++) {
int j = a[i];
for (int k = i+1; k <a.length ; k++) {
if(a[k]<j){
int temp = a[k];
a[k] = a[i];
a[i] = temp;
}
}
}
下面那个能语句输出(1,4) -------- (2,3)报错
String[] a =new String[]{"1","2"};
String b = "2222";
1 System.out.println(a.length);
2 System.out.println(a.length());
3 System.out.println(b.length);
4 System.out.println(b.length());
String b = null;
System.out.println(StringUtils.isBlank(b)); true
Integer a = null;
System.out.println(StringUtils.isBlank(a.toString())); 空指针异常
list转成string
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("b");
System.out.println(String.join(",", list)); a,b,b
list转set
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("b");
Set<String> set = new HashSet<>(list);
遍历set
for (String str : set) {
System.out.println(str);
}
或者
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
set转list
ArrayList<String> strings = new ArrayList<>(set);
System.out.println(strings.size());
在一个字符串中大写变小写,小写变大写
public class Demo1 {
public static void main(String[] args) {
String a = "aF%7dfHJOIdjdfL875";
System.out.println('a'-0); //97
System.out.println('A'-0); //65 所以 a->A 减32 A->a 加32
char[] chars = a.toCharArray();
StringBuffer stringBuffer = new StringBuffer();
for (int i=0;i<a.length();i++){
if(a.charAt(i)>='a'&&a.charAt(i)<='z'){
/*两种转换方法*/
stringBuffer.append((char)(a.charAt(i)-32));
// stringBuffer.append(String.valueOf(a.charAt(i)).toUpperCase());
}else
if(a.charAt(i)>='A'&&a.charAt(i)<='Z'){
stringBuffer.append((char)(a.charAt(i)+32));
// stringBuffer.append(String.valueOf(a.charAt(i)).toLowerCase());
}
else{
stringBuffer.append(a.charAt(i));
}
}
/*四种方法 stringbuffer ----> string */
a = String.valueOf(stringBuffer);
// a=new String(stringBuffer);
// a=stringBuffer.toString();
// a=stringBuffer.substring(0,stringBuffer.length());
System.out.println(a);
}
}
存在使i + 1 < i的数吗() 存在
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MAX_VALUE+1);
下面程序能正常运行吗() 能
public class NULL {
public static void haha(){
System.out.println("haha");
}
public static void main(String[] args) {
((NULL)null).haha();
}
}
因为null值可以强制转换为任何java类类型,(String)null也是合法的。但null强制转换后是无效对象,其返回值还是为null,而static方法的调用是和类名绑定的,不借助对象进行访问所以能正确输出。反过来,没有static修饰就只能用对象进行访问,使用null调用对象肯定会报空指针错了
下面程序的运行结果是什么()
对象的初始化顺序:(1)类加载之后,按从上到下(从父类到子类)执行被static修饰的语句;(2)当static语句执行完之后,再执行main方法;(3)如果有语句new了自身的对象,将从上到下执行构造代码块、构造器(两者可以说绑定在一起)。
class HelloA {
public HelloA() {
System.out.println("HelloA");
}
{ System.out.println("I'm A class"); }
static { System.out.println("static A"); }
}
public class HelloB extends HelloA {
public HelloB() {
System.out.println("HelloB");
}
{ System.out.println("I'm B class"); }
static { System.out.println("static B"); }
public static void main(String[] args) {
System.out.println("-------main start-------");
new HelloA();
new HelloB();
System.out.println("-------main end-------");
}
}