- Caused by: java.io.NotSerializableException: org.apache.kafka.common.metrics.MetricConfig
Slient-猿
flinkflinkkafka
flink自定义数据源的开发过程中遇到这样一个错误。错误原因:在于KafkaConsumer的初始化放在了定义处。解决:应该放在open方法内初始化。DataStreamSourcedataStreamSource=env.addSource(newKafkaSourceFunction());//获取数据kafka消费数据获取DataStreamSourcedata=env.addSource(
- Flink的DataSource三部曲之一:直接API
字节全栈_rJF
flink大数据
mvn\archetype:generate\-DarchetypeGroupId=org.apache.flink\-DarchetypeArtifactId=flink-quickstart-java\-DarchetypeVersion=1.9.2现在maven工程已生成,用IDEA导入这个工程,如下图:以maven的类型导入:导入成功的样子:项目创建成功,可以开始写代码实战了;辅助类Spl
- 面试官问:为什么 Java 线程没有 Running 状态?我懵了
字节全栈_rJF
java开发语言
更具体点,javadoc中是这样说的:处于runnable状态下的线程正在Java虚拟机中执行,但它可能正在等待来自于操作系统的其它资源,比如处理器。AthreadintherunnablestateisexecutingintheJavavirtualmachinebutitmaybewaitingforotherresourcesfromtheoperatingsystemsuchasproc
- Hive 整合 Spark 全教程 (Hive on Spark)
字节全栈_rJF
hivesparkhadoop
hadoop.proxyuser.luanhao.groups*hadoop.proxyuser.luanhao.groups*2)HDFS配置文件配置hdfs-site.xmldfs.namenode.http-addressBigdata00:9870dfs.namenode.secondary.http-addressBigdata00:9868dfs.replication13)YARN配
- flume系列之:消费Kafka集群Topic报错java.io.IOException: Can‘t resolve address: data03:9092
快乐骑行^_^
flumeflume系列消费Kafka集群TopicOExceptionresolveaddress
flume系列之:消费Kafka集群Topic报错java.io.IOException:Can'tresolveaddress:data03:9092Causedby:java.nio.channels.UnresolvedAddressException一、flume消费Kafka集群Topic报错二、报错原因三、解决方法一、flume消费Kafka集群Topic报错21Sep202214:5
- [C++]DirectX 12 3D游戏开发实战—第12章 学习笔记02 2019.5.8
卡酷酷
C++DirectX12
个人学习使用,请勿转载12.3纹理数组12.3.1概述纹理数组即为存放纹理的数组。C++代码中纹理数组也由ID3D12Resource接口表示,创建ID3D12Resource对象时,可以通过设置DepthArraySize属性指定纹理数组所存储的元素个数。在d3dApp文件中创建深度/纹理模板时总是将该值设为1。CreateD3DResource12函数。Texture2DArraygTreeM
- Armv8&Armv9架构入门指南
牧雁照
Armv8&Armv9架构入门指南【下载地址】Armv8Armv9架构入门指南分享Armv8&Armv9架构入门指南欢迎阅读《Armv8&Armv9架构入门指南》,本指南专为对ARM处理器架构感兴趣的开发者、研究人员以及技术爱好者设计项目地址:https://gitcode.com/Open-source-documentation-tutorial/27e07欢迎阅读《Armv8&Armv9架构
- zookeeper-3.8.3-基于ACL的访问控制
jimiStephen
zookeeperlinux分布式
ZooKeeper基于ACL的访问控制ZooKeeper用ACL控制对znode的访问,类似UNIX文件权限,但无znode所有者概念,ACL指定ID及对应权限,且仅作用于特定znode,不递归。ZooKeeper支持可插拔认证方案,ID格式为scheme:expression。客户端认证时,其对应ID与连接关联,访问znode时与ACL比对。ACL权限CREATE:可创建子节点。READ:可获取
- Java 11 / JDK 11 下载
金琴莺
Java11/JDK11下载【下载地址】Java11JDK11下载Java11/JDK11下载本仓库提供Java11/JDK11的资源文件下载项目地址:https://gitcode.com/open-source-toolkit/ff8da本仓库提供Java11/JDK11的资源文件下载。Java11是JavaSE平台的一个长期支持版本,引入了多项新特性和改进。以下是Java11中的一些主要更新
- DO-297标准详解:IMA系统开发与认证指南
机载软件与适航
适航适航
前言DO-297的前言部分为读者提供了本指南的概述,说明了该标准的编写背景、主要目标、目标受众以及该文件在开发和认证集成模块化航空电子(IMA,IntegratedModularAvionics)系统中的作用。作为现代航空电子架构的重要组成部分,IMA系统大幅度简化了航空电子系统的硬件配置,增加了灵活性并降低了成本。因此,DO-297成为确保IMA系统开发、集成和认证符合适航标准的核心文件。在现代
- 如何进行MAC地址追踪
ManageEngine卓豪
IP地址管理MAC地址IP地址追踪IP地址管理
MAC地址(MediaAccessControlAddress),直译为媒体存取控制位址,也称为局域网地址(LANAddress),MAC位址,以太网地址(EthernetAddress),硬件地址(HardwareAddress)或物理地址(PhysicalAddress),用来确认网络设备位置的位址。每个设备都分配有一个唯一的硬件ID,这些都包含在每个设备的网络接口控制器(NIC)中,此编号用
- Java核心与应用:Java异常处理全解析
星核日记
《Java核心与应用》javapython开发语言
Java核心与应用:Java异常处理全解析“程序的世界里,异常是不可避免的。但优秀的开发者,总能优雅地处理它们。”——凌云学习目标✅掌握Java异常分类体系与继承结构✅理解Checked/Unchecked异常的设计哲学✅熟练使用异常链进行根因分析✅掌握try-with-resources的底层原理✅设计符合规范的异常体系1.Java异常处理概述在Java开发中,异常处理是保证程序健壮性的重要手段
- 严恭敏老师PSINS工具箱学习笔记-1
嘀嗒zxy
惯导学习笔记matlab
PSINS工具箱学习与使用刚开始入门惯性导航算法,看了一些书但实践出了一些问题,经推荐了解到西工大严恭敏老师的PSINS工具箱很适合自学,就在网上找了一些相关资料,很全。网址:http://www.psins.org.cn/syb站介绍:https://www.bilibili.com/video/BV1R54y1E7ut/?vd_source=6ce8821b81ac808150f82236f5
- [ Android ] Google JetPack架构指南
ByteFlys
androidKotlinandroidJetPackarchitecture
文章目录架构原则架构分层关于DomainLayer架构选型参考JetPack架构组件参考网站架构原则UI和数据分离,不要将所有代码写在Activity和Fragment里面数据驱动UI,最好是持久性数据模型单一数据源,集中修改数据,比如基于DatabaseSource,ViewModel等单向数据流,界面状态修改向单个方向流动,数据修改事件朝相反方向流动架构分层UILayer(UIElement+
- 计算机编程中的事件驱动架构在提升应用程序响应性方面的作用与实现
借口
热点资讯
博客主页:借口的CSDN主页⏩文章专栏:《热点资讯》计算机编程中的事件驱动架构在提升应用程序响应性方面的作用与实现计算机编程中的事件驱动架构在提升应用程序响应性方面的作用与实现计算机编程中的事件驱动架构在提升应用程序响应性方面的作用与实现引言事件驱动架构概述定义历史背景核心组件事件源(EventSource)事件处理器(EventHandler)中介者(Mediator)消息队列(MessageQ
- [CMU16-745] Lecture 6 Deterministic Optimal Control Introduction
Jia_-
最优控制机器人
Source:CMU16-745StudyNotes,taughtbyProf.ZacManchesterLecture5OptimizationPart3ContentReviewConstrainedOptimizationDeterministicOptimalControlIntroductionDeterministicOptimalControl(1)Continuous-TimeFo
- python安装-Download
编程大乐趣
OpenPGPPublicKeysSourceandbinaryexecutablesaresignedbythereleasemanagerorbinarybuilderusingtheirOpenPGPkey.Releasefilesforcurrentlysupportedreleasesaresignedbythefollowing:Releasefilesforolderreleases
- Chrome浏览器各个版本下载地址
邬璐莺
Chrome浏览器各个版本下载地址【下载地址】Chrome浏览器各个版本下载地址分享Chrome浏览器各个版本下载地址本仓库提供了一个资源文件,包含了Chrome浏览器的各个版本下载地址项目地址:https://gitcode.com/Resource-Bundle-Collection/8399d本仓库提供了一个资源文件,包含了Chrome浏览器的各个版本下载地址。无论您是需要特定版本的Chro
- 解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
酷大有
升级openssl1.下载最新版opensslhttps://www.openssl.org/source/openssl-1.1.1d.tar.gz2.编译安装cdopenssl-1.1.1d./config--prefix=/usr/local/opensslno-zlib#不需要zlibmakemakeinstall3.备份原配置mv/usr/bin/openssl/usr/bin/open
- 5 个开源且免费的提示词管理系统,按照 从优到劣 排序
张3蜂
技术选型软件安装部署开源AI编程python
1.PromptSource研发背景:国家:国际协作(主要由美国和欧洲团队主导)。团队:BigScienceWorkshop,一个由HuggingFace和多个研究机构共同支持的开源社区。简介:专注于创建、管理和共享提示词模板。特点:提供Web界面,方便管理提示词。支持提示词的增、删、改、查。提示词修改历史可通过Git版本控制查看。开源地址:PromptSource推荐理由:功能全面,适合团队协作
- LimitRange和ResourceQuota的配置语法
大大宝的博客
k8sjavarpc开发语言
LimitRange配置语法LimitRange用于为命名空间中的Pod和容器设置资源限制和默认值。它的配置主要由apiVersion、kind、metadata和spec几个部分组成。完整示例apiVersion:v1kind:LimitRangemetadata:name:example-limitrange#LimitRange的名称spec:limits:-type:Container#限
- Kubernetes 中 LimitRange 与 ResourceQuota 的深度剖析
大大宝的博客
k8skubernetes贪心算法容器
摘要:Kubernetes(简称k8s)作为容器编排领域的事实标准,提供了丰富的资源管理机制来确保集群的高效、稳定运行。LimitRange和ResourceQuota是其中两个重要的资源管理工具,它们在不同层面发挥着关键作用。本文深入探讨了LimitRange和ResourceQuota的用途、工作原理,并详细分析了它们之间的差异,旨在帮助读者全面理解和有效运用这两个工具,提升Kubernete
- 解决Caused by: java.lang.IllegalArgumentException: Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate
江南小张
javajava
解决Causedby:java.lang.IllegalArgumentException:Property‘sqlSessionFactory’or‘sqlSessionTemplate’arerequired错误的写法@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})@ComponentScan(basePac
- springDataJPA实战
cc&
SpringBootmaven
从个人开发角度来说,SpringDataJPA更好用,是因为开发起来更快。但从团队角度,我们希望更好的维护性,springdatajpa就差一些,或者说对后期人的要求更高。mybatis更好一些1.创建module2.添加数据源,新建jpa数据库spring:datasource:username:rootpassword:123456url:jdbc:mysql://localhost:3306
- 一个用于测试的 HL7 Server
月巴月巴白勺合鸟月半
MicrosoftVisualStudio开发技术分享医疗行业开发技术分享服务器前端C#健康医疗
说明一个用于测试的HL7Server。在过NIST的认证时,需要演示检验数据通过HL7进行传输,所以写了这工具。HL7的消息解析和编码使用了NHapi。包含两个服务:ReceiveServiceSendService这2个服务都继承自BaseService publicclassBaseService { protectedManualResetEvent_ServiceExitEvent
- jwt权限验证原理
深圳卢先生
数据安全开发语言java
1.JWT,全称是JsonWebToken,是一种JSON风格的轻量级的授权和身份认证规范,可实现无状态、分布式的Web应用授权!2.JWT由三部分组成:头部(Header):通常包含令牌的类型(即JWT)和加密算法(如HMACSHA256或RSA)。例如:{"alg":"HS256","typ":"JWT"}载荷(Payload):包含要传递的声明(Claims)。声明总共可以包括如下七项,但是
- 高级java每日一道面试题-2025年01月25日-框架篇[Mybatis篇]-MyBatis实现一对一有几种方式?具体怎么操作的?
java我跟你拼了
java每日一道面试题javamybatisassociation标签事务管理
如果有遗漏,评论区告诉我进行补充面试官:MyBatis实现一对一有几种方式?具体怎么操作的?我回答:1.使用XML配置文件实现一对一关系主表和从表的设计假设我们有两个实体:Person和Address,其中Person表包含一个address_id字段,指向Address表的主键。CREATETABLEAddress(idINTPRIMARYKEY,streetVARCHAR(255),cityV
- Python之解析 Windows 下的 .ini 文件
Hi Man
Pythonpythonwindows开发语言
在Python中解析Windows下的.ini文件,可以使用内置的configparser模块。configparser专门用于处理.ini格式的配置文件,支持分节、键值对、注释等特性。以下是一个完整的示例,展示如何解析和操作.ini文件。1..ini文件示例假设你有一个名为config.ini的文件,内容如下:[DEFAULT]sourcepatch=lijiedantargetpath=/ho
- 127.0.0.1 与 localhost:必须知道的区别与用法
四七伵
其他面试宝典localhost127.0.0.1后端
前言在开发与运维工作中,我们经常会遇到127.0.0.1和localhost,它们在很多情况下看似可以互换使用,但实际上有一些细微的区别。本文将通过多个示例,帮助理解它们的本质差异,以及它们在不同应用场景中的适用性。1.基本概念1.1.127.0.0.1是什么?127.0.0.1是一个特殊的IP地址,被称为回环地址(LoopbackAddress)。它表示本机(即当前设备),用于本地网络通信,不经
- spring-transaction
Think_Higher
Java生态圈springjavamvc
文章目录配置解析TransactionalEventListener主要组件注册代理类生成Advisor寻找运行调用链生成调用链调用TransactionInterceptor事务管理器DataSource事务开启是否已存在事务事务已存在PROPAGATION_NEVERPROPAGATION_NOT_SUPPORTED事务挂起PROPAGATION_REQUIRES_NEWPROPAGATION
- ztree设置禁用节点
3213213333332132
JavaScriptztreejsonsetDisabledNodeAjax
ztree设置禁用节点的时候注意,当使用ajax后台请求数据,必须要设置为同步获取数据,否者会获取不到节点对象,导致设置禁用没有效果。
$(function(){
showTree();
setDisabledNode();
});
- JVM patch by Taobao
bookjovi
javaHotSpot
在网上无意中看到淘宝提交的hotspot patch,共四个,有意思,记录一下。
7050685:jsdbproc64.sh has a typo in the package name
7058036:FieldsAllocationStyle=2 does not work in 32-bit VM
7060619:C1 should respect inline and
- 将session存储到数据库中
dcj3sjt126com
sqlPHPsession
CREATE TABLE sessions (
id CHAR(32) NOT NULL,
data TEXT,
last_accessed TIMESTAMP NOT NULL,
PRIMARY KEY (id)
);
<?php
/**
* Created by PhpStorm.
* User: michaeldu
* Date
- Vector
171815164
vector
public Vector<CartProduct> delCart(Vector<CartProduct> cart, String id) {
for (int i = 0; i < cart.size(); i++) {
if (cart.get(i).getId().equals(id)) {
cart.remove(i);
- 各连接池配置参数比较
g21121
连接池
排版真心费劲,大家凑合看下吧,见谅~
Druid
DBCP
C3P0
Proxool
数据库用户名称 Username Username User
数据库密码 Password Password Password
驱动名
- [简单]mybatis insert语句添加动态字段
53873039oycg
mybatis
mysql数据库,id自增,配置如下:
<insert id="saveTestTb" useGeneratedKeys="true" keyProperty="id"
parameterType=&
- struts2拦截器配置
云端月影
struts2拦截器
struts2拦截器interceptor的三种配置方法
方法1. 普通配置法
<struts>
<package name="struts2" extends="struts-default">
&
- IE中页面不居中,火狐谷歌等正常
aijuans
IE中页面不居中
问题是首页在火狐、谷歌、所有IE中正常显示,列表页的页面在火狐谷歌中正常,在IE6、7、8中都不中,觉得可能那个地方设置的让IE系列都不认识,仔细查看后发现,列表页中没写HTML模板部分没有添加DTD定义,就是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3
- String,int,Integer,char 几个类型常见转换
antonyup_2006
htmlsql.net
如何将字串 String 转换成整数 int?
int i = Integer.valueOf(my_str).intValue();
int i=Integer.parseInt(str);
如何将字串 String 转换成Integer ?
Integer integer=Integer.valueOf(str);
如何将整数 int 转换成字串 String ?
1.
- PL/SQL的游标类型
百合不是茶
显示游标(静态游标)隐式游标游标的更新和删除%rowtyperef游标(动态游标)
游标是oracle中的一个结果集,用于存放查询的结果;
PL/SQL中游标的声明;
1,声明游标
2,打开游标(默认是关闭的);
3,提取数据
4,关闭游标
注意的要点:游标必须声明在declare中,使用open打开游标,fetch取游标中的数据,close关闭游标
隐式游标:主要是对DML数据的操作隐
- JUnit4中@AfterClass @BeforeClass @after @before的区别对比
bijian1013
JUnit4单元测试
一.基础知识
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)@After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次
- 精通Oracle10编程SQL(12)开发包
bijian1013
oracle数据库plsql
/*
*开发包
*包用于逻辑组合相关的PL/SQL类型(例如TABLE类型和RECORD类型)、PL/SQL项(例如游标和游标变量)和PL/SQL子程序(例如过程和函数)
*/
--包用于逻辑组合相关的PL/SQL类型、项和子程序,它由包规范和包体两部分组成
--建立包规范:包规范实际是包与应用程序之间的接口,它用于定义包的公用组件,包括常量、变量、游标、过程和函数等
--在包规
- 【EhCache二】ehcache.xml配置详解
bit1129
ehcache.xml
在ehcache官网上找了多次,终于找到ehcache.xml配置元素和属性的含义说明文档了,这个文档包含在ehcache.xml的注释中!
ehcache.xml : http://ehcache.org/ehcache.xml
ehcache.xsd : http://ehcache.org/ehcache.xsd
ehcache配置文件的根元素是ehcahe
ehcac
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
白糖_
javaeclipsespringtomcatWeb
今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
随后启动
- angular.element
boyitech
AngularJSAngularJS APIangular.element
angular.element
描述: 包裹着一部分DOM element或者是HTML字符串,把它作为一个jQuery元素来处理。(类似于jQuery的选择器啦) 如果jQuery被引入了,则angular.element就可以看作是jQuery选择器,选择的对象可以使用jQuery的函数;如果jQuery不可用,angular.e
- java-给定两个已排序序列,找出共同的元素。
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CommonItemInTwoSortedArray {
/**
* 题目:给定两个已排序序列,找出共同的元素。
* 1.定义两个指针分别指向序列的开始。
* 如果指向的两个元素
- sftp 异常,有遇到的吗?求解
Chen.H
javajcraftauthjschjschexception
com.jcraft.jsch.JSchException: Auth cancel
at com.jcraft.jsch.Session.connect(Session.java:460)
at com.jcraft.jsch.Session.connect(Session.java:154)
at cn.vivame.util.ftp.SftpServerAccess.connec
- [生物智能与人工智能]神经元中的电化学结构代表什么?
comsci
人工智能
我这里做一个大胆的猜想,生物神经网络中的神经元中包含着一些化学和类似电路的结构,这些结构通常用来扮演类似我们在拓扑分析系统中的节点嵌入方程一样,使得我们的神经网络产生智能判断的能力,而这些嵌入到节点中的方程同时也扮演着"经验"的角色....
我们可以尝试一下...在某些神经
- 通过LAC和CID获取经纬度信息
dai_lm
laccid
方法1:
用浏览器打开http://www.minigps.net/cellsearch.html,然后输入lac和cid信息(mcc和mnc可以填0),如果数据正确就可以获得相应的经纬度
方法2:
发送HTTP请求到http://www.open-electronics.org/celltrack/cell.php?hex=0&lac=<lac>&cid=&
- JAVA的困难分析
datamachine
java
前段时间转了一篇SQL的文章(http://datamachine.iteye.com/blog/1971896),文章不复杂,但思想深刻,就顺便思考了一下java的不足,当砖头丢出来,希望引点和田玉。
-----------------------------------------------------------------------------------------
- 小学5年级英语单词背诵第二课
dcj3sjt126com
englishword
money 钱
paper 纸
speak 讲,说
tell 告诉
remember 记得,想起
knock 敲,击,打
question 问题
number 数字,号码
learn 学会,学习
street 街道
carry 搬运,携带
send 发送,邮寄,发射
must 必须
light 灯,光线,轻的
front
- linux下面没有tree命令
dcj3sjt126com
linux
centos p安装
yum -y install tree
mac os安装
brew install tree
首先来看tree的用法
tree 中文解释:tree
功能说明:以树状图列出目录的内容。
语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式
- Map迭代方式,Map迭代,Map循环
蕃薯耀
Map循环Map迭代Map迭代方式
Map迭代方式,Map迭代,Map循环
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年
- Spring Cache注解+Redis
hanqunfeng
spring
Spring3.1 Cache注解
依赖jar包:
<!-- redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
- Guava中针对集合的 filter和过滤功能
jackyrong
filter
在guava库中,自带了过滤器(filter)的功能,可以用来对collection 进行过滤,先看例子:
@Test
public void whenFilterWithIterables_thenFiltered() {
List<String> names = Lists.newArrayList("John"
- 学习编程那点事
lampcy
编程androidPHPhtml5
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
- 架构师之流处理---------bytebuffer的mark,limit和flip
nannan408
ByteBuffer
1.前言。
如题,limit其实就是可以读取的字节长度的意思,flip是清空的意思,mark是标记的意思 。
2.例子.
例子代码:
String str = "helloWorld";
ByteBuffer buff = ByteBuffer.wrap(str.getBytes());
Sy
- org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 1
Everyday都不同
$转义el表达式
最近在做Highcharts的过程中,在写js时,出现了以下异常:
严重: Servlet.service() for servlet jsp threw exception
org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1,
- 用Java实现发送邮件到163
tntxia
java实现
/*
在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等。问题零散,而历史的回复早已经淹没在问题的海洋之中。
本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。
此篇仅介绍用
- 探索实体类存在的真正意义
java小叶檀
POJO
一. 实体类简述
实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的
POJO(Plain Old Java Objects)简单的Java对象
它的一般格式就是
public class A{
private String id;
public Str