首页 文章 精选 留言 我的

精选列表

搜索[青少年编程],共10003篇文章
优秀的个人博客,低调大师

​OpenAI 拒绝对青少年自杀事件负法律责任

今年8月,Matthew 和 Maria Raine 夫妇因其16岁儿子 Adam 自杀,向 OpenAI 及其首席执行官 Sam Altman 提起诉讼,声称公司应对此事件负责,理由是他们的儿子在使用 ChatGPT 时得到了有关自杀的指导。对此,OpenAI 在近日的法律回应中坚决否认了这一指控,表示公司不应为这起悲剧承担责任。 OpenAI 在声明中指出,Adam 在长达九个月的使用过程中,ChatGPT 曾超过100次建议他寻求专业帮助。然而,原告父母认为,Adam 能够绕过安全机制,获取了详细的自杀方法,包括药物过量、溺水和一氧化碳中毒的 “技术细节”,甚至协助他策划了一场所谓的 “美丽自杀”。OpenAI 强调,Adam 绕过安全机制的行为已违反了服务条款,而这些条款明确规定用户不得绕过平台的保护措施。 此外,OpenAI 也表示,其常见问题页面一直告知用户,ChatGPT 的回答需要独立验证,用户不应完全依赖于 AI 的建议。原告家庭的律师 Jay Edelson 对此表示,OpenAI 将责任推给用户的做法并不合理。他指出,Adam 是在按照 ChatGPT 的设计与之互动,并非单方面的行为。OpenAI 在应诉中附上了 Adam 与 ChatGPT 的对话摘录,但这些内容已被法庭密封,外界无法获取。 OpenAI 还提到,Adam 生前有长期的抑郁症史,并服用了可能加重自杀倾向的药物。Edelson 律师认为,OpenAI 并未对家属的担忧作出正面回应。他表示:“OpenAI 和 Altman 至今未能解释 Adam 生命最后几小时的情况,那时 ChatGPT 不仅给了他鼓励,还主动提出帮助他写遗书。” 自 Raine 家庭提起诉讼以来,又有七起类似案件提交法庭,涉及三起自杀事件和四名用户出现所谓的 “AI 诱发的精神疾患”。其中,23岁的 Zane Shamblin 和26岁的 Joshua Enneking 在自杀当天也曾与 ChatGPT 进行了数小时的对话,但 AI 未能有效劝阻他们。Raine 家庭的案件预计将提交陪审团审理。

优秀的个人博客,低调大师

JDBC编程:JDBC高级编程

事物处理 批量更新 返回自动主键 DAO 1,事物处理 什么是事物? 事务(Transaction):数据库中保证交易可靠的机制。JDBC支持数据库中的事务概念,并且在JDBC中,事务默认是自动提交的。 事务提交的方式有两种: 显示提交:使用commit; 自动提交:执行DDL或DCL语句,或者程序正常退出; 当事务所包含的任意一个数据库操作执行失败后,应该回滚事务(rollback),使该事务中所做的修改全部失效。 事务回滚有两种方式: 显示回滚:使用rollback。 自动回滚:系统错误或者强行退出。 事务特性介绍:(ACID) (1)原子性(Atomicity):事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行 (2)一致性(Consistency):事务在完成时,必须使所有的数据都保持一致状态 (3)隔离性(Isolation):由并发事务所作的修改必须与任何其它并发事务所作的修改隔离 (4)持久性(Durability):事务完成之后,它对于系统的影响是永久性的 事务是数据库的概念,JDBC支持事务,本质还是在数据库中实现的。 JDBC中和事务相关API: Connection.getAutoCommit() :获得当前事务的提交方式,默认为true Connection.setAutoCommit():设置事务的提交属性,参数是true:自动提交;false:不自动提交 Connection.commit():提交事务 Connection.rollback():回滚事务 JDBC处理事务模式: (1)先将事务的自动提交关闭; (2)执行事务中的若干SQL语句; (3)事务提交;SQL失败则回滚; (4)恢复JDBC的事务提交状态;释放资源。 事务隔离级别: 事务的并发读问题: 脏读:读取到另一个事务未提交更新数据,即读取到了脏数据; 不可重复读:对同一记录的两次读取不一致,因为另一事物对该记录做了修改; 幻读(虚读):对同一张表的两次查询不一致,因为零壹拾伍插入了一条记录; 四大隔离级别: 四个等级的事务隔离级别,在相同数据环境下,使用相同的输入,执行相同的工具,根据不同的隔离级别,可以导致不同的结果。不同事务隔离级别能够解决的数据并发问题的能力是不同的。 SERIAUZABLE(串行化):不会出现任何并发性问题,因为它是对同一数据的访问是串行的,非并发访问的。 性能最差 REPEATABLEREAD(可重复读):防止脏读和不可重复读,不能处理幻读问题。性能比SERIAUZABLE好 READCOMMITTED(读已提交数据):防止脏读,没有处理不可重复读,也没有处理幻读。性能比REPEATABLEREAD。 READUNCOMMITTED(读未提交数据):可能出现任何事物并发问题,性能最好; 2,批量更新 批量更新主要方法: PreparedStatement.addBatch():将多条预编译的SQL语句,添加到语句列表中。 PreparedStatement.executeBatch():把语句列表中的所有SQL语句,发送给数据库处理。 PreparedStatement.clearBatch():清空当前SQL语句列表。 批量添加: public int[] insBatch() { Connection connection = null; Statement statement = null; String sql = ""; try { //获取数据连接 connection = basicUse.getConnection(); //获取发送sql指令执行sql对象 statement = connection.createStatement(); for (int i = 0; i < 10; i++) { StringBuffer sbf = new StringBuffer("insert into student (name, age, addr, hobby) "); sbf.append(" values ('kenx',24,'上海','篮球')"); sql = sbf.toString(); System.out.println("执行sql" + sql); //将指定SQL添加到Statement对象的当前命令列表中 statement.addBatch(sql); } //执行成功返回更新计数的数组 int[] success = statement.executeBatch(); //批量执行所有sql返回一个更新计数的数组 return success; } catch (Exception e) { e.printStackTrace(); return null; } finally { //执行完数据库操作后记得关闭数据库连接资源 try { statement.close(); connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } 批量更新: public int[] updBatch() { Connection connection = null; Statement statement = null; String sql = ""; try { //获取数据连接 connection = basicUse.getConnection(); //获取发送sql指令执行sql对象 statement = connection.createStatement(); for (int i = 1; i < 10; i++) { StringBuffer sbf = new StringBuffer("update student set hobby='足球'"); sbf.append(" where id=" + i); sql = sbf.toString(); System.out.println("执行sql" + sql); //将指定SQL添加到Statement对象的当前命令列表中 statement.addBatch(sql); } //执行成功返回更新计数的数组 int[] success = statement.executeBatch(); //批量执行所有sql返回一个更新计数的数组 return success; } catch (Exception e) { e.printStackTrace(); return null; } finally { //执行完数据库操作后记得关闭数据库连接资源 try { statement.close(); connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } 3,返回自动主键 JDBC API: ResultSet java.sql.Statement.getGeneratedKeys() throws SQLException 例: import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class Tester { public static void main(String[] args) throws Exception { // 注册数据库驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver()); // 获取连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "***"); // 准备SQL String sql = "insert into user(name) values('Belin')"; // 准备语句,配置为自动返回生成主键。 PreparedStatement pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); // 执行语句 pstmt.executeUpdate(); // 获取主键值,是一个ResultSet。 ResultSet rs = pstmt.getGeneratedKeys(); if (rs.next()) { System.out.println(rs.getInt(1)); } } } DAO: 什么是DAO? Data Access Object 数据访问对象,建立在数据库和业务层之间,封装所有对数据库的访问。 DAO的作用:将数据访问逻辑和业务逻辑分开。 DAO通常包括: ①,一个DAO工厂类 ②,一个DAO接口 ③,一个实现DAO接口的具体类 ④,数据传递对象(实体对象或值对象) 实体对象: 将java程序中的对象对应到关系数据库的表中 表和类对应 表中的字段和类的属性对应 记录和对象对应 实现的步骤: 先建立模型的对象domain; 编写DAO接口; 定义DAO实现类; 生产DAO测试类; 在DAO测试类中测试方法;

优秀的个人博客,低调大师

Java 编程

1.循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。 判断一个大于0且小于9位数的数字是几位数字。 public class HelloWorld{ public static void main(String[] args){ int num = 999; int count = 0; if (num >= 0 && num<=999999999){ while(num != 0){ count++; num/=10; } System.out.println("它是个"+ count+"位的数!"); } else{ System.out.println("输入有误!"); } 2. 小伙伴们,请根据所学知识,编写一个 JAVA 程序,实现输出考试成绩的前三名 要求: 1、 考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73 2、 要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入 3、 要求判断成绩的有效性( 0—100 ),如果成绩无效,则忽略此成绩 运行效果: }} 3. 任务 亲,让我们赶紧来做个练习吧。 功能:判断 Java 文件名是否正确,判断邮箱格式是否正确。其中:合法的文件名应该以 .java 结尾;合法的邮箱名中至少要包含 “@” , 并要求“@”在 “.” 之前 请参考注释,在编辑器中的第16、19、22、36行中将代码填写完整 运行结果: public class HelloWorld { public static void main(String[] args) { // Java文件名 String fileName = "HelloWorld.java"; // 邮箱 String email = "laurenyang@imooc.com"; // 判断.java文件名是否正确:合法的文件名应该以.java结尾 /* 参考步骤: 1、获取文件名中最后一次出现"."号的位置 2、根据"."号的位置,获取文件的后缀 3、判断"."号位置及文件后缀名 */ //获取文件名中最后一次出现"."号的位置. int index = fileName.lastIndexof('.'); // 获取文件的后缀 String prefix = fileName.substring(index + 1, fileName.length()); // 判断必须包含"."号,且不能出现在首位,同时后缀名为"java" if (index != -1 && index != 0 && prefix.equal("java")) { System.out.println("Java文件名正确"); } else { System.out.println("Java文件名无效"); } // 判断邮箱格式是否正确:合法的邮箱名中至少要包含"@", 并且"@"是在"."之前 /* 参考步骤: 1、获取文件名中"@"符号的位置 2、获取邮箱中"."号的位置 3、判断必须包含"@"符号,且"@"必须在"."之前 */ // 获取邮箱中"@"符号的位置 int index2 = email.indexof('@'); // 获取邮箱中"."号的位置 int index3 = email.indexOf('.'); // 判断必须包含"@"符号,且"@"必须在"."之前 if (index2 != -1 && index3 > index2) { System.out.println("邮箱格式正确"); } else { System.out.println("邮箱格式无效"); } } } 3. 功能:将一个由英文字母组成的字符串转换成指定格式---从右边开始每三个字母用逗号分隔的形式。 请在编辑器中的第4、10行将代码填写完整 运行效果:j,aew,kjl,dfx,mop,zdm ?不会了怎么办 参考代码:

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册