同步操作将从 Java精选/Ebooks 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
1、名字与类名相同。
2、没有返回值,但不能用void声明构造函数。
3、生成类的对象时自动执行,无需调用。
String s = new String("abc"); 创建了2个String对象。
一个是字符串字面常数,在字符串常量池中。
一个是new出来的字符串对象,在堆中。
Java中short s1=1; s1+=1;是正确的。
“+=”是赋值运算符,不牵涉与其它类型的数字计算,也不会转成int类型的,因此不会报错。
注意的是表达式x += i不是表达式x = x + i的简写方式。
表达式x = x + i使用的是简单赋值操作符=,而表达式x += i使用的是复合赋值操作符,复合赋值表达式会自动地将所执行计算的结果转型为其左侧变量的类型。
String类是final类所以不可以被继承。
使用JDBC来实现访问数据库记录几个步骤:
1、注册驱动,通过驱动器管理器获取连接接口。
2、获得Statement或它的子类。
3、限制Statement中的参数。
4、执行Statement。
5、查看返回的行数是否超出范围。
6、关闭Statement。
7、处理其它的Statement。
8、关闭连接接口。
// 1.注册驱动
Class.forname("com.mysql.jdbc.Driver");// 这是连接mysql数据库的驱动
// 2.获取数据库连接
java.sql.Connection conn = java.sql.DriverManager.getConnection();
// 3.获取表达式
java.sql.Statement stmt = conn.createStatement("jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK","root", "123456");
// 4.执行SQL
java.sql.ResultSet rs=stmt.executeQuery("select * from user");
// 5.显示结果集里面的数据
while(rs.next())
{
System.out.println(rs.getInt(1));
System.out.println(rs.getString("username"));
System.out.println(rs.getString("password"));
System.out.pringln();
}
// 执行插入语句
// stmt.executeUpdate("insert into user values(1,'中文','345')");
// 6.关闭连接接口,释放资源
rs.close();stmt.close();conn.close();
静态变量:独立存在的变量,只是位置放在某个类下,可以直接类名加点调用静态变量名使用。并且是项目或程序一启动运行到该类时就直接常驻内存。不需要初始化类再调用该变量。用关键字static声明。静态方法也是同样,可以直接调用。
实例变量:相当于该类的属性,需要初始化这个类后才可以调用。如果这个类未被再次使用,垃圾回收器回收后这个实例也将不存在了,下次再使用时还需要初始化这个类才可以再次调用。
1)存储区域不同:静态变量存储在方法区属于类所有,实例变量存储在堆当中;
2)静态变量与类相关,普通变量则与实例相关;
3)内存分配方式不同。
4)生命周期不同。
需要注意的是从静态变量在jdk7以后和字符串常量池一起存储在了堆中,JDK1.8开始用于实现方法区的PermSpace被MetaSpace取代。
abstract类为抽象类,即该类只关心子类具有的功能,而不是功能的具体实现。
抽象类不能实例化,其作用是为了被其他类继承,因此final关键字不能修饰抽象类。
抽象类是被用于继承的,final修饰代表不可修改、不可继承的。
非静态的方法可以调用静态的方法,但是静态的方法不可以调用非静态的方法。
类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。
在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,访问一个内存中不存在的东西当然会出错。
绑定是为了查询找远程对象而给远程对象关联或者是注册以后会用到的名称的过程。
远程对象可以使用Naming类的bind()或者rebind()方法跟名称相关联。
&是位操作
&&是逻辑运算符
逻辑运算符具有短路特性,而&不具备短路特性。
来看一下代码执行结果:
public class Test{
static String name;
public static void main(String[] args){
if(name!=null & name.equals("")){
System.out.println("ok");
}else{
System.out.println("error");
}
}
}
执行结果:
Exception in thread "main" java.lang.NullPointerException
at com.jingxuan.JingXuanApplication.main(JingXuanApplication.java:25)
上述代码执行时抛出空指针异常,若果&替换成&&,则输出日志是error。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。